| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package ym485
- import "github.com/valyala/bytebufferpool"
- // PackingTurnOnOff 1E,单灯控制器按路遥控开关灯
- //1E,单灯控制器按组遥控开关灯
- type PackingTurnOnOff struct {
- Dp DataPack
- Mark [4]byte
- Senabled byte //各组是否有效
- Kenabled byte //各组开灯/关灯
- }
- func (o *PackingTurnOnOff) EnCode(Addr string, Mark [4]byte, Senabled, Kenabled byte) (*bytebufferpool.ByteBuffer, error) {
- copy(o.Mark[0:], Mark[0:])
- o.Senabled = Senabled
- o.Kenabled = Kenabled
- dataBuf := make([]byte, 0, 6)
- dataBuf = append(dataBuf, o.Mark[0:]...)
- dataBuf = append(dataBuf, o.Senabled, o.Kenabled)
- return o.Dp.EnCode(Addr, 0x1E, dataBuf)
- }
- func (o *PackingTurnOnOff) DeCode(data []byte) error {
- if err := o.Dp.DeCode(data); err == nil {
- len0 := len(o.Dp.Data)
- if len0 >= 6 {
- copy(o.Mark[0:], o.Dp.Data[0:4])
- o.Senabled = o.Dp.Data[4]
- o.Kenabled = o.Dp.Data[5]
- }
- return nil
- } else {
- return err
- }
- }
- // PackingBrightnessColor 1E,单灯控制器按路遥控调光/色温
- //1E,单灯控制器按组遥控调光/色温
- type PackingBrightnessColor struct {
- Dp DataPack
- Mark [4]byte
- Senabled byte //各路/组是否有效
- Sn []byte //路n调光值/色温值
- }
- func (o *PackingBrightnessColor) EnCode(Addr string, Mark [4]byte, Senabled byte, Sn []byte) (*bytebufferpool.ByteBuffer, error) {
- copy(o.Mark[0:], Mark[0:])
- o.Senabled = Senabled
- o.Sn = Sn
- dataBuf := make([]byte, 0, 5+len(o.Sn))
- dataBuf = append(dataBuf, o.Mark[0:]...)
- dataBuf = append(dataBuf, o.Senabled)
- dataBuf = append(dataBuf, o.Sn...)
- return o.Dp.EnCode(Addr, 0x1E, dataBuf)
- }
- func (o *PackingBrightnessColor) DeCode(data []byte) error {
- if err := o.Dp.DeCode(data); err == nil {
- len0 := len(o.Dp.Data)
- if len0 >= 5 {
- copy(o.Mark[0:], o.Dp.Data[0:4])
- o.Senabled = o.Dp.Data[4]
- if len0 > 5 {
- copy(o.Sn, o.Dp.Data[5:])
- }
- }
- return nil
- } else {
- return err
- }
- }
|