我有一个传感器系统。传感器从我那里接收命令,做一些事情,然后向我发送响应。
响应是这样的:
seq. number | net_id | opcode_group | opcode | payloadlength | val
我有这些值由空格字符分隔。
现在我想取最后一个名为val
. 在这一部分中,我有所有我想知道的信息来详细说明传感器的响应。
例如,对于想知道传感器的 IEEE MAC 地址的命令,我有以下响应:
在这种情况下,val
是响应中的所有字段Length
。没有分离,但我有一种字符串。
我所要做的就是拆分这个数组/数字字符串,只知道每个字段的长度。例如。状态为 1 个字节,MAC 地址为 8 个字节,以此类推……
我的代码是这样的:
if response.error:
ret['error'] = 'Error while retrieving unregistered sensors'
else:
for line in response.body.split("\n"):
if line != "":
value = int(line.split(" ")[6])
ret['response'] = value
self.write(tornado.escape.json_encode(ret))
self.finish()
if command == 'IDENTIFY':
status = value.split(" ")[0]
IEEEAddrRemoteDev = value.split(" ")[1]
NWKAddrRemoteDev = value.split(" ")[2]
NumOfAssociatedDevice = value.split(" ")[3]
StartIndex = value.split(" ")[4]
ListOfShortAddress = value.split(" ")[5]
if status == 0x00:
ret['success'] = "The %s command has been succesfully sent! \
IEEE address: %s" % % (command.upper(), IEEEAddrRemoteDev)
self.write(tornado.escape.json_encode(ret))
elif status == 0x80:
ret['success'] = "Invalid Request Type"
self.write(tornado.escape.json_encode(ret))
elif status == 0x81:
ret['success'] = "Device Not Found"
self.write(tornado.escape.json_encode(ret))
在第一部分中,我从整个响应中获取第 6 个值并将其放入变量中value
。在此之后,我想在每个组件中拆分这个变量。
例如。这个status = value.split(" ")[0]
我要怎么分????
非常感谢你的帮助!