55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
// Package message -----------------------------
|
|
// @file : common.go
|
|
// @author : JJXu
|
|
// @contact : wavingbear@163.com
|
|
// @time : 2024/5/23 下午2:20
|
|
// -------------------------------------------
|
|
package message
|
|
|
|
type CommonType []byte
|
|
|
|
func (m CommonType) GetCmd() string {
|
|
return readStrNumber(m, 0, 3)
|
|
}
|
|
func (m CommonType) GetMchId() string {
|
|
return readStrNumber(m, 3, 8)
|
|
}
|
|
func (m CommonType) GetCtrID() string {
|
|
return readStrNumber(m, 8, 11)
|
|
}
|
|
func (m CommonType) GetBody() string {
|
|
return readString(m, 11, 512)
|
|
}
|
|
func (m CommonType) GetFull() string {
|
|
return readString(m, 0, 512)
|
|
}
|
|
|
|
func readString(msg []byte, start, end int) string {
|
|
var m string
|
|
for i := start; i < end; i++ {
|
|
if msg[i] == 0 {
|
|
continue
|
|
} else {
|
|
m += string(msg[i])
|
|
}
|
|
if len(msg) == i-1 {
|
|
break
|
|
}
|
|
}
|
|
return m
|
|
}
|
|
func readStrNumber(msg []byte, start, end int) string {
|
|
var m string
|
|
for i := start; i < end; i++ {
|
|
if msg[i] == 0 || msg[i] == 48 {
|
|
m += "0"
|
|
} else {
|
|
m += string(msg[i])
|
|
}
|
|
if len(msg) == i-1 {
|
|
break
|
|
}
|
|
}
|
|
return m
|
|
}
|