<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[墨鸦]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/lantian510</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; lantian510]]></copyright><item><title><![CDATA[spring mongodb副本集+事务配置]]></title><link>https://blog.csdn.net/lantian510/article/details/130027105</link><guid>https://blog.csdn.net/lantian510/article/details/130027105</guid><author>lantian510</author><pubDate>Sat, 08 Apr 2023 12:21:17 +0800</pubDate><description><![CDATA[这里主要讲 spring里面如何对mongodb怎么配置，至于mongodb副本集怎么搭建，有时间的话我再写一下。搭建完后，建议用rs.status()看一下状态，我这里用的是datagrip工具软件。主要是让程序实现读写分离，读优先去从节点上去读，提高效率。注：mongodb单机版目前不支持事务喔，用的同学需注意。1.准备好3台主机，分别配置好mongodb的副本集。2.这样在spring 的yml文件中就可以设置成。3.以上配置完好，还要配置mongodb的事务。4.写一段程序验证即可。]]></description><category></category></item><item><title><![CDATA[ESP32-扫描网络]]></title><link>https://blog.csdn.net/lantian510/article/details/126986282</link><guid>https://blog.csdn.net/lantian510/article/details/126986282</guid><author>lantian510</author><pubDate>Thu, 22 Sep 2022 10:12:30 +0800</pubDate><description><![CDATA[esp32 扫描网络]]></description><category></category></item><item><title><![CDATA[mqtt 服务器搭建（vernemq配置）]]></title><link>https://blog.csdn.net/lantian510/article/details/125087618</link><guid>https://blog.csdn.net/lantian510/article/details/125087618</guid><author>lantian510</author><pubDate>Wed, 01 Jun 2022 17:55:52 +0800</pubDate><description><![CDATA[mqtt服务器 vernemq搭建]]></description><category></category></item><item><title><![CDATA[xps15 9500加装1T硬盘]]></title><link>https://blog.csdn.net/lantian510/article/details/123092856</link><guid>https://blog.csdn.net/lantian510/article/details/123092856</guid><author>lantian510</author><pubDate>Wed, 23 Feb 2022 16:27:00 +0800</pubDate><description><![CDATA[买了xps15 9500半年，感觉512G的硬盘不够啊，看了dell官方（https://www.dell.com/support/manuals/zh-cn/xps-15-9500-laptop/xps-15-9500-service-manual/%E6%8B%86%E8%A3%85%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%86%85%E9%83%A8%E7%BB%84%E4%BB%B6%E4%B9%8B%E5%89%8D?guid=guid-44efc870-aede-4d27-9]]></description><category></category></item><item><title><![CDATA[qml +echart +WebEngineView+js 构建实时图表]]></title><link>https://blog.csdn.net/lantian510/article/details/122820963</link><guid>https://blog.csdn.net/lantian510/article/details/122820963</guid><author>lantian510</author><pubDate>Tue, 08 Feb 2022 13:56:55 +0800</pubDate><description><![CDATA[今天正月初八，马上要上班了哈。

之前我写过的一篇文章，关于qml里面chart来绘制实时曲线的，后来发现qml的chart的组件存在一些问题，特别是数据一多，就容易卡，绘制界面不流畅等问题

qml Qchart 时间轴的图表_墨鸦-CSDN博客_qml时间轴


对于一个晚期强迫症患者来说，必须要找到一种 js的解决办法，因为C++把数据发给了前端页面qml，如果qml还要回去调用C++的一些类啊，方法啊，这种做法显然不够优雅，但是qml自带的chart组件绘制静态图表可以，但是对于绘制实时图表，还是.]]></description><category></category></item><item><title><![CDATA[stm32H747 开发板-m7 threadX初探]]></title><link>https://blog.csdn.net/lantian510/article/details/120083461</link><guid>https://blog.csdn.net/lantian510/article/details/120083461</guid><author>lantian510</author><pubDate>Fri, 01 Oct 2021 09:55:12 +0800</pubDate><description><![CDATA[本月在st看到H7系列居然有了双核单片机（M7+M4）,单片机开始成双成对了，哎呀呀，这让万年单身狗的我情何以堪那，啧啧啧。。。。


在掏了几百个大洋后，买了一块Stm32H747-Disco的开发板，听说最近threadX很火，主要这个rtos的安全认证比较齐全，而且全家桶比较完善。双核配threadX，对于开发团队的话，完全可以一个人负责一个核，最后合一下就可以跑起来了，或者一个核跑业务逻辑，一个核跑安全的逻辑，可塑造性更强了。

