- RxTxComm has been successfully replaced with jSerialComm and tested with RTU
- The whole codebase has been re-vamped to use modern constructs and practises, not a single class has remained untouched
- Codebase is compatible with JDK 1.6
- Javadoc has been extensively improved and fixed
- A logging framework (log4j) has been included with a wrapper to improve performance and allow token passing
- We have some tests!! Unit tests have been added for all automation friendly protocols (UDP and TCP)
- Unit tests have been added that independently verify the j2mod TCP Slave functionality
- Threading and concurrency has been hugely improved - removed synchronisation errors and corrected the handling of thread shutdown
- Brought some sanity to the Facade package so that it is now usable in a production setting
- Removed the serial BIN transport - it was proprietary and not taken up by any hardware vendors that I could find
- Fixed the UDP transport for both Master and Slave so that it is some way approaching robust
- Fixed the code layout - everything has headers, the layout is consistent, variable names and scope make sense etc.
- Build system incorporates GPG signing and is compatible with one-click deployment to Maven Central through Sonatype
- Added ability to specify timeout for Facade classes 'ModbusTCPMaster', 'ModbusUDPMaster' and 'ModbusSerialMaster'
- Fixed all the Unit ID checking when running as a Slave (myriad of problems - cannot see how it has ever worked)
- Fixed the timeouts for UDP/TCP and Serial listeners
- Added more test cases
- Fixed an issue with the TCPTransaction class not initialising the Transport correctly
- Removed all redundant casts
- Made Transport available from Facade classes so that listeners can be added for Serial events
- Serial timeouts were being applied to a null transport
- Replaced log4j with slf4j
- Corrections to ASCII transport - thanks transparentink
- Added fix for infinite listening loop - thanks martentamerius
- Removed duplicate request handling code
- Fix unit tests on linux #9 - thanks martentamerius
- Improved logging of errors and warnings with stack trace #10 - thanks martentamerius
- Facilitate multiple processimages in ModbusCoupler. #11 - thanks martentamerius
- WriteMultipleRegisters (Function Code : 0x10) does not work. #14 - chnaged use of signed shorts to unsigned
- Serial/RTU slower on 2.x #16 - worked around an issue with jSerialComm where setting timeouts on an open port injected a 200ms delay
- Corrected a problem with applying the timeouts when using the facade pattern
- Retrieve the localPort from opened socket if port is set to 0 #19
- CR characters lost on ModbusSerialTransport #18
- Corrected timeout setting issues on serial ports and harmonised setting timeout with IP methods
- Added support for Modbus RTU over TCP #21 - thanks axuan25
- Code requires guards around a number of the functions #22
- Modbus Slave Multiple Port Support #23
- Set ModbusCoupler to deprecated in favour of the new ModbusSlaveFactory and ModbusSlave sub-system
- Fixed some javadoc errors - thanks jan
- Timeout error on socket listener - thanks jan
- Now allows for slaves to share same socket but different protocols
- Amend TCPMasterConnection socket timeout handling #27 - thanks David
- Fixed NPE in close method of SerialConnection if Comms port was never successfully opened
- Adjusted write timers with fiddle factors to allow for idiosyncratic hardware
- jSerialComm library decoupled from implementation #28 - thanks Felipe
- Length of ReadWriteMultipleResponse indicates 1 byte too much? #31 - thanks elasticoder
- Function code 0x17 first performs a read and then the write. #32 - thanks elasticoder
- Double socket creation in ModbusTCP. #33 - thanks stoorm5
- Increased maximum queue length for incoming connections. #38 - thanks martentamerius
- Incorrect javadoc for ModbusSlaveFactory #35 - thanks bertrik
- Adds setRetries and setCheckingValidity services into ModbusTCPMaster #30 - thanks ericauguie
- Added RTU over TCP #43 - thanks eli-mcgowan
- Fixed setting timeout of TCPMaster does not get applied to transactions #41
- Reduce an NPE - Serial port connection #40
- Fixed issue with serial write bytes delay if data bits not specified
- Specify IP address in ModbusSlaveFactory #46 - thanks MindVark
- Added getConnection() to AbstractSerialConnection - thanks nnadeau
- Reading full stream instead of parts - thanks liebehentze