| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- from .BxDataPack import dpParse
- from .BxCmdCode import CMD_ACK, CMD_SYSTEM_STATE
- from .bxError import bxErrors
- class BxResp:
- def __init__(self):
- self.group = 0
- self.cmd = 0
- self.Err = 0
- self.r0 = 0
- self.r1 = 0
- self.Data = bytearray()
- def Parse(self, src, length):
- """解析响应数据"""
- dp = dpParse(src, length)
- if dp is None:
- return None
- else:
- return self._parse(dp)
- def _parse(self, pack):
- """解析数据打包"""
- offset = 0
- resp = BxResp()
- resp.group = pack.data[offset]
- offset += 1
- resp.cmd = pack.data[offset]
- offset += 1
- resp.Err = pack.data[offset]
- offset += 1
- resp.r0 = pack.data[offset]
- offset += 1
- resp.r1 = pack.data[offset]
- offset += 1
- resp.Data = pack.data[offset:(offset + len(pack.data) - 5)]
- return resp
- def IsAck(self):
- """是否是确认响应"""
- return self.group == CMD_ACK.group and self.cmd == CMD_ACK.code
- def NoError(self):
- """是否无错误"""
- return self.Err == 0
- def Error(self):
- """获取错误信息"""
- return bxErrors.get(self.Err, "未知错误")
- def IsInfo(self):
- """是否是返回"控制器状态"信息"""
- return self.group == CMD_SYSTEM_STATE.group and self.cmd == CMD_SYSTEM_STATE.code
|