下面就用板子第一次入门ThreadX了。

开发工具是Stm32...]]></description><category></category></item><item><title><![CDATA[嵌入式json：jansson应用（2）]]></title><link>https://blog.csdn.net/lantian510/article/details/119668018</link><guid>https://blog.csdn.net/lantian510/article/details/119668018</guid><author>lantian510</author><pubDate>Sun, 29 Aug 2021 10:49:24 +0800</pubDate><description><![CDATA[如果止步于此，就不是jansson了，下一章节，给大家介绍json_pack和json_unpack两个神兵利器


书接上回，接下来，说一下jansson这个适用于嵌入式json库的2个神器函数json_pack和json_unpack。

json_t*json_pack(const char*fmt, ...)

intjson_unpack(json_t*root, const char*fmt, ...)

fmt的格式如下：


s (string) [const char *]
...]]></description><category></category></item><item><title><![CDATA[Canopen协议 (2）：（SDO）]]></title><link>https://blog.csdn.net/lantian510/article/details/119530544</link><guid>https://blog.csdn.net/lantian510/article/details/119530544</guid><author>lantian510</author><pubDate>Wed, 11 Aug 2021 23:11:39 +0800</pubDate><description><![CDATA[SDO的话，本宝宝这边用的是SDO的DOWNLOAD协议，把数据写入到设备中去。因为本宝宝的这个设备的一些数据希望用PDO定时发给我，所以这边需要用SDO把设备的PDO mapping 做掉，这样的话，后面就可以用PDO通信了。



SDO通信主要有2块，“UPLOAD” 和 “DOWNLOAD”协议

从官网资料来看,CIA 301 33页的文档，对这部分有更详细的介绍

1.DOWNLOAD SDO





2.UPLOAD SDO





有了上述的知识，就可以对can总线上的数据进行分析了..]]></description><category></category></item><item><title><![CDATA[嵌入式json：jansson应用（1）]]></title><link>https://blog.csdn.net/lantian510/article/details/119601222</link><guid>https://blog.csdn.net/lantian510/article/details/119601222</guid><author>lantian510</author><pubDate>Wed, 11 Aug 2021 23:10:32 +0800</pubDate><description><![CDATA[日常工作/学习中难免会遇到嵌入式设备与服务器交互的场景，通讯协议上基本以下几种

1.自定义字符，包头包尾

2.xml

3.json

第一种的话虽然程序写起来简单，但是存在 通用性差，而且出现问题，抓包时还要对照协议导致排查效率低下。

而第3种json,考虑到服务器大部分都是java spring应用，用阿里的fastjson库直接就可以构建出java实体类，所以嵌入式这边使用json来交互，对web后端开发人员更加友好。

所以今天就来研究研究json作为通讯协议的嵌入式应用。

我们用的json]]></description><category></category></item><item><title><![CDATA[gStreamer V4l2 摄像头]]></title><link>https://blog.csdn.net/lantian510/article/details/119395673</link><guid>https://blog.csdn.net/lantian510/article/details/119395673</guid><author>lantian510</author><pubDate>Wed, 04 Aug 2021 23:40:48 +0800</pubDate><description><![CDATA[通常在linux下开发v4l2 摄像头，开发完肯定想看一下图像是否可以正常输出。这边在nxp imx8M的开发板上面用gstreamer测试一下，摄像头硬件接口的话，还是mipi,下次有空可以写一下linux camera驱动 v4l2方面的内容

1.首先我们输入命令：v4l2-ctl --list-devices







2.然后输入命令：v4l2-ctl --list-formats-ext--device=/dev/video0

查看一下摄像头的支持的格式



3.输入命令，咋们设置一..]]></description><category></category></item><item><title><![CDATA[Jetson agx xavier 应用-can]]></title><link>https://blog.csdn.net/lantian510/article/details/119395174</link><guid>https://blog.csdn.net/lantian510/article/details/119395174</guid><author>lantian510</author><pubDate>Wed, 04 Aug 2021 23:19:21 +0800</pubDate><description><![CDATA[开开心心拿到英伟达的xavier,感觉神器在手，天下我有的冲动。本来想好去北高峰大夏天的再爬一次山，听一下灵隐寺的钟声。奈何xavier太香了。下面让咋们体验一把jetson agx xavier 的CAN之旅吧。



硬件接线框图如下：

