| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- from .BxCmd import baseBxCmd
- from .BxCmdCode import CMD_TIMING_SWITCH
- from .BxCmdSystemClockCorrect import Uint2BCD
- class CmdTimingSwitch(baseBxCmd):
- def __init__(self, onOffSet):
- super().__init__(CMD_TIMING_SWITCH.group, CMD_TIMING_SWITCH.code)
- self.onOffSet = onOffSet if onOffSet else []
- def Build(self):
- result = bytearray()
- # 写入命令组
- result.append(self.Group())
- # 写入命令
- result.append(self.Cmd())
- # 写入响应标志
- result.append(self.ReqResp())
- # 写入保留值
- result.append(0x00)
- result.append(0x00)
-
- # 检查定时开关机设置数量
- if len(self.onOffSet) == 0 or len(self.onOffSet) > 256:
- return None
-
- # 写入定时开关机设置数量
- result.append(len(self.onOffSet))
-
- # 写入每个定时开关机设置
- for i, v in enumerate(self.onOffSet):
- if i > 2:
- break
- # 写入开机时间(BCD码)
- result.extend(Uint2BCD(v[0], True))
- # 写入关机时间(BCD码)
- result.extend(Uint2BCD(v[1], True))
-
- return bytes(result)
- def NewCmdTimingSwitch(onOffSet):
- return CmdTimingSwitch(onOffSet)
|