Windows下libmodbus 支持upd库的编译与Qt里的调用

news2024/11/28 1:38:58

一. libmodbus 支持udp版库下载
https://github.com/systemmonkey42/libmodbus/tree/udp_support
二. MSYS2编译工具安装
(1)下载MSYS2并安装
下载地址:https://www.msys2.org/在这里插入图片描述
在这里插入图片描述
双击该exe,安装msys2
在这里插入图片描述
(2) 安装编译所需库
在软件安装后所在位置,找到MINGW64.exe并打开
在这里插入图片描述
更新msys2,在命令行里输入pacman -Syu

pacman -Syu

在这里插入图片描述
之后会提示更新完成,需要关闭MSYS2方可成功,如下图输入Y后按下回车键,MSYS2会自动关闭

重新打开MSYS2,输入如下命令安装gcc

pacman -S mingw-w64-x86_64-gcc

在这里插入图片描述输入如下代码安装automake

pacman -S automake

在这里插入图片描述
输入如下代码,安装libtool

pacman -S libtool

在这里插入图片描述
autoconf-wrapper 所需库安装

pacman -S autoconf-wrapper

在这里插入图片描述
三. 编译libmodbus库
(1) 打开libmodbus的解压文件,注意到里面的autogen.sh文件
在这里插入图片描述
(2) 进入autogen.sh 所在目录后,输入如下命令

./autogen.sh

(3) 继续输入命令

./configure

在这里插入图片描述
(4)至此完成了对libmodbus在Windows下的编译过程

四.libmodbus导入Qt Creator中使用的方式
(1) 新建一个mymodbusTest工程,同时在工程目录下创建libmodbus目录名
(2) 将modbus编译后生成的config.h 以及src目录下所有的.c .h 文件,全部复制到libmodbus目录中
在这里插入图片描述
在这里插入图片描述
(3) 通过添加现有文件,将这些libmodbus库文件添加到qt工程中
在这里插入图片描述
(4) ws2_32.dll库文件的复制
打开C:Windows\System32
在这里插入图片描述
复制后结果如下:
在这里插入图片描述
(5) 在.pro文件中加上”LIBS += -Ldll -lws2_32”
(6) 修改libmodbus文件夹下的modbus-private.hmodbus.c代码中的 #include <config.h>为 #include <libmodbus/config.h>
(7) 更改modbus-udp.c文件代码
在这里插入图片描述
(8) 在main.cpp文件中编写如下代码,测试udp

#include <QCoreApplication>
#include <QDebug>
#include<libmodbus/modbus.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    modbus_t *ctx;

    // 创建一个 libmodbus 上下文
    ctx = modbus_new_udp("127.0.0.1", 502);
    if (ctx == NULL) {
        qDebug() << "Failed to create MODBUS context.";
        return 1;
    }

    // 连接到远程 MODBUS 服务器
    if (modbus_connect(ctx) == -1) {
        qDebug() << "Failed to connect to MODBUS server.";
        modbus_free(ctx);
        return 1;
    }

    // 读取一个寄存器的值
    uint16_t reg_value[5];
    int rc = modbus_read_registers(ctx, 0, 5, reg_value);
    if (rc == -1) {
        qDebug() << "Failed to read MODBUS register.";
    } else {
//        qDebug() << "MODBUS register value:" << reg_value[1];
        for (int i = 0; i < rc; ++i) {
             printf("%u ", reg_value[i]);
         }
    }

    // 断开与远程 MODBUS 服务器的连接
    modbus_close(ctx);
    modbus_free(ctx);

    return a.exec();
}

(9) 使用modbus slave软件测试
在这里插入图片描述
附:相关软件下载,需要请留言
msys2 下载
链接:https://pan.baidu.com/s/1df3N5oDvQhApMNM2dNZcow

libmodbus-udp_support.zip
链接:https://pan.baidu.com/s/1m7sUtjGE-47a0wOJAYeETw

