def test_contruct(self): total = bytes.fromhex( "7EA0382102233034E7E6E7006129A109060760857405080101A203020100A305A103020100BE10040E0800065F1F0400001E1D04C80007B86A7E" ) information_part = bytes.fromhex( "E6E7006129A109060760857405080101A203020100A305A103020100BE10040E0800065F1F0400001E1D04C80007" ) server_address = address.HdlcAddress(logical_address=1, physical_address=17, address_type="server") # Public client client_address = address.HdlcAddress(logical_address=16, physical_address=None, address_type="client") frame = frames.InformationFrame( destination_address=client_address, source_address=server_address, payload=information_part, send_sequence_number=0, receive_sequence_number=1, segmented=False, final=True, ) print(f"length = {frame.frame_length} :: {len(frame.to_bytes())}") print(total.hex()) print(frame.to_bytes().hex()) assert frame.to_bytes() == total
def test_construct(self): total = bytes.fromhex( "7EA02C02232110AF9FE6E600601DA109060760857405080101BE10040E01000000065F1F0400001E1DFFFFC5E47E" ) information_part = bytes.fromhex( "E6E600601DA109060760857405080101BE10040E01000000065F1F0400001E1DFFFF" ) server_address = address.HdlcAddress(logical_address=1, physical_address=17, address_type="server") # Public client client_address = address.HdlcAddress(logical_address=16, physical_address=None, address_type="client") frame = frames.InformationFrame( destination_address=server_address, source_address=client_address, payload=information_part, send_sequence_number=0, receive_sequence_number=0, segmented=False, final=True, ) print(total) print(frame.to_bytes()) assert frame.to_bytes() == total
def test_parses_correct(self): out_data = bytes.fromhex("7ea00802232193bd647e") destination_address = address.HdlcAddress(logical_address=1, physical_address=17, address_type="server") # Public client source_address = address.HdlcAddress(logical_address=16, physical_address=None, address_type="client") snrm = frames.SetNormalResponseModeFrame(destination_address, source_address) assert snrm.to_bytes() == out_data
def test_client_address_just_logical(self, hdlc_address, resulting_bytes): add = address.HdlcAddress( logical_address=hdlc_address[0], physical_address=hdlc_address[1], address_type=hdlc_address[2], ) assert add.to_bytes() == resulting_bytes
def test_parser_correctly(self): out_data = bytes.fromhex( "7EA01F21022373E6C781801205019A06019A070400000001080400000001CCA27E" ) # from device so public client is destination address. source_address = address.HdlcAddress(logical_address=1, physical_address=17, address_type="server") # Public client destination_address = address.HdlcAddress(logical_address=16, physical_address=None, address_type="client") information = out_data[9:-3] ua = frames.UnNumberedAcknowledgmentFrame(destination_address, source_address, information) print(ua.hcs.hex()) print(ua.to_bytes().hex()) print(out_data.hex()) assert ua.to_bytes() == out_data
def client_hdlc_address(self): return address.HdlcAddress( logical_address=self.client_logical_address, physical_address=self.client_physical_address, address_type="client", )
def server_hdlc_address(self): return address.HdlcAddress( logical_address=self.server_logical_address, physical_address=self.server_physical_address, address_type="server", )