@@ -91,6 +91,9 @@ def _SolarmanV5__flush_recv_msg(self) -> None:
91
91
def get_sn () -> bytes :
92
92
return b'\x21 \x43 \x65 \x7b '
93
93
94
+ def get_sn_int () -> int :
95
+ return 2070233889
96
+
94
97
def get_inv_no () -> bytes :
95
98
return b'T170000000000001'
96
99
@@ -531,6 +534,15 @@ def MsgModbusCmd():
531
534
msg += b'\x15 '
532
535
return msg
533
536
537
+ @pytest .fixture
538
+ def MsgModbusCmdFwd ():
539
+ msg = b'\xa5 \x17 \x00 \x10 \x45 \x01 \x00 ' + get_sn () + b'\x02 \xb0 \x02 '
540
+ msg += b'\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 \x06 \x20 \x08 '
541
+ msg += b'\x00 \x00 \x03 \xc8 '
542
+ msg += correct_checksum (msg )
543
+ msg += b'\x15 '
544
+ return msg
545
+
534
546
@pytest .fixture
535
547
def MsgModbusCmdCrcErr ():
536
548
msg = b'\xa5 \x17 \x00 \x10 \x45 \x03 \x02 ' + get_sn () + b'\x02 \xb0 \x02 '
@@ -1412,9 +1424,11 @@ def test_msg_at_command_rsp2(ConfigTsunInv1, AtCommandRspMsg):
1412
1424
assert m .db .stat ['proxy' ]['Modbus_Command' ] == 0
1413
1425
m .close ()
1414
1426
1415
- def test_msg_modbus_req (ConfigTsunInv1 , MsgModbusCmd ):
1427
+ def test_msg_modbus_req (ConfigTsunInv1 , MsgModbusCmd , MsgModbusCmdFwd ):
1416
1428
ConfigTsunInv1
1417
1429
m = MemoryStream (b'' )
1430
+ m .snr = get_sn_int ()
1431
+ m .state = m .STATE_UP
1418
1432
c = m .createClientStream (MsgModbusCmd )
1419
1433
1420
1434
m .db .stat ['proxy' ]['Unknown_Ctrl' ] = 0
@@ -1428,8 +1442,9 @@ def test_msg_modbus_req(ConfigTsunInv1, MsgModbusCmd):
1428
1442
assert str (c .seq ) == '03:02'
1429
1443
assert c .header_len == 11
1430
1444
assert c .data_len == 23
1431
- assert c ._forward_buffer == MsgModbusCmd
1445
+ assert c ._forward_buffer == b''
1432
1446
assert c ._send_buffer == b''
1447
+ assert m .writer .sent_pdu == MsgModbusCmdFwd
1433
1448
assert m .db .stat ['proxy' ]['Unknown_Ctrl' ] == 0
1434
1449
assert m .db .stat ['proxy' ]['AT_Command' ] == 0
1435
1450
assert m .db .stat ['proxy' ]['Modbus_Command' ] == 1
@@ -1439,6 +1454,8 @@ def test_msg_modbus_req(ConfigTsunInv1, MsgModbusCmd):
1439
1454
def test_msg_modbus_req2 (ConfigTsunInv1 , MsgModbusCmdCrcErr ):
1440
1455
ConfigTsunInv1
1441
1456
m = MemoryStream (b'' )
1457
+ m .snr = get_sn_int ()
1458
+ m .state = m .STATE_UP
1442
1459
c = m .createClientStream (MsgModbusCmdCrcErr )
1443
1460
1444
1461
m .db .stat ['proxy' ]['Unknown_Ctrl' ] = 0
@@ -1452,8 +1469,9 @@ def test_msg_modbus_req2(ConfigTsunInv1, MsgModbusCmdCrcErr):
1452
1469
assert str (c .seq ) == '03:02'
1453
1470
assert c .header_len == 11
1454
1471
assert c .data_len == 23
1455
- assert c ._forward_buffer == MsgModbusCmdCrcErr
1472
+ assert c ._forward_buffer == b''
1456
1473
assert c ._send_buffer == b''
1474
+ assert m .writer .sent_pdu == b''
1457
1475
assert m .db .stat ['proxy' ]['Unknown_Ctrl' ] == 0
1458
1476
assert m .db .stat ['proxy' ]['AT_Command' ] == 0
1459
1477
assert m .db .stat ['proxy' ]['Modbus_Command' ] == 0
0 commit comments