123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package protocol
- import (
- "encoding/hex"
- "github.com/gogf/gf/os/glog"
- )
- type Dlt_0x93 struct {
- //接收表号
- DeviceAddress []byte
- //表号
- DeviceID string
- //当前视在功率
- ApparentPower float64
- }
- func (e *Dlt_0x93) MsgID() MsgID {
- return ReadAddress
- }
- //func (entity *Dlt_0x93) GetDeviceAddress() DeviceAddress {
- // return entity.DeviceAddress
- //}
- func (e *Dlt_0x93) Encode(ctx *PacketContext) ([]byte, error) {
- writer := NewWriter()
- // 接收符号
- writer.Write([]byte{0x68, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x68, 0x13, 0x00, 0xDF, 0x16})
- return writer.Bytes(), nil
- }
- func (e *Dlt_0x93) Decode(ctx *PacketContext, dataByte []byte) (data Data, err error) {
- e.DeviceAddress = dataByte[1:7]
- ctx.SetReceiveAddress(dataByte[1:7])
- var bytea []byte
- bytea = append(bytea, dataByte[1:7]...)
- for i, j := 0, len(bytea)-1; i < j; i, j = i+1, j-1 {
- bytea[i], bytea[j] = bytea[j], bytea[i]
- }
- e.DeviceID = hex.EncodeToString(bytea)
- ctx.SetDeviceId(e.DeviceID)
- glog.Debugf("表号读取成功:%s", e.DeviceID)
- return data, nil
- }
|