一、前言说明

搞物联网开发很多年,用的最多的当属modbus协议,一个稳定好用的物联网组件是物联网平台持续运行多年的基石,所以这个物联网组件从一开始就定位于自研,为了满足各种场景的需求,当然最重要的一点就是大大提升了自己对该协议的深度理解和应用,尤其是面对各种场景需求,逐步调整迭代代码。为什么最终选择自研,主要基于三点,第一点,Qt自带的modbus类功能很单一,比如不支持RTU OVER TCP,而且UDP和websocket也没有,需要自己拓展。第二点,libmodbus功能更强,但是不满足发送非modbus协议数据,也就是利用现有链路发送自定义的数据。第三点,面对复杂多变的需求,其他组件都无法灵活的调整,也许可能是对这些第三方代码不够熟悉。总之,自研的最大优势是灵活,可以最大限度的和现场实际需求做出调整。以便满足上帝的需求。

二、功能特点

  1. 支持多种物联网通信协议,包括modbus和mqtt。
  2. 协议方式支持串口com通信、网络tcp通信、网络udp通信、网络websocket通信。
  3. 数据规则支持rtu模式和网络模式,网络rtu模式也就是modbus rtu over tcp/udp/websocket。相当于modbus串口协议数据走网络方式通信。
  4. 支持批量连续写入寄存器数值和单个写入寄存器数值。
  5. 支持数据顺序格式的设置,比如大端小端,高字节在前低字节在前的设置。支持Short_AB、Short_BA、Long_ABCD、Long_CDAB、Long_BADC、Long_DCBA、Float_ABCD、Float_CDAB、Float_BADC、Float_DCBA等。
  6. 支持数据位字节数设置,比如短整型、长整型、浮点型等。常规的一般是2字节表示一个数据位,也有设备是4字节表示一个数据位,还有4字节浮点数的形式。后期可能还有8字节一个数据位。
  7. 支持mqtt协议,可设置主机地址和端口、协议版本、唯一标号、用户名称、用户密码。
  8. 支持mqtt发布主题、订阅主题、取消订阅。
  9. 定时自动发布主题,可设置保活时间、超时时间、过期时间。mqtt通信自动重连。
  10. mqtt模拟数据收发支持多种格式,文本、json、base64、hex等。
  11. mqtt同时支持websocket方式,还支持ssl方式通信。
  12. 支持多种采集通讯方式,包括串口和网络等,可自由拓展其他方式。可同时采集多路。
  13. 自定义采集间隔(精确到毫秒)和超时次数,超时后自动将离线的文件从轮询队列中移除,加快轮询速度。
  14. 可设置最大超时重连间隔,将离线的设备重新探测一次,保证设备恢复正常后能够重新加入轮询队列。
  15. 同时提供了设备模拟工具,支持各种协议,支持设定多个设备的数据值。
  16. 模拟工具可随机切换模拟数据值,要正常随机数据就模拟生成正常范围的数据,要报警数据就模拟生成报警范围的数据。方便测试。
  17. 多线程采集和解析数据,以信号的方式发送解析结果,不卡主线程。
  18. 架构采用基类继承方式,通用处理在基类,极易拓展其他通信方式。
  19. 接口友好,使用非常简单,设置要采集的地址集合、开始索引集合、采集数量集合、数据顺序格式四个参数即可。会自动组装对应协议的数据发送。
  20. 采集后的数据以统一格式的信号发出来,非常简单易用。支持浮点型数据。
  21. 采集指令有优先级,如果有自定义的数据需要优先执行。可以将优先级高的指令调用append方法插入即可。可批量采集也可单个采集。
  22. 支持利用现有的通信链路发送自定义数据,这个数据可以不是标准的modbus协议,比如有时候需要一些私有协议数据,利用现有链路发送下去执行。
  23. 多线程高并发,每个端口采集都是一个独立的线程,互不干扰,支持成千上万个设备采集。
  24. 代码做了兼容,支持各种编译器,同时支持Qt4、Qt5、Qt6。
  25. 跨平台,支持windows、linux、mac、嵌入式linux、android、各种国产系统和开发板等。

三、相关链接

  1. 体验地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取码:o05q 文件名:bin_iottool.zip
  2. 国内站点:https://gitee.com/feiyangqingyun
  3. 国际站点:https://github.com/feiyangqingyun

四、效果图





