easymodbus4j 0.0.5 发布,修复更新
easymodbus4j 0.0.5 发布,修复更新
0.0.4 rtu协议模式下 有多处bug,建议全部升级至0.0.5版本。
更新如下:
1、日志统一调整。
2、rtu 修复 req resp同步更新bug。
3、新增debug调试多处关键性日志。
4、正负数bug修复。
5、rtu协议模式下 读写锁bug修复 以及性能优化。
easymodbus4j
easymodbus4j是一个高性能和易用的 Modbus 协议的 Java 实现,基于 Netty 开发,可用于 Modbus协议的Java客户端和服务器开发. easymodbus4j A high-performance and ease-of-use implementation of the Modbus protocol written in Java netty support for modbus 8 mode client/server and master/slave.
easymodbus4j 特点: 1、Netty NIO high performance高性能. 2、Modbus Function sync/aync 同步/异步非阻塞。 3、Modbus IoT Data Connector Supports工业物联网平台IoT支持。 4、支持Modbus TCP\Modbus RTU protocol两种通信协议. 5、灵活架构,支持8种生产部署模式,自由组合,满足不同生产要求. 6、通用组件包,支持高度自定义接口. 7、完全支持Modbus TCP 4种部署模式: TCP服务器master,TCP客户端slave,TCP服务器slave,TCP客户端master。 8、完全支持Modbus RTU 4种部署模式: RTU服务器master,RTU客户端slave,RTU服务器slave,RTU客户端master。 9、友好的调试以及日志支持bit\bitset\byte\short\int\float\double。 10、Supports Function Codes: Read Coils (FC1) Read Discrete Inputs (FC2) Read Holding Registers (FC3) Read Input Registers (FC4) Write Single Coil (FC5) Write Single Register (FC6) Write Multiple Coils (FC15) Write Multiple Registers (FC16) Read/Write Multiple Registers (FC23)
#Example Project Code in https://github.com/zengfr/easymodbus4j
Repositories Central Sonatype Mvnrepository easymodbus4j
artifactId/jar: easymodbus4j-core.jar Modbus protocol协议 easymodbus4j-codec.jar Modbus 通用编码器解码器 easymodbus4j.jar Modbus General/Common公共通用包 easymodbus4j-client.jar Modbus client客户端 easymodbus4j-server.jar Modbus server服务器端 easymodbus4j-extension.jar Modbus extension扩展包 ModbusMasterResponseProcessor/ModbusSlaveRequestProcessor interface
快速开发Quick Start: 第一步step1 ,import jar: maven: <dependency> <groupId>com.github.zengfr</groupId> <artifactId>easymodbus4j-client</artifactId> <version>0.0.5</version> </dependency> <dependency> <groupId>com.github.zengfr</groupId> <artifactId>easymodbus4j-server</artifactId> <version>0.0.5</version> </dependency> <dependency> <groupId>com.github.zengfr</groupId> <artifactId>easymodbus4j-extension</artifactId> <version>0.0.5</version> </dependency> 第二步step2, implement handler: 2.1 if master 实现implement ResponseHandler接口 see easymodbus4j-example:ModbusMasterResponseHandler.java or 实现implement ModbusMasterResponseProcessor 接口 use new ModbusMasterResponseHandler(responseProcessor); 2.2 if slave 实现implement RequestHandler接口 see easymodbus4j-example:ModbusSlaveRequestHandler.java or 实现implement ModbusSlaveRequestProcessor 接口 use new ModbusSlaveRequestHandler(reqProcessor); 第三步step3, select one master/slave client/server mode: modbusServer = ModbusServerTcpFactory.getInstance().createServer4Master(port, responseHandler); modbusClient = ModbusClientTcpFactory.getInstance().createClient4Slave(host,port, requestHandler); modbusClient = ModbusClientTcpFactory.getInstance().createClient4Master(host, port, responseHandler); modbusServer = ModbusServerTcpFactory.getInstance().createServer4Slave(port, requestHandler); modbusServer = ModbusServerRtuFactory.getInstance().createServer4Master(port, responseHandler); modbusClient = ModbusClientRtuFactory.getInstance().createClient4Slave(host,port, requestHandler); modbusClient = ModbusClientRtuFactory.getInstance().createClient4Master(host, port, responseHandler); modbusServer = ModbusServerRtuFactory.getInstance().createServer4Slave(port, requestHandler); 第四步step4: 4.1 how to send a request ? Channel channel = client.getChannel()); Channel channel = server.getChannelsBy(...)); ChannelSender sender = ChannelSenderFactory.getInstance().get(channel); sender.readCoils(...) sender.readDiscreteInputs(...) sender.writeSingleRegister(...) 4.2 how to process request/response? see code in processResponseFrame mothod in ModbusMasterResponseHandler.java or ModbusMasterResponseProcessor.java public void processResponseFrame(Channel channel, int unitId, AbstractFunction reqFunc, ModbusFunction respFunc) { if (respFunc instanceof ReadCoilsResponse) { ReadCoilsResponse resp = (ReadCoilsResponse) respFunc; ReadCoilsRequest req = (ReadCoilsRequest) reqFunc; //process business logic for req/resp } }; 4.3 how to get response to byteArray for custom decode by yourself? see code in processResponseFrame mothod in ModbusMasterResponseHandler.java or ModbusMasterResponseProcessor.java public void processResponseFrame(Channel channel, int unitId, AbstractFunction reqFunc, ModbusFunction respFunc) { if (respFunc instanceof ReadDiscreteInputsResponse) { ReadDiscreteInputsResponse resp = (ReadDiscreteInputsResponse) respFunc; byte[] resutArray = resp.getInputStatus().toByteArray(); } }; 4.4 how to show log? see ModbusMasterResponseHandler.java in example project. ModbusFrameUtil.showFrameLog(logger, channel, frame); 4.5 how to custom a client/server advance by yourself? ModbusChannelInitializer modbusChannelInitializer=...; ModbusServerTcpFactory.getInstance().createServer4Master(port,modbusChannelInitializer);
#Example Project Code master/easymodbus4j-example/src/main/java/com/github/zengfr/easymodbus4j/example
Example run startup: 1、unzip file easymodbus4j-example-0.0.5-release.zip. 2、for modbus master mode:open autosend.txt file in dir or autosend.txt rsourcefile in easymodbus4j-example-0.0.5.jar 3、for modbus master mode:edit autosend.txt file 4、start startup.bat. 5、you also can edit *.bat for modbus master/salve mode: . 说明: 1、解压缩zip文件到文件夹 2、java程序 运行不了 则安装jdk8. 3、解压后8个bat文件 对应TCP/RTU 服务器master,客户端slave,服务器slave,客户端master 8种模式. 4、Master模式 可以设置autosend.txt文件,定时发送读写请求。 5、记事本打开bat文件可以编辑相关参数,如定时延时发送时间以及详细日志开关。
capture运行效果图截屏:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
TypeORM 0.2.20 发布,ts/js 的 orm ,用于浏览器、APP和 node
Bug修复 确保私有属性,克隆查询构建器(#4843)(ea17094),关闭#4842 aurora:将mysql查询修复程序应用于aurora(#4779)(ee61c51) 允许将EntitySchema传递给EntityRepository(#4884)(652a20e) 更好的时间戳比较(#4769)(0a13e6a) 使用复制时损坏的数据库选项,由#4753(#4826)(df5479b)引入的更改 在提取COLUMN_DEFAULT(#4783)(c30b485)之前检查MariaDB的版本 连接在Lambda环境中重用中断:(#4804)(7962036) FindOptionUtils导出(#4746)(4a62b1c),关闭#4745 加载aurora-data-api驱动程序(#4765)(fbb8947) postgres:postgres查询运行程序以创建实例化视图(#4877)(d744966) mongodb(#4702)(2f27581)的迁移顺序相反 mongodb Cursor.forEach类型(#4759)(fccbe3e) 松弛邀请URL(#4...
- 下一篇
GOKU API Gateway CE V3.1.0 发布:新增服务编排、配置版本管理等
Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang 开发的微服务网关,能够实现高性能 HTTP API 转发、服务编排、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行 API 服务治理、提高 API 服务的稳定性和安全性。GOKU API Gateway CE V3.1.0版本带来了以下几项更新内容: 新增API服务编排 支持一个编排API对应多个后端服务,每个后端服务的请求参数可以使用前端传入的参数,也可以在编排里自定义(写静态参数或从返回数据里获得)。每个后端服务的返回数据支持过滤、删除、移动、重命名、拆包和封包等操作;编排API能够设定编排失败时的异常返回。 简易教程: 新建API时选择新建编排API; 设置API的请求信息,配置需要的转发内容; 每个Step里可以配置转发地址,Step里可以配置转发地址、入参、返回数据的处理等。 入参支持获取原始参数和直接配置参数 ; 返回数据支持进行字段过滤(字段黑白名单)、删除、移动、重命名、拆包、封包等操作。 新建编排A...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启