| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import struct
- from .BxCmd import baseBxCmd
- from .BxCmdCode import CMD_SEND_DYNAMIC_AREA
- class CmdSendDynamicArea(baseBxCmd):
- def __init__(self, areas):
- super().__init__(CMD_SEND_DYNAMIC_AREA.group, CMD_SEND_DYNAMIC_AREA.code)
- self.processMode = 0
- self.r2 = 0
- self.delAreaIds = []
- self.areas = areas if areas else []
- def ProcessMode(self):
- """获取处理模式"""
- return self.processMode
- def SetProcessMode(self, processMode):
- """设置处理模式"""
- self.processMode = processMode
- def R2(self):
- """获取保留字r2"""
- return self.r2
- def SetR2(self, r2):
- """设置保留字r2"""
- self.r2 = r2
- def DelAreaIds(self):
- """获取删除区域ID列表"""
- return self.delAreaIds
- def SetDelAreaIds(self, delAreaIds):
- """设置删除区域ID列表"""
- self.delAreaIds = delAreaIds
- def Areas(self):
- """获取区域列表"""
- return self.areas
- def SetAreas(self, areas):
- """设置区域列表"""
- self.areas = areas
- def Build(self):
- """构建命令数据"""
- result = bytearray()
- # 写入命令组
- result.append(self.Group())
- # 写入命令
- result.append(self.Cmd())
- # 写入响应标志
- result.append(self.ReqResp())
- # 写入处理模式
- result.append(self.processMode)
- # 写入r2
- result.append(self.r2)
-
- # 写入删除区域ID
- if self.delAreaIds is None:
- result.append(0x00)
- else:
- result.append(len(self.delAreaIds))
- result.extend(self.delAreaIds)
-
- # 写入区域数量
- if self.areas is None or len(self.areas) == 0:
- result.append(0x00)
- else:
- result.append(len(self.areas))
- # 写入每个区域
- for v in self.areas:
- b = v.Build()
- result.extend(struct.pack('<h', len(b)))
- result.extend(b)
-
- return bytes(result)
- # 创建CmdSendDynamicArea实例的函数
- def NewBxCmdSendDynamicArea(areas):
- return CmdSendDynamicArea(areas)
|