首页 > 编程语言 >Qt/C++编写物联网组件/支持modbus/rtu/tcp/udp/websocket/mqtt/多线程采集

Qt/C++编写物联网组件/支持modbus/rtu/tcp/udp/websocket/mqtt/多线程采集

时间:2023-10-16 10:59:46浏览次数:59  
标签:Modbus udp 轮询 支持 rtu https 多线程 com Rtu

一、功能特点

  1. 支持多种协议,包括Modbus_Rtu_Com/Modbus_Rtu_Tcp/Modbus_Rtu_Udp/Modbus_Rtu_Web/Modbus_Tcp/Modbus_Udp/Modbus_Web等,其中web指websocket。
  2. 支持多种采集通讯方式,包括串口和网络等,可自由拓展其他方式。
  3. 自定义采集间隔(精确到毫秒)和超时次数,超时后自动将离线的文件从轮询队列中移除,加快轮询速度。
  4. 自定义整体轮询间隔,将离线的设备重新探测一次,保证设备恢复正常后能够重新加入轮询队列。
  5. 同时提供了设备模拟工具,支持各种协议,支持设定多个设备的数据值。
  6. 支持mqtt协议,可设置主机地址和端口、协议版本、唯一标号、用户名称、用户密码、发布和订阅主题。
  7. 多线程采集和解析数据,以信号的方式发送解析结果,不卡主线程。
  8. 代码做了兼容,支持各种编译器,同时支持Qt4/Qt5/Qt6。
  9. 跨平台,支持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
  4. 个人主页:https://blog.csdn.net/feiyangqingyun
  5. 知乎主页:https://www.zhihu.com/people/feiyangqingyun/

标签:Modbus,udp,轮询,支持,rtu,https,多线程,com,Rtu
From: https://www.cnblogs.com/feiyangqingyun/p/17766837.html

相关文章

  • 多线程编程同步:互斥锁和条件变量
    多线程同步怎样同步多个线程或多个进程的活动?为允许在线程或进程间共享数据,同步通常是必需的。而互斥锁和条件变量是同步的基本组成部分。互斥锁用于保护临界区(criticalregion),以保证任何时刻只有一个线程在执行其中的代码,或者任何时刻只有一个进程在执行其中的代码。互斥......
  • 经典多线程题目
    1.三种线程按顺序执行publicclassTest1{//privatestaticLoggerlog=Logger.getLogger(Test2.class);publicstaticvoidmain(String[]args)throwsInterruptedException{//创建三个线程按照线程a,b,c执行Threada=newPrintThread()......
  • 锁+多线程
     互斥锁mutex:保证共享数据操作的完整性,保证在任一时刻只能有一个线程访问对象。锁有两个操作。一个P操作(上锁),一个V操作(解锁)。P和V都是原子操作,就是在执行P和V操作时,不会被插队。锁一般使用信号量来实现的,mutex其实就是信号量=1。互斥量就是同一时间能够分给一个人,即S=1。S=......
  • Windows访问Oracle VM VirtualBox虚拟机下Linux docker
    设置网络中的NAT方式下的端口转发  配置主机端口和客体端口,客体端口设置Linuxdocker容器端口,主机端口设置windows访问docker时用到的端口。比如,Linuxdocker容器端口为80,客体端口设置为80,在windows访问时,通过localhost:主机端口,如localhost:80,就能访问。 ......
  • python多线程with方式加锁
    python多线程with方式加锁"""pythonTreading中的Lock模块提供了加锁和释放锁的方法,分别是acquire()和release().这两个方法可以搭配python的with语句使用."""#示例fromthreadingimportLock​temp_lock=Lock()​withtemp_lock: print(temp_lock) #输出是<locked......
  • 多线程逆向
    一.资料检索以及归纳XDBG调试时默认是只运行下断调试的线程其它线程处于暂停挂起状态属于单线程调试。打开线程窗口可以查看线程挂起计数(+号-号快捷键可以挂起恢复线程)双击线程可进入选择线程,如果要调试指定线程的话我的理解是应该在线程代码中下断(线程的各种系统CALL),线程会自......
  • 虚拟机virtualbox安装问题
    如何安装增强功能增强功能(复制粘贴)安装问题——kernel1.updatekernelyumupdatekernel-y2.Installthekernel-headers,kernel-develandotherrequiredpackagesyuminstallkernel-headerskernel-develgccmake-y3.Reboottheservertomakesureitload......
  • 网络基础-OSI七层vsTCP/UDP四层 五层 数据封装
    1.0网络基础1.1网络是什么?网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享网络分类:局域网,城域网,广域网1.2数据通信方式单播:一对一组播:一对多广播:一对所有2.0OIS七层模型vsTCP/IP四层五层模型 2.1分层思想①......
  • C++ - 多线程之线程管理函数
    1.获取线程id函数get_id()的使用该函数在命名空间std::this_thread下。作用是获取当前线程的id。#include<iostream>#include<thread>usingnamespacestd;//No.1get_id()获取线程idvoidthreadFunc(){ cout<<"get_id()子线程id:"<<this_thread::get_id(......
  • C++ - 多线程之带返回值的线程处理函数
    1.使用async函数创建线程1.1使用步骤使用async函数启动一个异步任务(创建线程,并且执行线程处理函数),返回future对象通过future对象中get()方法获取线程处理函数的返回值1.2基本数据类型作为返回值#include<iostream>#include<thread>#include<future>using......