def test_mgmt_lqi_rsp(): frame = uart.UnpiFrame( 2, 5, 177, b"\x00\x00\x00\x14\x00\x03\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\x1d$&\xfe\xffW\xb4\x14\xef>\x15\x02\x01\x00\xdd" b"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\x9atk\x03\x00\x8d\x15\x00}0\x12\x02\x01`\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\x8d(," b"\x03\x00\x8d\x15\x00}\xcc\x12\x02\x017", 72, 34, ) obj = ZpiObject.from_unpi_frame(frame) assert ( "AREQ ZDO mgmtLqiRsp tsn: None {" "'srcaddr': 0x0000, " "'status': 0, " "'neighbortableentries': 20, " "'startindex': 0, " "'neighborlqilistcount': 3, " "'neighborlqilist': [" "{'extPanId': dd:dd:dd:dd:dd:dd:dd:dd, 'extAddr': 14:b4:57:ff:fe:26:24:1d, 'nwkAddr': 0x3EEF, " "'deviceType': 1, 'rxOnWhenIdle': 1, 'relationship': 1, 'permitJoin': 2, 'depth': 1, 'lqi': 0}, " "{'extPanId': dd:dd:dd:dd:dd:dd:dd:dd, 'extAddr': 00:15:8d:00:03:6b:74:9a, 'nwkAddr': 0x307D, " "'deviceType': 2, 'rxOnWhenIdle': 0, 'relationship': 1, 'permitJoin': 2, 'depth': 1, 'lqi': 96}, " "{'extPanId': dd:dd:dd:dd:dd:dd:dd:dd, 'extAddr': 00:15:8d:00:03:2c:28:8d, 'nwkAddr': 0xCC7D, " "'deviceType': 2, 'rxOnWhenIdle': 0, 'relationship': 1, 'permitJoin': 2, 'depth': 1, 'lqi': 55}" "]}" == str(obj) )
def test_ieee_addr(): frame = uart.UnpiFrame( 3, 7, 0, b"\x00\x0c%\xed\x18\x00K\x12\x00\x00\x00\x07\t\x02J\xd0]\x97") obj = ZpiObject.from_unpi_frame(frame) out = obj.to_unpi_frame() assert out.data == b"\x00\x00\x12K\x00\x18\xed%\x0c\x00\x00\x07\t\x02J\xd0]\x97"
def test_ieee_addr(): # 3 - 7 - 0 - 18 - [bytearray(b'\x00\x0c%\xed\x18\x00K\x12\x00\x00\x00\x07\t\x02J\xd0]\x97')] - 172 frame = uart.UnpiFrame(3, 7, 0, b'\x00\x0c%\xed\x18\x00K\x12\x00\x00\x00\x07\t\x02J\xd0]\x97') obj = ZpiObject.from_unpi_frame(frame) out = obj.to_unpi_frame() assert out.data == b'\x00\x00\x12K\x00\x18\xed%\x0c\x00\x00\x07\t\x02J\xd0]\x97'
def test_data_received_chunk_frame(gw): data = b"\xfe\x0ea\x02\x02\x00\x02\x06\x03\x90\x154\x01\x02\x00\x00\x00\x00\xda" gw.data_received(data[:-4]) assert gw._api.data_received.call_count == 0 gw.data_received(data[-4:]) assert gw._api.data_received.call_count == 1 eq(gw._api.data_received.call_args[0][0], uart.UnpiFrame(3, 1, 2, data[4:-1], 14, 218))
def test_data_received_full_frame(gw): data = b"\xfe\x0ea\x02\x02\x00\x02\x06\x03\x90\x154\x01\x02\x01\x00\x00\x00\xdb" gw.data_received(data) assert gw._api.data_received.call_count == 1 eq( gw._api.data_received.call_args[0][0], uart.UnpiFrame(3, 1, 2, data[4:-1], 14, 219), )
def to_unpi_frame(self): data = Buffalo(b'') for p in self.parameters: value = self.payload[p['name']] data.write_parameter(p['parameterType'], value, {}) return uart.UnpiFrame(self.type, self.subsystem, self.command_id, data.buffer)
def test_from_unpi_frame2(): frame = uart.UnpiFrame( 2, 4, 129, b'\x00\x00\x01\x00\xbbm\x01\x01\x00s\x00YC3\x00\x00\t\x18\x01\x01\x04\x00\x86\x05\x00\x86\xbbm\x1d' ) obj = ZpiObject.from_unpi_frame(frame) assert "AREQ AF incomingMsg tsn: None {'groupid': 0, 'clusterid': 1, 'srcaddr': 0x6dbb, " \ "'srcendpoint': 1, 'dstendpoint': 1, 'wasbroadcast': 0, 'linkquality': 115, " \ "'securityuse': 0, 'timestamp': 3359577, 'transseqnumber': 0, 'len': 9, " \ "'data': b'\\x18\\x01\\x01\\x04\\x00\\x86\\x05\\x00\\x86'}" == str(obj)
def test_from_unpi_frame(): frame = uart.UnpiFrame(3, 1, 2, b"\x02\x00\x02\x06\x03\x90\x154\x01") extra = { "maintrel": 3, "majorrel": 2, "minorrel": 6, "product": 0, "revision": 20190608, "transportrev": 2, } obj = ZpiObject.from_unpi_frame(frame) assert obj.command == "version" assert obj.payload == extra assert str(obj.to_unpi_frame()) == str(frame)
def test_mgmt_nwk_update_notify(): frame = uart.UnpiFrame( 2, 5, 184, b"\xe9\xc0\x00\x00\xf8\xff\x07\x14\x00\x0f\x00\x10\xd6\xac" b"\xcc\xb0\xb5\xa2\xb2\xa5\xb3\xa5\xa2\xa9\xa1\xa1\xa5\xae", 28, 211, ) obj = ZpiObject.from_unpi_frame(frame) assert ( "AREQ ZDO mgmtNwkUpdateNotify tsn: None {'srcaddr': 0xc0e9, 'status': 0, 'scanchannels': 134215680, " "'totaltransmissions': 20, 'transmissionfailures': 15, 'channelcount': 16, " "'energyvalues': [214, 172, 204, 176, 181, 162, 178, 165, 179, 165, 162, 169, 161, 161, 165, 174]" "}" == str(obj))
def test_from_unpi_frame(): frame = uart.UnpiFrame(3, 1, 2, b"\x02\x00\x02\x06\x03\x90\x154\x01") extra = { 'maintrel': 3, 'majorrel': 2, 'minorrel': 6, 'product': 0, 'revision': 20190608, 'transportrev': 2, } obj = ZpiObject.from_unpi_frame(frame) assert obj.command == 'version' assert obj.payload == extra assert str(obj.to_unpi_frame()) == str(frame)