mbslaveX64.exe
链接:https://pan.baidu.com/s/1nxcN9kIUVwSMTGGjjiMCUA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1042117.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js惰性函数 ----如何让函数执行之后只执行函数某一部分

看下面这份ts代码 实现的效果也很简单,就是将一份文本,复制到剪切板上,未了兼容更多的浏览器(没错说的就是你>ie !),做了一个兼容性判断, 当浏览器支持navigator.clipboard这个api时,就直接调用这个api将文本复制到剪切板中, 如果不支持这个api的话,就执行else里面的代码,这…

微信小程序 request合法域名 中设置WebSocket的wss/ws报错 该域名协议头非法 问题解决

微信小程序并不支持直接用wss://格式去设置域名 但其实我们可以用缓兵之计 这里 我们直接改成 https的 然后 我们照常通过 wss://ws-api.turingapi.com/api/v2去链接 可以看到 他这里依旧连接成功了

Spring MVC 之 Restful 风格请求⽀持

Tips&#xff1a; REST⻛格请求是什么样的&#xff1f;SpringMVC对REST⻛格请求到底提供了怎样的⽀持 在 Web 系统中&#xff0c;前端通过 HTTP 请求给后端传递参数有四种方式&#xff0c;可以将参数放在请求路径、Query 参数、HTTP 协议头、HTTP 协议体中。而放在协议体中的…

五,修改.hdr插件

由于辐照度贴图是.hdr格式&#xff0c; glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB16F, width, height, 0, GL_RGB, GL_FLOAT, data); osg的.hdr插件需要修改&#xff0c;否则格式不对。 即在ReaderWriterHDR::readImage()中修改&#xff0c; bool convertToRGB8 true;int pixel…

【iOS逆向与安全】DTRpcClient 抓包和代码分析记录

