mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
46 lines
952 B
Go
46 lines
952 B
Go
package tcpclient
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"errors"
|
|
"net"
|
|
"pandax/pkg/global"
|
|
"sync"
|
|
)
|
|
|
|
var TcpClient sync.Map
|
|
|
|
func Send(deviceId, msg string) error {
|
|
if conn, ok := TcpClient.Load(deviceId); ok {
|
|
conn := conn.(*net.TCPConn)
|
|
global.Log.Infof("设备%s, 发送指令%s", deviceId, msg)
|
|
_, err := conn.Write([]byte(msg))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else {
|
|
global.Log.Infof("设备%s TCP连接不存在, 发送指令失败", deviceId)
|
|
return errors.New("未获取到设备的MQTT连接")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func SendHex(deviceId, msg string) error {
|
|
|
|
if conn, ok := TcpClient.Load(deviceId); ok {
|
|
conn := conn.(*net.TCPConn)
|
|
global.Log.Infof("设备%s, 发送指令%s", deviceId, msg)
|
|
b, err := hex.DecodeString(msg)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
_, err = conn.Write(b)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else {
|
|
global.Log.Infof("设备%s TCP连接不存在, 发送指令失败", deviceId)
|
|
}
|
|
return nil
|
|
}
|