def set_response() -> xdlms.SetResponseNormal: return xdlms.SetResponseNormal( result=enumerations.DataAccessResult.SUCCESS, invoke_id_and_priority=xdlms.InvokeIdAndPriority(invoke_id=1, confirmed=True, high_priority=True), )
def test_transform_bytes(self): data = b"\xc7\x01\xc0\x00\x00" action = xdlms.ActionResponseNormal( enumerations.ActionResultStatus.SUCCESS, invoke_id_and_priority=xdlms.InvokeIdAndPriority( invoke_id=0, confirmed=True, high_priority=True), ) assert data == action.to_bytes() assert action == xdlms.ActionResponseNormal.from_bytes(data)
def test_transform_bytes(self): data = b"\xc5\x01\xc1\x00" response = xdlms.SetResponseNormal( result=enumerations.DataAccessResult.SUCCESS, invoke_id_and_priority=xdlms.InvokeIdAndPriority( invoke_id=1, confirmed=True, high_priority=True ), ) assert data == response.to_bytes() assert response == xdlms.SetResponseNormal.from_bytes(data)
def test_transform_bytes(self): data = b"\xc7\x01\xc0\x00\x01\x01\xfa" action = xdlms.ActionResponseNormalWithError( enumerations.ActionResultStatus.SUCCESS, error=enumerations.DataAccessResult.OTHER_REASON, invoke_id_and_priority=xdlms.InvokeIdAndPriority( invoke_id=0, confirmed=True, high_priority=True), ) assert data == action.to_bytes() assert action == xdlms.ActionResponseNormalWithError.from_bytes(data)
def action_request() -> xdlms.ActionRequestNormal: return xdlms.ActionRequestNormal( cosem_method=cosem.CosemMethod( interface=enumerations.CosemInterface.DISCONNECT_CONTROL, instance=cosem.Obis.from_dotted("0.0.96.3.10.255"), method=1, ), data=dlms_data.UnsignedLongData(0).to_bytes(), invoke_id_and_priority=xdlms.InvokeIdAndPriority(invoke_id=1, confirmed=True, high_priority=True), )
def test_transform_bytes(self): data = b"\xc7\x01\xc0\x00\x01\x00\t\x11\x10\x00\x00\x1a\xfd\xe8\x85{r\x8a4\x99\x10j\xa6e\xd1" action = xdlms.ActionResponseNormalWithData( enumerations.ActionResultStatus.SUCCESS, data=bytearray( b"\t\x11\x10\x00\x00\x1a\xfd\xe8\x85{r\x8a4\x99\x10j\xa6e\xd1" ), invoke_id_and_priority=xdlms.InvokeIdAndPriority( invoke_id=0, confirmed=True, high_priority=True), ) assert data == action.to_bytes() assert action == xdlms.ActionResponseNormalWithData.from_bytes(data)
def set_request() -> xdlms.SetRequestNormal: # invocation counter return xdlms.SetRequestNormal( cosem_attribute=cosem.CosemAttribute( interface=enumerations.CosemInterface.CLOCK, instance=cosem.Obis(a=0, b=0, c=1, d=0, e=0, f=255), attribute=2, ), data=b"\t\x0c\x07\xe5\x01\x18\xff\x0e09P\xff\xc4\x00", access_selection=None, invoke_id_and_priority=xdlms.InvokeIdAndPriority(invoke_id=1, confirmed=True, high_priority=True), )
def test_transform_bytes_without_data(self): data = b"\xc3\x01\xc0\x00\x0f\x00\x00(\x00\x00\xff\x01\x00" action = xdlms.ActionRequestNormal( cosem_method=cosem.CosemMethod( interface=enumerations.CosemInterface.ASSOCIATION_LN, instance=cosem.Obis(a=0, b=0, c=40, d=0, e=0, f=255), method=1, ), data=None, invoke_id_and_priority=xdlms.InvokeIdAndPriority( invoke_id=0, confirmed=True, high_priority=True), ) assert data == action.to_bytes() assert action == xdlms.ActionRequestNormal.from_bytes(data)
def test_transform_bytes(self): data = b"\xc1\x01\xc1\x00\x08\x00\x00\x01\x00\x00\xff\x02\x00\t\x0c\x07\xe5\x01\x18\xff\x0e09P\xff\xc4\x00" request = xdlms.SetRequestNormal( cosem_attribute=cosem.CosemAttribute( interface=enumerations.CosemInterface.CLOCK, instance=cosem.Obis(a=0, b=0, c=1, d=0, e=0, f=255), attribute=2, ), data=b"\t\x0c\x07\xe5\x01\x18\xff\x0e09P\xff\xc4\x00", access_selection=None, invoke_id_and_priority=xdlms.InvokeIdAndPriority( invoke_id=1, confirmed=True, high_priority=True ), ) assert data == request.to_bytes() assert request == xdlms.SetRequestNormal.from_bytes(data)
def test_transform_bytes(self): data = b'\xc3\x01\xc0\x00\x0f\x00\x00(\x00\x00\xff\x01\x01\t\x11\x10\x00\x00\x1a\x90\xe6\xd2"\x1f\xa2\xfd\x85\xee\xd6\x1a\xcc"' action = xdlms.ActionRequestNormal( cosem_method=cosem.CosemMethod( interface=enumerations.CosemInterface.ASSOCIATION_LN, instance=cosem.Obis(a=0, b=0, c=40, d=0, e=0, f=255), method=1, ), data= b'\t\x11\x10\x00\x00\x1a\x90\xe6\xd2"\x1f\xa2\xfd\x85\xee\xd6\x1a\xcc"', invoke_id_and_priority=xdlms.InvokeIdAndPriority( invoke_id=0, confirmed=True, high_priority=True), ) assert data == action.to_bytes() assert action == xdlms.ActionRequestNormal.from_bytes(data)
def test_action_response_normal_sets_ready_when_awaiting_action_resoponse(): c = DlmsConnection( state=state.DlmsConnectionState( current_state=state.AWAITING_ACTION_RESPONSE), client_system_title=b"12345678", ) c.receive_data( xdlms.ActionResponseNormal( status=enumerations.ActionResultStatus.SUCCESS, invoke_id_and_priority=xdlms.InvokeIdAndPriority( invoke_id=1, confirmed=True, high_priority=True), ).to_bytes()) c.next_event() assert c.state.current_state == state.READY