package bx

import (
	"bytes"
	"encoding/binary"
)

type BxCmdTurnOnOff struct {
	baseBxCmd
	on bool
}

// NewBxCmdTurnOnOff ture=on false=off
func NewBxCmdTurnOnOff(on bool) BxCmdTurnOnOff {
	return BxCmdTurnOnOff{
		baseBxCmd: newBaseCmd(CMD_TURN_ON_OFF.group, CMD_TURN_ON_OFF.code),
		on:        on,
	}
}
func (cmd BxCmdTurnOnOff) Build() []byte {
	w := bytes.NewBuffer(make([]byte, 0, 8))
	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 cmd.on {
		binary.Write(w, binary.LittleEndian, byte(0x01))
	} else {
		binary.Write(w, binary.LittleEndian, byte(0x02))
	}
	return w.Bytes()
}
