You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.6 KiB
Go

package Common
import (
"strconv"
log "github.com/sirupsen/logrus"
)
type Compackets struct {
/// <summary>命令类型01表示命令包、02表示语音包、03表示同传包</summary>
CmdType byte
/// <summary>通道ID</summary>
ChnlID byte
/// <summary>单元地址</summary>
Addr byte
/// <summary>命令字</summary>
Cmd byte
/// <summary>命令字扩展</summary>
Const byte
/// <summary>命令数据1</summary>
ACmdData1 byte
/// <summary>命令数据2</summary>
ACmdData2 byte
/// <summary>命令数据3</summary>
ACmdData3 byte
/// <summary>命令数据4</summary>
ACmdData4 byte
/// <summary>包长高字节</summary>
LenH byte
/// <summary>包长低字节</summary>
LenL byte
//dataLength = aLenH*256 + aLenL;
/// <summary>数据长度</summary>
DataLength int
/// <summary>数据部分</summary>
Data []byte
/// <summary>ipAddress</summary>
IPAddress string
SocketID int64
}
func (o *Compackets) ToString() string {
defer func() {
if r := recover(); r != nil {
log.Error("ToString:", r)
}
}()
var stringBuilder string
stringBuilder += ("7E ")
//stringBuilder.AppendFormat("{0:X2} ", CmdType);
//stringBuilder.AppendFormat("{0:X2} ", ChnlID);
//stringBuilder.AppendFormat("{0:X2} ", Addr);
stringBuilder += strconv.FormatInt(int64(o.Cmd), 16) + " "
stringBuilder += strconv.FormatInt(int64(o.Const), 16) + " "
stringBuilder += strconv.FormatInt(int64(o.LenH), 16) + " "
stringBuilder += strconv.FormatInt(int64(o.LenL), 16) + " "
for _, vlue := range o.Data {
stringBuilder += strconv.FormatInt(int64(vlue), 16) + " "
}
return stringBuilder
}