"); //-->
在使用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数据。
通过top命令可查看protocol程序运行状态
点击查看官方网站 https://www.forlinx.com/
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
我也有创业灵感,想了很久啦(第二个)
SAMSUNG KM29U128 16M字节 NAND Flash
中国最值钱五大证书揭秘 哪些证书值得一掷千金
长庆牌BCD-205电冰箱
RTX51 多任务操作系统 中文使用指南
示波器探头的作用及工作原理
LabVIEW网络讲坛第三季——第六期:生产者/消费者循环(上)
HDMI信号间隔地线间隔,多少距离打地孔?
TPC嵌入式增强型智能人机界面概述
S3C44B0x Samsung ARM7TDMI 应用手册
传V社开发高阶VR头显
S3C44B0x Samsung ARM7TDMI 芯片资料
LabVIEW网络讲坛第三季——第七期:生产者/消费者循环(中)
三星下一代手机OLED面板来了:同功耗亮度提升1.5倍
西冷牌BCD-182W冷藏冷冻箱
全步、半步和微步 步进电机这三种控制模式哪种好?
三菱MRE-2163W/216W-N、MRE-2163G/2163G-N电冰箱
世界首台可玩游戏的互动式DNA计算机面世
长庆牌RDE-171电冰箱
硬件工程师必看,一大波电子产品高清结构爆炸图~太漂亮了!
SC1102 电源芯片
LabVIEW网络讲坛第三季——第四期:LabVIEW状态图(上)
十年磨一剑:三星引入长江存储专利技术
恒压和恒流 LED驱动器是怎么切换的?
2025年中国智能眼镜市场(Smart Eyewear)十大洞察
西冷派牌BCD-162电冰箱
LabVIEW网络讲坛第三季——第三期:状态机(下)
MWC25先睹|5分钟速览:MWC2025参展厂商“关键”信息与亮点
Gao 公布新FTP地址
LabVIEW网络讲坛第三季——第五期:LabVIEW状态图(下)