modbus调试助手/mqtt调试工具/超轻巧物联网组件/多线程实时采集/各种协议支持的更多相关文章

  1. 让QtCreator在调试时显示字符串 Qt调试助手 QtDebuggingHelper qtc-debugging-helper

    When starting gdb with application message “Debugging Helper Missing” is displayed [Solved] http://q ...

  2. MQTT协议笔记之mqtt.io项目HTTP协议支持

    前言 MQTT协议诞生之初,就未曾考虑通过HTTP传输.这也正常,网络受限.不稳定网络不太适合HTTP(2G/3G网络大家使用WAP不也OK嘛).在网络较为充裕的桌面端而言,虽纯文本对比二进制而言没多 ...

  3. 用pyqt5简单实现Mqtt调试助手-初学python

    最近在学习pyqt5,因为我们是做远程物联网设备的,所以就做个mqtt调试助手来练手.第一次做这种程序,没有加异常处理,会有很多不足,欢迎留言拍砖,直接上代码了 这个是程序入口, # 使用前先安装py ...

  4. TCP调试助手

    网络开发经常要用到一些TCP&UDP的调试工具,搜集一些备用. 目前总结工具有(不分先后): chrome等自带调试器调试HTTP Fiddler(.NET)和Charles debugger ...

  5. 串口调试助手vc源程序及其详细编写过程

    串口调试助手vc源程序及其详细编写过程   目次: 1.建立项目 2.在项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量 4.在对话框中添加控件 5.添加串口事件 ...

  6. 网络调试助手的使用 调试TCP,UDP

    网络调试助手是集TCP/UDP服务端客户端一体的网络调试工具,可以帮助网络应用设计.开发.测试人员检查所开发的网络应用软硬件的数据收发状况,提高开发的速度,是TCP/UDP应用开发助手. 集成TCP/ ...

  7. 基于.Net C# 通信开发-网络调试助手

    基于.Net C# 通信开发-网络调试助手1.概述 网络调试助手是集TCP/UDP服务端客户端一体的网络调试工具,可以帮助网络应用设计.开发.测试人员检查所开发的网络应用软硬件的数据收发状况,提高开发 ...

  8. Qt 4.x调试器问题,缺失调试助手。

    之前项目开发需要用到4.x环境,固定多少版本避免团队开发不协调,然后拿了同事的开发包安装[注:我本子上原来就有4.x版本跟5.x版本,只是对应的4.x跟需求的不一样] creator是2.4.1的,同 ...

  9. STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题

    STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085的问题讨论:http://www.rt-thr ...

  10. 托管调试助手“NonComVisibleBaseClass”检测到问题

    最近 一次在研究 自动化测试框架White ,程序总是报   “托管调试助手“NonComVisibleBaseClass”在“d:\xxxxxxxxxx.vshost.exe”中检测到问题.” 其他 ...

随机推荐

  1. 02 Transformer 中 Add&Norm (残差和标准化)代码实现

    python/pytorch 基础 https://www.cnblogs.com/nickchen121 培训机构(Django 类似于 Transformers) 首先由一个 norm 函数 no ...

  2. day18-方法

    何谓方法? System.out.println() System->类 out->对象 println()->方法 Java方法是语句的集合,它们在一起执行 一个功能. 方法是解决 ...

  3. KubeSphere 3.3.0 离线安装教程

    作者:老Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及Kubernetes.KubeSphere.DevOps.OpenStack.Ansib ...

  4. KubeSphere v4 安装指南

    日前,KubeSphere v4 发布,相较于之前的版本,新版本在架构上有了颠覆性的变化.为了让社区的各位小伙伴能够丝滑的从旧版本过渡到新版本,我们特别推出本篇安装指南文章,以供参考. 关于 Kube ...

  5. 初探AI之got-ocr2.0大模型本地部署与遇到的各种坑处理

    一.环境搭建 1.安装cuda,本人使用的是12.1版本,下载地址:https://developer.nvidia.com/cuda-12-1-1-download-archive 2.安装cond ...

  6. Games104 现代游戏引擎 Picoolo环境搭建 vulkan配置

    0 前言介绍 games104 现代游戏引擎课程是由 GAMES: Graphics And Mixed Environment Symposium 支持的一个课程. 如我们所视,Games并非的含义 ...

  7. Vue绘制图片轮播组件【转载】

    基本要求:页面加载,自动播放.鼠标悬停,停止播放.鼠标离开,继续播放.点击左右箭头切换上一张,下一张图片.下方小圆点显示当前位第几张图片. 示例代码: 结构html: <template> ...

  8. node.js 安装过程(绿色免安装版)

    20220908_node.js 安装过程(绿色免安装版) 1.下载 下载一个长期支持(LTS)版本:https://nodejs.org/en/download/ 我选择绿色免安装版 2.解压 将下 ...

  9. 解密prompt系列41. GraphRAG真的是Silver Bullet?

    这一章我们介绍GraphRAG范式,算着时间也是该到图谱了,NLP每一轮新模型出来后,往往都是先研究微调,然后各种预训练方案,接着琢磨数据,各种主动学习半监督,弱监督,无监督,再之后就到图谱和对抗学习 ...

  10. Kafka社区KIP-500中文译文(去除ZooKeeper)

    原文链接:https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Mana ...