can的隔离芯片本宝宝用的是周立功的can隔离芯片，在工业自动化的设计中，can硬件上如果不做隔离，那么可能省下钱的都去买售后的飞机票去啦，哈哈哈哈哈







1.这边我们不用英伟达自带的脚本，作为本世纪的优（逗）秀（逼）青年，我们还是要“作”一下，

哈哈..]]></description><category></category></item><item><title><![CDATA[qml Qchart 时间轴的图表]]></title><link>https://blog.csdn.net/lantian510/article/details/119295553</link><guid>https://blog.csdn.net/lantian510/article/details/119295553</guid><author>lantian510</author><pubDate>Sun, 01 Aug 2021 11:23:08 +0800</pubDate><description><![CDATA[最近本宝宝的公司在开发一款新的机器人，但是电机的速度波动很大，也有可能码盘是1024线的缘故吧，于是利用qml设计了一个图表将数据发布上来，看看速度曲线情况。

在这个过程中碰到图表用到时间轴，而qml中的DateTimeAxis需要设置min和max,而网上的很多资料，max都是哟用固定地址，或者用C++中的QDatatime来做。作为一个比较 沙雕 程序员，感觉这样实现不太优雅，一定要用JS去实现（晕！自己给自己找事，哈哈哈）

下面进入正题：





我们要做这样一款表格，首先y轴是我们从底层获..]]></description><category></category></item><item><title><![CDATA[Canopen协议 (1）：网络状态管理（NMT）]]></title><link>https://blog.csdn.net/lantian510/article/details/118670070</link><guid>https://blog.csdn.net/lantian510/article/details/118670070</guid><author>lantian510</author><pubDate>Tue, 13 Jul 2021 22:14:21 +0800</pubDate><description><![CDATA[工控应用中，常常会遇到一些设备：电机或者其他传感器需要通过Can 这个硬件接口来通信，而且往往通信协议都是走的都是Canopen协议。自己当初搞的时候对协议也是云里雾里，为了大家不走歪路，早日走上人生巅峰，这里通过一个比较的例子（直接抓取Can总线上的报文）来解读canopen协议.

canopen协议 的话，文档方便大家可以去看CIA 301的文档，电机控制类的同学还需要看一下cia402 和厂家的canopen协议文档。



设备上电/复位后 ，完成自身硬件初始化后，会发出bootup报文




]]></description><category></category></item><item><title><![CDATA[Openblt流程2：代码流程]]></title><link>https://blog.csdn.net/lantian510/article/details/118435840</link><guid>https://blog.csdn.net/lantian510/article/details/118435840</guid><author>lantian510</author><pubDate>Sat, 03 Jul 2021 10:03:41 +0800</pubDate><description><![CDATA[书接上回说到：接下来会拿一个mcu的例子，咋们来分析一下Openblt的源码

首先 ，程序的世界，main为王，所以咋们先去看一下这位皇帝的想法


int main(void)
{
  /* initialize the microcontroller */
  Init();
  /* initialize the bootloader */
  BootInit();

  /* start the infinite program loop */
  while (1)
  {
    /* ..]]></description><category></category></item><item><title><![CDATA[Openblt流程3：PC端软件使用]]></title><link>https://blog.csdn.net/lantian510/article/details/118415961</link><guid>https://blog.csdn.net/lantian510/article/details/118415961</guid><author>lantian510</author><pubDate>Sat, 03 Jul 2021 09:02:34 +0800</pubDate><description><![CDATA[杭城又下起了滴滴答答的小雨。。。不知道又浇灌在谁的心间。。。。。。

来，话题扯远了，咋们继续openblt之旅

Openblt 的上位机软件在包的Host目录



协议

移植的同学在写用户应用程序的时候，需要知道上位机发什么指令下来，单片机复位进入bootloader,

协议为：

 长度 +0xFF +数据

我目前的版本openblt_v011101，真实捕获到的数据也为 02 0xff 0x00

官方例子中的解析代码为


/* Check for bootloader activat..]]></description><category></category></item><item><title><![CDATA[Openblt流程1：基本框架]]></title><link>https://blog.csdn.net/lantian510/article/details/118414277</link><guid>https://blog.csdn.net/lantian510/article/details/118414277</guid><author>lantian510</author><pubDate>Sat, 03 Jul 2021 09:00:03 +0800</pubDate><description><![CDATA[dfgdfgdfsg
]]></description><category></category></item></channel></rss>