123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package bx
- import (
- "bytes"
- "encoding/binary"
- )
- //定时开关机
- type CmdTimingSwitch struct {
- baseBxCmd
- onOffSet [][2]uint64
- }
- func NewCmdTimingSwitch(onOffSet [][2]uint64) CmdTimingSwitch {
- return CmdTimingSwitch{
- baseBxCmd: newBaseCmd(CMD_TIMING_SWITCH.group, CMD_TIMING_SWITCH.code),
- onOffSet: onOffSet,
- }
- }
- func (cmd CmdTimingSwitch) Build() []byte {
- w := bytes.NewBuffer(make([]byte, 0, 1024))
- binary.Write(w, binary.LittleEndian, cmd.Group())
- binary.Write(w, binary.LittleEndian, cmd.Cmd())
- binary.Write(w, binary.LittleEndian, cmd.ReqResp())
- //r0 r1
- binary.Write(w, binary.LittleEndian, byte(0x00))
- binary.Write(w, binary.LittleEndian, byte(0x00))
- if len(cmd.onOffSet) == 0 || len(cmd.onOffSet) > 256 {
- return nil
- }
- binary.Write(w, binary.LittleEndian, byte(len(cmd.onOffSet)))
- for i, v := range cmd.onOffSet {
- if i > 2 {
- break
- }
- binary.Write(w, binary.BigEndian, Uint2BCD(uint64(v[0]), true)) //开机
- binary.Write(w, binary.BigEndian, Uint2BCD(uint64(v[1]), true)) //关机
- }
- return w.Bytes()
- }
|