easymodbus4j 0.0.4 release, adding support modbus RTU protocol

easymodbus4j update 0.0.4 release, adding support modbus RTU protocol

Cloud code Address: https://gitee.com/zengfr/easymodbus4j

easymodbus4j Java is a high performance and ease of implementation Modbus protocol, based Netty development, it can be used for Java client and Modbus protocol server development. 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 Features: 
. 1, the NIO Netty High Performance high performance. 
2, the Modbus Sync Function / aync synchronous / asynchronous non-blocking. 
3, Modbus IoT Data Connector Supports industry Things IoT platform support. 
4, support for Modbus TCP \ Modbus RTU protocol two communication protocols. 
5, full support for Modbus TCP 4 Zhong deployment modes: TCP server master, TCP client slave, TCP server slave, TCP client master. 
6, fully supports Modbus RTU 4 Zhong deployment modes: RTU server master, RTU client slave, RTU server slave, RTU client master. 
7, friendly debugging and logging support bit \ bitset \ byte \ short \ int \ float \ double. 
8, the Supports Function Codes: 
the Read Coils (FC1) 
the Read Discrete the Inputs (FC2) 
the Read Holding Registers (FC3) 
the Read the Input Registers (FC4) 
the Write Single Coil (FC5) 
the Write Single the Register (FC6) 
the Write Multiple Coils (FC15) 
the Write Multiple Registers (FC16) 
the Read / the Write Multiple Registers (FC23)

#Example Project Code in https://github.com/zengfr/easymodbus4j

Repositories Central Sonatype Mvnrepository easymodbus4j

the artifactId / JAR: 
easymodbus4j-core.jar the Modbus protocol Protocol 
easymodbus4j-codec.jar Modbus universal code decoder 
easymodbus4j.jar Modbus General / Common Public General Packet 
easymodbus4j-client.jar Modbus client client 
easymodbus4j-server.jar Modbus server server end 
easymodbus4j-extension.jar Modbus extension extended package ModbusMasterResponseProcessor / ModbusSlaveRequestProcessor interface
快速开发Quick Start:
第一步step1 ,import jar:
maven:
<dependency>
<groupId>com.github.zengfr</groupId>
<artifactId>easymodbus4j-client</artifactId>
<version>0.0.4</version>
</dependency>
<dependency>
<groupId>com.github.zengfr</groupId>
<artifactId>easymodbus4j-server</artifactId>
<version>0.0.4</version>
</dependency>
<dependency>
<groupId>com.github.zengfr</groupId>
<artifactId>easymodbus4j-extension</artifactId>
<version>0.0.4</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 ?
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 show log? 
see ModbusMasterResponseHandler.java in example project.
ModbusFrameUtil.showFrameLog(logger, channel, frame);

4.4 how to custom a client/server?
ModbusChannelInitializer modbusChannelInitializer=...;
ModbusServerTcpFactory.getInstance().createServer4Master(port,modbusChannelInitializer);

#Example Project Code master/easymodbus4j-example/src/main/java/com/github/zengfr/easymodbus4j/example

Startup RUN example: 
. 1, the unzip File easymodbus4j-example-0.0.1-release.zip. 
2, for Master Modbus MODE: File Open autosend.txt or in the dir-autosend.txt rsourcefile in Example easymodbus4j-0.0.1.jar 
. 3 , for the MODE Modbus Master: file Edit autosend.txt 
4, Start startup.bat. 
5, you CAN Also Edit * .bat for Modbus Master / Salve the MODE:. 
Description: 
1. unzip the zip file to a folder 
2, java program not running the installation jdk8. 
. 3, 8 after decompression bat file corresponding to TCP / RTU server master, client Slave, Slave servers, client master 8 modes. 
. 4, Master mode can be set autosend.txt files, read and write timing of transmission request. 
5, Notepad open the bat file can edit the parameters, such as transmission delay time, and the timing detailed logging.

Run renderings capture screen shots: FIG screenshot running effect easymodbus4j 1FIG screenshot running effect easymodbus4j 2FIG screenshot running effect easymodbus4j 3FIG screenshot running effect easymodbus4j 4

update feature/history:
0.0.4 2019.08.03 support Modbus RTU protocol and heartbeat

Guess you like

Origin www.oschina.net/news/108776/easymodbus4j-0-0-4-released