Example #1
0
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)
    )
Example #2
0
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"
Example #3
0
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'
Example #4
0
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))
Example #5
0
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),
    )
Example #6
0
    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)
Example #7
0
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)
Example #8
0
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)
Example #9
0
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))
Example #10
0
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)