modbus 的float与uint_16的转换

ops/2024/10/18 11:27:37/

    float values = 0.5;  // 要写入的值
    uint16_t wdata[2]{ 0 };
    modbus_set_float(values, wdata);
    // 写多个寄存器  
    int rc = modbus_write_registers(ctx, 8194, 2, wdata);
    if (rc == -1) {
        // 写操作失败,处理错误  
        fprintf(stderr, "Failed to write registers: %s\n", modbus_strerror(errno));
        modbus_close(ctx);
        modbus_free(ctx);
        ctx = nullptr;
        // 可能还需要更新UI以反映连接状态  
    }
    else {
        qDebug() << "Registers written successfully.";

        // 读取写入的寄存器以验证  
        uint16_t rdata[2] = { 0 };
        rc = modbus_read_registers(ctx, 8194, 2, rdata);
        if (rc == -1) {
            // 处理读取错误  
        }
        else {
            float read_value = modbus_get_float(rdata); // 假设这个函数正确处理了字节序  
            qDebug() << "Read value:" << read_value;
            // 验证读取的值是否与写入的值相同  
            if (fabs(read_value - values) < 0.0001) {
                qDebug() << "Read and written values match.";
            }
            else {
                qDebug() << "Read and written values do not match!";
            }
        }
    }


http://www.ppmy.cn/ops/119930.html

相关文章

C++学习9.24

1、 将昨天的My_string类中的所有能重载的运算符全部进行重载 、[] 、>、、>) 头文件 #ifndef MY_STRING_H #define MY_STRING_H#endif // MY_STRING_H#include <iostream> #include <cstring> //#include <stdexcept>using namespace std;class My…

【Python报错已解决】IndexError: index 0 is out of bounds for axis 1 with size 0

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

分布式事务解决方案3阶段的优点

要深入探讨三阶段提交&#xff08;3PC&#xff09;与两阶段提交&#xff08;2PC&#xff09;的优点&#xff0c;并提供Java代码演示&#xff0c;我们需要先了解它们的基本原理和关键差异。然后&#xff0c;我会尝试解释3PC的优点&#xff0c;并以Java伪代码的形式提供实现的示例…

大数据毕业设计选题推荐-民族服饰数据分析系统-Python数据可视化-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

神点SAAS云财务系统/多账套/前后端全开源

>>>系统简述&#xff1a; 神点SAAS云财务软件开源版&#xff0c;包含账套、凭证字、科目、期初、币别、账簿、报表、凭证、结账等功能。 神点云财务系统&#xff0c;餐饮行业财务软件、微服务架构财务软件、开源云财务软件、Java全开源财务软件优选&#xff01; >…

Redis: Sentinel哨兵监控架构及环境搭建

概述 在主从模式下&#xff0c;我们通过从节点只读模式提高了系统的并发能力并发不断增加&#xff0c;只需要扩展从节点即可&#xff0c;只要主从服务器之间&#xff0c;网络连接正常主服务器就会将写入自己的数据同步更新给从服务器&#xff0c;从而保证主从服务器的数据相同…

【RocketMQ】从 文件/数据结构 视角理解RocketMQ原理

目录 1. NameServer 文件结构和数据结构2. Broker 文件结构和数据结构2.1 CommitLog2.2 ConsumeQueue2.3 IndexFile2.4 TopicTable2.5 SubscriptionGroupTable2.6 ConsumerOffset2.7 DelayQueue 3. 客户端&#xff08;生产者/消费者&#xff09;的文件结构和数据结构3.1 Produc…

77. 组合【含回溯详解、N叉树类比、剪枝优化】

文章目录 77. 组合思路暴力法回溯与N叉树类比回溯法三部曲 总结剪枝优化剪枝总结 77. 组合 77. 组合 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&am…