Documentation ¶
Index ¶
- Constants
- Variables
- func BuildCommand(data []byte, addr int64, area string, prm, fun, crypt, ver, afn, con, seq byte) []byte
- func CalculateRC(d []byte) byte
- func CodePb2(m *msgctl.MsgWithCtrl) []byte
- func DoCommand(ver, tver, tra byte, addr int64, cid int64, cmd string, data []byte, ...) []byte
- func GetHelloMsg() *msgctl.MsgWithCtrl
- func GetServerTimeMsg(addr int64, t int, oneMoreByte bool, nocmd bool) []byte
- func MakeAddr(addr int64, area string) []byte
- func MsgCtlFromB64Str(s string) *msgctl.MsgWithCtrl
- func MsgCtlFromBytes(b []byte) *msgctl.MsgWithCtrl
- func Single2Tribytes(b float64) []byte
- type Fwd
- type Rtb
- func ClassifyCtlData(d []byte, port *int) (r *Rtb)
- func ClassifyCtlDataNoB64(d []byte, port *int) (r *Rtb)
- func ClassifyCtrlDataGrpc(msg *msgctl.MsgWithCtrl, port *int) (r *Rtb)
- func ClassifyErtuData(d []byte, ip *int64, portlocal, portremote *int, checkrc *bool, oldaddr int64, ...) (r *Rtb)
- func ClassifyNBSluData(d []byte, ip *int64, portlocal, portremote *int, checkrc *bool, oldaddr int64, ...) (r *Rtb)
- func ClassifyTmlData(d []byte, ip *int64, portlocal, portremote *int, checkrc *bool, oldaddr int64) (r *Rtb)
- func ClassifyTmlDataNB(rawdata string) (r *Rtb)
Constants ¶
View Source
const ( // SockUnkonw 未知socket类型 SockUnkonw = iota // SockTml 终端socket类型 SockTml // SockData 数据层socket类型 SockData // SockClient 客户端socket类型 SockClient // SockSdcmp 串口软件socket类型 SockSdcmp // SockFwdcs 前端管理socket类型 SockFwdcs // SockUpgrade 升级程序socket类型 SockUpgrade // SockIisi 接口socket类型 SockIisi // SockVb6 VB6 socket类型 SockVb6 // SockUDP UDP socket类型 SockUDP )
View Source
const ( // SendLevelNormal 常规发送 SendLevelNormal = iota // SendLevelHigh 插队发送 SendLevelHigh )
View Source
const ( // DataTypeUnknow 未知数据类型 DataTypeUnknow = iota // DataTypeBytes 字节数据类型 DataTypeBytes // DataTypeString 字符串数据类型 DataTypeString // DataTypeBase64 base64码数据类型 DataTypeBase64 )
View Source
const ( // JobSend 普通数据转发任务 JobSend = iota // JobDo 执行任务 JobDo )
View Source
const ( // TraUnknow 未知传输方式 TraUnknow = iota // TraDirect 直接传输 TraDirect // Tra485 通过设备485传输 Tra485 )
View Source
const ( // SendGpsAT 采集gps信息 SendGpsAT = "AT+OPENAT=GPSINFO?\r" // JSONData data head JSONData = `{"head":{"mod":2,"src":1,"ver":1,"tver":1,"tra":1,"ret":1,"cmd":""},"args":{"ip":[],"port":0,"addr":[],"cid":1},"data":{}}` )
Variables ¶
View Source
var ( // SendUDPKA udp心跳数据 SendUDPKA = gopsu.Bytes("Х") // Send7004 上海路灯升级准备 Send7004 = gopsu.String2Bytes("7E-70-18-00-00-00-04-00-57-4A-33-30-30-36-42-5A-2D-31-00-00-3C-00-CC-CC-CC-CC-CC-CC-80-42", "-") // Send7010 从终端复位模块 Send7010 = gopsu.String2Bytes("7e-70-05-00-00-00-10-00-03-30-b2", "-") // Send3e3c09 复位模块 Send3e3c09 = gopsu.String2Bytes("3e-3c-0c-0-30-30-30-30-30-30-30-30-30-30-30-09-58-c9", "-") // Send6813 电表读地址 Send6813 = gopsu.String2Bytes("fe-fe-fe-fe-68-aa-aa-aa-aa-aa-aa-68-13-0-df-16", "-") // Send9050 单灯读版本 Send9050 = gopsu.String2Bytes("7e-90-3-0-0-0-50-dc-6b", "-") // Send5a4a 招测光照度软件版本 Send5a4a = gopsu.String2Bytes("7e-5a-5-4a-0-0-73-12", "-") // Send4d00 招测线路监测阻抗基准 Send4d00 = gopsu.String2Bytes("7e-7-0-0-4d-1-1-0-34-1f-51", "-") // Send1800 开机申请应答 Send1800 = gopsu.String2Bytes("7e-5-0-0-18-0-63-45-7c", "-") // Send1400 终端主动报警应答 Send1400 = gopsu.String2Bytes("7e-5-0-0-14-0-6f-85-7a", "-") // Send1500 线路检测主动报警应答 Send1500 = gopsu.String2Bytes("7e-5-0-0-15-0-6e-15-7a", "-") // Send2b00 招测终端序列号 Send2b00 = gopsu.String2Bytes("7e-5-0-0-2b-0-50-f5-66", "-") // Send2000 选测 Send2000 = gopsu.String2Bytes("7e-5-0-0-20-0-5b-c5-63", "-") // Send1300 招测时间 Send1300 = gopsu.String2Bytes("7e-5-0-0-13-0-68-75-79", "-") // Send3200 招测周设置1-3 Send3200 = gopsu.String2Bytes("7e-5-0-0-32-0-49-e5-6b", "-") // Send5900 招测周设置4-6 Send5900 = gopsu.String2Bytes("7e-5-0-0-59-0-22-d5-58", "-") // Send6900 招测周设置7-8 Send6900 = gopsu.String2Bytes("7e-5-0-0-69-0-12-d5-43", "-") // Send6600 招测节假日后4段 Send6600 = gopsu.String2Bytes("7E-5-0-0-66-0-1d-a5-44", "-") // Send5a00 招测终端参数 Send5a00 = gopsu.String2Bytes("7e-5-0-0-5a-0-21-65-59", "-") // Send5b00 招测检测参数 Send5b00 = gopsu.String2Bytes("7e-5-0-0-5b-0-20-f5-59", "-") // Send5c00 招测软件版本 Send5c00 = gopsu.String2Bytes("7e-5-0-0-5c-0-27-5-5a", "-") // Send5f00 召测终端参数k7-k8 Send5f00 = gopsu.String2Bytes("7e-5-0-0-5f-0-24-b5-5b", "-") // SendJY58 江阴节能主报应答 SendJY58 = gopsu.String2Bytes("7e-16-0-0-37-7e-d0-1-58-f7-0-0-0-0-0-0-0-0-0-0-0-0-0-5f-33-81", "-") // SendEsu1c00 节电器主动报警应答 SendEsu1c00 = gopsu.String2Bytes("7e-d-0-0-37-7e-80-1-1c-19-bd-0-3-35-bd", "-") // SendEsu1300 节电器选测 SendEsu1300 = gopsu.String2Bytes("7e-d-0-0-37-7e-80-1-13-59-b9-0-48-75-8a", "-") // SendEsu2600 节电器gprs主动告警应答 SendEsu2600 = gopsu.String2Bytes("7e-b-0-0-1b-7e-80-1-26-99-ae-0-80-b0-d5", "-") // SendAhhf6810 安徽合肥版本召测 SendAhhf6810 = gopsu.String2Bytes("68-10-0-68-0-0-0-0-0-0-0-0-9-10-0-0-1-0-0-0-f7-b2-56", "-") // SendUpg0500 远程升级用版本招测 SendUpg0500 = gopsu.String2Bytes("7e-fe-05-00-00-00-05-00-00-e8-9b", "-") // SendGps 采集gps信息 SendGps = gopsu.String2Bytes("7e-59-4-0-0-0-4-1-cd-22", "-") // SendElu5d00 漏电直连读取参数 SendElu5d00 = gopsu.String2Bytes("7e-62-02-00-5d-73-8b", "-") // SendElu5900 漏电直连读1-4路数据 SendElu5900 = gopsu.String2Bytes("7e-62-02-00-59-72-48", "-") // SendERtu6900 漏电直连8路2级数据 SendERtu6900 = gopsu.String2Bytes("7e-62-02-00-69-72-5c", "-") // SendERtu6d00 漏电直连召测运行参数 SendERtu6d00 = gopsu.String2Bytes("7e-62-02-00-6d-73-9f", "-") // SendXHLocker 咸亨门锁查状态 SendXHLocker = gopsu.String2Bytes("7e-e0-00-00-00-00-11-00-2b-3d", "-") // SendIMEI 读取模块imei SendIMEI = gopsu.String2Bytes("3e-3c-0f-00-30-30-30-30-30-30-30-30-30-30-30-01-20-04-02-a7-d8", "-") // SendIelu0126 智能漏电选测 SendIelu0126 = gopsu.String2Bytes("7e-01-05-00-00-00-26-00-00-56-55", "-") // NorcClis NorcClis NorcClis []int64 // = make([]int64, 0) // LegalIPs LegalIPs LegalIPs []int64 // CheckLegalIP CheckLegalIP CheckLegalIP = false // AnsJSON append json format back AnsJSON = false )
Functions ¶
func BuildCommand ¶
func BuildCommand(data []byte, addr int64, area string, prm, fun, crypt, ver, afn, con, seq byte) []byte
BuildCommand 创建命令 ll: 长度 area: 区域码 addr: 地址 prm: 启动标志位0-应答,1-主动下行 fun: 链路层功能码 crypt: 是否加密0 为不加密(身份认∕否认(证及密钥协商用到),调整1 代表明文加 MAC,2 代表密文加 MAC,3 密码信封(证书方式) ver: 版本,1 afn: 应用层功能码 seq: 序号,中间层提供
func DoCommand ¶
func DoCommand(ver, tver, tra byte, addr int64, cid int64, cmd string, data []byte, br, rc byte) []byte
DoCommand 将数据组装为设备指令 Args:
ver: 协议版本 tver:内部协议版本 tra:传输方式 addr:设备物理地址 cid:485方式时子设备物理地址 cmd:协议命令 data:数据 br:波特率 rc:校验位
func GetServerTimeMsg ¶
GetServerTimeMsg 按服务器时间组装对时命令 t:设备时间格式1-rtu,2-slu,3-vslu,4-esu oneMoreByte:是否携带秒字节 nocmd:是否需要组装为完整命令
func MsgCtlFromB64Str ¶
func MsgCtlFromB64Str(s string) *msgctl.MsgWithCtrl
MsgCtlFromB64Str 从base64字符串解析pb2格式数据
func MsgCtlFromBytes ¶
func MsgCtlFromBytes(b []byte) *msgctl.MsgWithCtrl
MsgCtlFromBytes decode msgcgtl Args:
b:pb2序列化数据
func Single2Tribytes ¶
Single2Tribytes 量程转浮点参数 输入:量程,输出:幂指数,尾数高位,尾数低位
Types ¶
type Fwd ¶
type Fwd struct { DataMsg []byte // 发送数据 DataMQ []byte // zmq推送数据 DataCmd string // 指令命令 DataDst string // for tml, something like "wlst-rtu-1" DataPT int32 // command protect time DataSP byte // data send level 0-normal, 1-high DataType byte // 1-hex,2-string DstType byte // 0-unknow,1-tml,2-data,3-client,4-sdcmp,5-fwdcs,6-upgrade,7-iisi,8-vb,9-udp DstIP int64 // 目标ip DstIMEI int64 // 目标imei DataUDPAddr *net.UDPAddr // for udp only Tra byte // 1-socket, 2-485 Addr int64 // 设备地址 Ex string // 错误信息 Src string // 原始数据 Job byte // 0-just send,1-need do something else Remark string // 备注信息,或其他想要传出的数据 }
Fwd 数据解析结果需发送内容结构体
type Rtb ¶
type Rtb struct { Do []*Fwd // 需要进行的操作 RemoteAddr string // 远程地址 CliID uint64 // socket id Unfinish []byte // 未完结数据 Ex string // 错误信息 Src string // 原始数据 }
Rtb 数据解析结果
func ClassifyCtlDataNoB64 ¶
ClassifyCtlDataNoB64 ClassifyCtlDataNoB64
func ClassifyCtrlDataGrpc ¶
func ClassifyCtrlDataGrpc(msg *msgctl.MsgWithCtrl, port *int) (r *Rtb)
ClassifyCtrlDataGrpc 解析grpc数据
func ClassifyErtuData ¶
func ClassifyErtuData(d []byte, ip *int64, portlocal, portremote *int, checkrc *bool, oldaddr int64, sims int64) (r *Rtb)
ClassifyErtuData ertu数据解析 Args:
rawdata: base64原始数据
Return:
r: 处理反馈结果
func ClassifyNBSluData ¶
func ClassifyNBSluData(d []byte, ip *int64, portlocal, portremote *int, checkrc *bool, oldaddr int64, imei, dataflag string) (r *Rtb)
ClassifyNBSluData NB大平台单灯数据解析
r: 处理反馈结果
func ClassifyTmlData ¶
func ClassifyTmlData(d []byte, ip *int64, portlocal, portremote *int, checkrc *bool, oldaddr int64) (r *Rtb)
ClassifyTmlData 分类数据解析 Args:
d: 原始数据 ip:数据来源ip port:数据服务端口 checkrc:是否进行数据校验
Return:
r: 处理反馈结果
Click to show internal directories.
Click to hide internal directories.