在使用qt实现了三个自定义控件后,我又查找了qt环境下实现可视化图表的一些优秀开源方案,发现qcustomplot是一个不错的开源库,移植后效果也还不错。后面会继续尝试把基本的自定义控件做完,整个界面的组态也会在后面继续做下去。
这一次本来是想尝试在ok3399-c上移植openvino,刚好手里有一块neural compute stick2可以做加速。奈何在开源版的openvino移植过程中困难重重,各种依赖库缺乏,以及现有的软件版本冲突,反反复复的切换版本,配置环境,虽然最后编译和安装都成功了,但是在运行demo程序时,始终不能完成模型的下载。引用openvino库编写的python程序提示无法加载cv2模块,安装cv2提示找不到满足需求的版本,更难过的是ncs2的sdk在rk3399平台上也不支持,完全不能安装,真的是一次一次的打击信心,最终还是放弃了。
还是拥抱微软吧,做一个tcp modbus通讯服务,服务程序通过json配置生成多线程模块,每路通讯的io层,协议解析层,数据{link56}分离达到去耦合的目的。应用层数据最终发送到rabbitmq消息队列服务器,局域网内以及路由的下一层网络中的设备可通过连接mq获取所有通讯数据。源代码是基于windows下的.net core开发的。可以轻松移植到linux系统下。
安装.net core3.0,从微软官方https://dotnet.microsoft.com/download/dotnet-core/3.0获取sdk和runtime。这里以sdk-3.0.103和runtime3.0.3为例
获取dotnet-sdk-3.0.103-linux-arm64.tar.gzwget https://download.visualstudio.microsoft.com/download/pr/eb4ffaf1-b0a9-466d-8440-0220dca8f806/48df585d8d978c5418fa514da6a2bd9b/dotnet-sdk-3.0.103-linux-arm64.tar.gz
获取dotnet-runtime-3.0.3-linux-arm64.tar.gzwget https://download.visualstudio.microsoft.com/download/pr/24687337-74b3-4897-89e4-eec2a743fb70/e12c8e9decba2cadc31e6358c2dad9da/dotnet-runtime-3.0.3-linux-arm64.tar.gz
在/root目录下创建dotnet-arm64目录
mkdir /root/dotnet-arm64
解压上面的两个包至dotnet-arm64目录
tar zxf dotnet-runtime-3.0.3-linux-arm64.tar.gz -c $home/dotnet-arm64
tar zxf dotnet-sdk-3.0.103-linux-arm64.tar.gz -c $home/dotnet-arm64
将.net core加入环境变量
export dotnet_root=$home/dotnet-arm64
export path=$path:$home/dotnet-arm64
执行dotnet --info命令查看环境变量添加情况,出现以下信息说明配置成功。
在windows环境下搭建好项目工程,并通过nuget安装好程序所需要的package,该项目工程用到的package有rabbitmq.client,newtonsoft.json。整个工程项目的windows搭建我是在visual studio code完成。
整个代码结构按照io层,协议层,应用层结构进行功能解耦合。各层间数据通过队列进行数据交互,应用层数据最终进到mq服务器。所有单元模块根据json配置文件生成一个独立线程。
json配置文件目录结构
其中applicationserverconfig用来定位应用层模块的json配置路径,ioserverconfig用来定位io层模块json配置路径,protocolserverconfig用来定位协议层模块的json配置路径。在保证程序能在windows下正常运行的情况下,将工程移入ok3399-c开发板。进入到工程目录,通过.net core命令运行程序。
dotnet run
远端modbus slave服务器我是放到了本地计算机,开了四个端口,ok3399端服务的四个io层创建四个tcpclient连接到远端服务器。实际使用中根据需要可增加数量,增加的越多,cpu的使用率,内存,网络带宽占用也就越高。
ok3399数据到发送到mq端,任何设备通过mq声明队列绑定到ok3399的upexchange即可获取到modbus数据。
fqj
对于华为,欧洲国家的“理性”潮流密集到来
内网穿透frp原理简述
积塔半导体特色工艺生产线在上海正式开工
如何判断直流减速电机质量的好坏
苹果即使不开新品发布会,也要给自己上半年加戏!红色Phone7、全新iPad Pro来了
基于飞凌嵌入式RK3399开发板的开箱测评
雷达诱饵的目的和分类
京东金融发布首款智能巡检机器人,中国又一巨头打响进军科技的“第一枪
情怀与黑科技你选哪一个?诺基亚8来告诉你:蔡司摄像系统+骁龙835
机械零部件加工常见防锈油的分类
华为nova2Plus魔镜版上市 死磕小米6亮银版!
基于ATmega128RFA1设计的低功耗ZigBee解决方
新闻似乎不是一个即将进行自动化的职业
中兴已完成第三阶段NSA 3.5GHz外场测试,下一步将开展NSA 4.9GHz和SA的测试验证
硅基氮化镓衬底是什么 衬底减薄的原因
介绍三款强大的开源密码管理器,保障个人隐私,断绝数据泄露
三星全新AI功能的处理器芯片或命名为Mind Processor
MEMS激光雷达初创公司Blickfeld获750万欧元新融资
新一代音频DAC的架构原理
都是1299美元起 MacBook Pro对比MacBook怎么选?