modbus中如何将float转换为short[]

modbus4j中 有一个发送的方法
public final ModbusResponse send(ModbusRequest request) throws ModbusTransportException,其中 
WriteRegistersRequest 是一个用于向 Modbus 设备写入多个寄存器的请求。Modbus 是一种工业通信协议,用于连接电子设备。在 Modbus 通信中,数据通常存储在寄存器中,这些寄存器可以通过读写操作进行访问。WriteRegistersRequest 通常包含以下信息:slaveId:从设备的 ID。这是向特定设备发送请求的标识符。
registerAddress:要写入的第一个寄存器的地址。这是数据在设备中的存储位置。
data:要写入的值。这是要写入设备的字节数组。
dataLength:要写入的数据长度。这是要写入的字节数。```javamodbusConnector.send(new WriteRegistersRequest(1,9500,toShortArray(action)));//取值,array[0],array[1]是short类型,array[2]array[3] 是通过float转的short[]类型.private short[] toShortArray(Action action) {short[] array = new short[4];array[0] = action.getvalue1().shortValue();array[1] = action.getvalue2().shortValue();insertFloat32ToShortArray(action.getMoveX(), array, 2);return array;}// 将float转换成modbus可用的short[]类型private void insertFloat32ToShortArray(float floatValue, short[] dest, int destPos) {int bits = Float.floatToIntBits(floatValue);byte[] bytes = new byte[4];bytes[0] = (byte) (0xff & (bits >> 8));bytes[1] = (byte) (0xff & bits);bytes[2] = (byte) (0xff & (bits >> 24));bytes[3] = (byte) (0xff & (bits >> 16));short[] src = new short[2];src[0] = (short) (((bytes[0] & 0xff) << 8) | (bytes[1] & 0xff));src[1] = (short) (((bytes[2] & 0xff) << 8) | (bytes[3] & 0xff));System.arraycopy(src, 0, dest, destPos, 2);}

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

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

相关文章

matlab配置

matlab配置 windowslinux挂载安装MATLAB windows 按照这里一步步配置就行( 移动硬盘中软件备份中自取) linux linux配置步骤 挂载 sudo mount -t auto -o loop /media/oyk/Elements/ubuntu/MATLAB/R2017a_glnxa64_dvd1.iso ./matlab/安装MATLAB 挂载完成后&#xff0c;先…

SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解

目录 一、Nacos持久化 1.持久化说明 2.安装mysql数据库5.6.5以上版本(略) 3.修改配置文件 二、nacos高可用 1.集群说明 2.nacos集群架构图 2.集群搭建注意事项 3.集群规划 4.搭建nacos集群 5.安装Nginx 6.配置nginx conf配置文件 7.启动nginx进行测试即可 一、Nacos持久…

laravel8中常用路由使用(笔记四)

目录 1、框架路由目录统一放该目录 2、基本路由,路由都调用Route方法 3、控制器使用路由 4、路由参数 5、路由组 6、命名路由 7、命令查看当前路由列表 8、路由缓存 在Laravel 8中&#xff0c;路由定义了应用程序中接受请求的方式。它们定义了URL和相应的控制器方法之间的…

HTML input 属性笔记

Input表示Form表单中的一种输入对象&#xff0c;其又随Type类型的不同而分文本输入框&#xff0c;密码输入框&#xff0c;单选/复选框&#xff0c;提交/重置按钮等&#xff0c;下面一一介绍。 1&#xff0c;typetext 输入类型是text&#xff0c;这是我们见的最多也是使用最多的…

13、LCD1602调试工具

LCD1602调试工具 使用LCD1602液晶屏作为调试窗口&#xff0c;提供类似Printf函数的功能&#xff0c;可实时观察单片机内部数据的变化情况&#xff0c;便于调试和演示。 main.c #include <REGX52.H> #include "LCD1602.h" #include "Delay.h"//存储…

【开源】基于JAVA的海南旅游景点推荐系统

项目编号&#xff1a; S 023 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S023&#xff0c;文末获取源码。} 项目编号&#xff1a;S023&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四…

前端开发学习 (三) 列表功能

一、列表功能 1、列表功能 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compa…

锂电行业废水及母液除铊解决方案,除铊树脂技术

锂电池原材料和生产设备的制造、电池回收和处理等&#xff0c;产业的发展会带来铊排放问题。除了锂电池生产过 程中存在的铊污染外&#xff0c;企业的生活污水或者初期雨水也含有铊&#xff0c;因为铊是一种广泛存在于自然环境中的 元素&#xff0c;存在于饮用水、土壤和食物中…

高效视频剪辑:按指定时长批量分割视频,释放无尽创意

随着数字媒体技术的不断发展&#xff0c;视频剪辑已经成为日常生活中不可或缺的一部分。无论是制作电影、电视剧&#xff0c;还是创意生活短视频&#xff0c;视频剪辑都扮演着重要的角色。然而&#xff0c;对于许多非专业人士来说&#xff0c;视频剪辑可能是一项复杂而耗时的任…

27.0/多态/对象向上转型/向下转型/抽象类/抽象方法。

目录 27.1为什么使用多态? 27.1.2什么是多态 27.1.3对象多态 27.1.4多态的使用前提 27.2 向上转型 27.3向下转型 (面试题) 27.4抽象类和抽象方法 特点(面试题): 27.1为什么使用多态? 需求1&#xff1a;动物园让我们实现一个功能&#xff1a; 创建一个狗类 &#xff0c;狗…

Leetcode—739.每日温度【中等】

2023每日刷题&#xff08;四十二&#xff09; Leetcode—739.每日温度 单调栈实现思想 从右到左实现代码 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {int n temperatures.size();stack<int> st;vector<i…

各种数据库查询运行中的sql以及终止进程

目录 mysql pg 查询各种数据源&#xff0c;查询运行中的sql以及终止进程总结 mysql 1、查询运行中的sql (1) SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE dbxx; (2) show processlist; select concat(kill ,id ,;) FROM INFORMATION_SCHEMA.PROCESSLIST WH…

ensp 启动设备时报40错误,然后一直没有去管,再次进去就好了,我知道是配置虚拟机的时候修改了一些设置:

第一个阶段&#xff1a; 那时我是重置电脑之后就安装了ensp所以没有出现什么问题&#xff0c;&#xff08;那时没有导入ce6800和12800还有防火墙6000&#xff09; 第二个阶段&#xff1a; 因为有华为相关的实验要做&#xff0c;所以心血来潮打开了ensp&#xff08;路由器之前…

Digicert OV 代码签名介绍

Digicert OV 代码签名证书是一种数字证书&#xff0c;用于对软件代码进行数字签名。数字签名是一种验证软件来源和完整性的技术&#xff0c;通过使用私有密钥对代码进行签名&#xff0c;并在签名后使用公共密钥验证签名。 可基于更多平台&#xff0c;最大限度地提高分发量和收…

03、K-means聚类实现步骤与基于K-means聚类的图像压缩(2)

03、K-means聚类实现步骤与基于K-means聚类的图像压缩&#xff08;2&#xff09; 工程下载&#xff1a;K-means聚类实现步骤与基于K-means聚类的图像压缩 其他&#xff1a; 03、K-means聚类实现步骤与基于K-means聚类的图像压缩&#xff08;1&#xff09; 03、K-means聚类实现…

在easyswoole 中,配置文件如何加载外部配置

在一个项目中 目录结构是这样的 网站的公共配置&#xff0c;包括一些数据库连接配置&#xff0c;redis连接配置 /web/config/redis_config.php/web/config/mysql_config.php 下面是Easyswoole 项目目录 所有的配置均放在ES项目中的Config目录中 文件名且采用大驼峰命名。如…

深度学习神经网络加大batchsize训练速度降低的原因(GPT)

在深度学习中&#xff0c;批量大小&#xff08;batch size&#xff09;是指在每次参数更新时一次性输入到模型中的样本数量。通常情况下&#xff0c;增大批量大小可以提高训练过程中的计算效率&#xff0c;因为可以利用并行计算的优势。然而&#xff0c;当批量大小过大时&#…

Linux 命令ln

1什么是链接 ln在Linux中 ln 命令的功能是为某一个文件在另外一个位置建立一个同步的链接&#xff0c;当我们需要在不同的目录&#xff0c;用到相同的文件时&#xff0c;我们不需要在每一个需要的目录下都放一个必须相同的文件&#xff0c;我们只要在某个固定的目录&#xff0…

SpringBoot监控Redis事件通知

Redis的事件通知 Redis事件通过 Redis 的订阅与发布功能&#xff08;pub/sub&#xff09;来进行分发&#xff0c; 因此所有支持订阅与发布功能的客户端都可以在无须做任何修改的情况下&#xff0c; 使用键空间通知功能。 因为 Redis 目前的订阅与发布功能采取的是发送即忘&am…

记录一次内存泄漏排查历程

背景 通过在deinit方法内打印日志&#xff0c;发现某个ViewController的deinit方法没有执行&#xff0c;决定排查下具体的原因。 方案1&#xff0c;instruments排查 打开instruments&#xff0c;按照内存泄漏的流程进行检测&#xff0c;反复进入&#xff0c;退出目标ViewContr…