@@ -68,8 +68,8 @@ describe('Modbus/RTU Client Request Tests', function () {
68
68
it ( 'should register an rtu request and handle a exception response' , function ( done ) {
69
69
const handler = new ModbusRTUClientRequestHandler ( socket , 4 )
70
70
const request = new ReadCoilsRequest ( 0x0000 , 0x0008 )
71
- const response = new ExceptionResponse ( 0x81 , 0x01 )
72
- const rtuResponse = new ModbusRTUResponse ( 4 , 8352 , response )
71
+ const response = new ExceptionResponse ( 0x01 , 0x01 )
72
+ const rtuResponse = new ModbusRTUResponse ( 4 , 37265 , response )
73
73
74
74
socket . emit ( 'open' )
75
75
@@ -80,14 +80,48 @@ describe('Modbus/RTU Client Request Tests', function () {
80
80
assert . ok ( false )
81
81
82
82
done ( )
83
- } ) . catch ( function ( ) {
84
- assert . ok ( true )
83
+ } ) . catch ( function ( err ) {
84
+ // Exception type should be ModbusException not crcMismatch or any other
85
+ assert . equal ( err . err , 'ModbusException' )
86
+ socketMock . verify ( )
87
+
88
+ done ( )
89
+ } )
90
+
91
+ handler . handle ( rtuResponse )
92
+ } )
93
+
94
+ it ( 'should calculate exception response crc correctly' , function ( done ) {
95
+ const handler = new ModbusRTUClientRequestHandler ( socket , 1 )
96
+ const request = new ReadHoldingRegistersRequestBody ( 0x4000 , 0x0002 )
97
+ const responseBuffer = Buffer . from ( [
98
+ 0x01 , // address
99
+ 0x83 , // fc
100
+ 0x02 , // error code
101
+ 0xc0 , 0xf1 // crc
102
+ ] )
103
+ const rtuResponse = ModbusRTUResponse . fromBuffer ( responseBuffer )
104
+
105
+ socket . emit ( 'open' )
106
+
107
+ socketMock . expects ( 'write' ) . once ( )
108
+
109
+ handler . register ( request )
110
+ . then ( function ( resp ) {
111
+ assert . ok ( false )
112
+
113
+ done ( )
114
+ } ) . catch ( function ( err ) {
115
+ // Exception type should be ModbusException not crcMismatch or any other
116
+ assert . equal ( err . err , 'ModbusException' )
85
117
socketMock . verify ( )
86
118
87
119
done ( )
88
120
} )
89
121
90
122
handler . handle ( rtuResponse )
123
+ // rtuResponse.crc
124
+
91
125
} )
92
126
} )
93
127
} )
0 commit comments