嘗試從Lowe的Iris SmartSwitch解碼Zigbee協議。我正在使用的API回調接收一個已經被解析的框架,併發送給回調(我相信)一個字典對象(?)。我的代碼:python:打印十六進制數據而不是字典
def callback(data):
print data
打印如下:
{'profile': '\xc2\x16', 'source_addr': '\x93\x0c', 'dest_endpoint':
'\x02', 'rf_data': '\t\x00\x81\x00\x00', 'source_endpoint': '\x02',
'options': '\x01', 'source_addr_long': '\x00\ro\x00\x03\xbc\xdf\xab',
'cluster': '\x00\xef', 'id': 'rx_explicit'}
我認爲這是在字節順序,我會更喜歡像輸出:
C2 16 93 0C 02 09 00 81 00 00 02 01 00 ...
任何方式做到這一點用Python內置函數與給定的「數據」參數?另外,我不知道如何將「\ ro」解釋爲8位十六進制。 「\ t」,我假設是0x09。
我真的會喜歡的是數據幀的原始轉儲,但我不知道是否有API調用。
+1了很完整的答案。您將無法使用該字典獲取數據幀的原始轉儲。 ZigBee協議將羣集ID以及源和目標端點組合在一起。檢查你的API,看看是否有另一個對象可以引用爲字節數組。 – tomlogic