frida-trace -UF -m "-[DTRpcConfig isAMRPC]"onEnter(log, args, state) {log(-[DTRpcConfig isAMRPC] ~~~~~);var customObj new ObjC.Object(args[0]); // 自定义对象// 打印该对象所有属性var ivarList customObj.$ivars;for (key in ivarList) {log(key${key…

【SpringBoot】| SpringBoot集成Dubbo

目录 一&#xff1a;SpringBoot集成Dubbo 1. 创建公共项目 2. 创建提供者项目provider 3. 创建消费者consumer项目 4. 注册中心Zookeeper的安装 图书推荐&#xff1a;《Python 自动化办公应用大全》 一&#xff1a;SpringBoot集成Dubbo 阿里巴巴提供了 dubbo 集成 spring…

原来,这就是现货黄金投资最大的悲哀

在现货黄金投资之中&#xff0c;最大的悲哀是什么呢&#xff1f;首先要知道的是现货黄金投资中最大的悲哀并不是亏损&#xff0c;比如投资者会问我都亏损了&#xff0c;为什么不是最大的悲&#xff1f;哎&#xff0c;不就是因为想进行现货黄金投资&#xff0c;就是想获利的吗&a…

北斗导航系统为渔船保驾护航,助力海洋渔业发展

在无垠的海洋中&#xff0c;渔船扮演着举足轻重的角色&#xff0c;为人们带来美味的海鲜。然而&#xff0c;每一次渔船出海都充满了未知和危险&#xff0c;船只的安全成为了渔民和国家关注的焦点。幸运的是&#xff0c;北斗导航系统作为一项顶级技术正在为渔船保驾护航&#xf…

肖sir___环境的讲解详情__002

一、环境讲解 1、jdk 什么是JDK&#xff1f;JDK的作用&#xff1f; JDK是java语言的软件开发工具包&#xff0c;能解释java程序&#xff0c;编译java语言&#xff0c;没有jdk的话无法编译Java程序。 包含了各种类库和工具&#xff0c;机器不是直接识别语言的&#xff0c;会借助…

零信任沙盒

零信任沙盒分析对比 互联网早期的沙盒&#xff08;sandbox&#xff09;又译为沙箱&#xff0c;意为在计算机安全领域中构建一种安全机制&#xff0c;为运行中的程序提供的隔离环境。通常用来测试一些来源不可信、具破坏力或无法判定的程序&#xff0c;特别是病毒木马类的程序。…

塔望食研院|千亿食用油市场拐点,量减价增,竞争加剧!

自2022年12月塔望咨询开设塔望食品大健康消费研究院&#xff08;简称塔望食研院&#xff09;栏目以来&#xff0c;塔望食研院以“为食品行业品牌高质量发展赋能”为理念&#xff0c;不断发布食品大健康行业研究、消费研究报告。塔望食研院致力于结合消费调研数据、企业数据、第…

XC8233 电容式单按键触摸检测 IC 广泛应用于 TWS及 DC 应用上,实现产品智能化

目前市面上很多的小家电和消费类电子都已经改成触摸式的按键功能&#xff0c;而XC8233是一款电容式单按键触摸检测及接近感应控制芯片。采用 CMOS 工艺制造&#xff0c;内建稳压和去抖动电路&#xff0c;高可靠性&#xff0c;专为取代传统按键开关而设计。超低功耗与宽工作电压…

Java笔记:手写spring之简单实现springboot

手写spring之简单实现springboot 仓库地址: Raray-chuan/mini-spring 博文列表: 导读手写spring之ioc手写spring之aop手写spring之简单实现springboot 1.springmvc框架的理解 什么是MVC: MVC就是一个分层架构模式: MVC 设计模式一般指 MVC 框架&#xff0c;M&#xff08…

ALM物联网管理平台助力中台上云 数字化转型让展示更直观清晰

支持移动浏览、支持大屏显示等功能&#xff0c;能够为设备厂家提供数据依据&#xff0c;方便厂家的售后以及产品的维护、为运维等相关公司提供运维管理等相关功能。 ALM物联网云平台是基于以往的物联网产品&#xff0c;以及目前市场上的各种云平台优点&#xff0c;研精心打造的…

车联网安全集智联盟正式成立

2023年9月22日&#xff0c;在工业和信息化部网络安全管理局支持下&#xff0c;2023年世界智能网联汽车大会——“集智创新车联网安全新格局”特色专场在北京举行。工业和信息化部网络安全管理局领导出席并致辞&#xff0c;中国工程院邬江兴院士以及来自政产学研用等各方的领导和…

TLS/SSL(一)科普之加密、签名和SSL握手

一 背景知识 感悟&#xff1a; 不能高不成低不就备注&#xff1a; 以下内容没有逻辑排版,仅做记录 https基础面经 ① 加密方式 说明&#xff1a; 单向和双向认证遗留&#xff1a; 如何用openssl从私钥中提取公钥? ② 互联网数据安全可靠条件 说明&#xff1a; 二者相…

Java核心-你真的知道Object吗(Object:所有类的超类)

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有需要我的支持&#xff0c;请私信或评论留言&#xff01; 前言 今天来聊一聊…

医院陪诊小程序源码 陪诊陪护小程序源码

医院陪诊小程序源码 陪诊陪护小程序源码 近年来&#xff0c;随着互联网技术的不断发展&#xff0c;我们的生活中出现了越来越多的智能设备和智能应用&#xff0c;这些智能应用不仅极大方便了我们的生活&#xff0c;还对现代医疗服务体验产生了深远的影响。本文将为大家介绍一种…

轻松搭建Linux的环境

Linux的环境的搭建 目录&#xff1a;一、使用云服务器二、使用虚拟机软件2.1 下载虚拟机软件2.2 下载一个操作系统的镜像文件 三、直接安装在物理机上四、使用XShell远程登录到Linux 目录&#xff1a; 我们平常用的都是windows系统&#xff0c;对Linux系统还是很陌生得。为什么…

【软件测试】资深测试聊,自动化测试分层实践,彻底打通高阶...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 自动化测试的分层…