fix: 恢复一些功能

This commit is contained in:
fengyarnom 2025-05-29 19:33:07 +08:00
parent 6ede040d94
commit 4587c29ec5

View File

@ -62,18 +62,18 @@ func handleConnection(conn net.Conn) {
clientsMutex.Unlock()
// 注释掉自动发送指令 - 设备刚连接时立即发送一次查询指令
// go func() {
// time.Sleep(2 * time.Second) // 等待2秒让连接稳定
// command := "@1602301014A*0!\n"
// if _, err := conn.Write([]byte(command)); err != nil {
// Logger.Printf("发送连接后查询指令到客户端 %s 失败: %v", remoteAddr, err)
// } else {
// TCPDataLogger.Printf("发送连接后查询指令到客户端 %s: %s", remoteAddr, strings.TrimSpace(command))
// }
// }()
go func() {
time.Sleep(2 * time.Second) // 等待2秒让连接稳定
command := "@1602301014A*0!\n"
if _, err := conn.Write([]byte(command)); err != nil {
Logger.Printf("发送连接后查询指令到客户端 %s 失败: %v", remoteAddr, err)
} else {
TCPDataLogger.Printf("发送连接后查询指令到客户端 %s: %s", remoteAddr, strings.TrimSpace(command))
}
}()
// 注释掉自动发送指令 - 启动定时发送指令的goroutine
// go sendPeriodicCommand(conn, remoteAddr)
// 启动定时发送指令的goroutine30分钟间隔
go sendPeriodicCommand(conn, remoteAddr)
buffer := make([]byte, 1024)
@ -159,23 +159,23 @@ func handleConnection(conn net.Conn) {
}
}
// 注释掉自动发送指令 - sendPeriodicCommand 每5分钟发送一次查询指令
// func sendPeriodicCommand(conn net.Conn, remoteAddr string) {
// ticker := time.NewTicker(5 * time.Minute)
// defer ticker.Stop()
//
// for {
// select {
// case <-ticker.C:
// command := "@1602301014A*0!\n"
// if _, err := conn.Write([]byte(command)); err != nil {
// Logger.Printf("发送定时指令到客户端 %s 失败: %v", remoteAddr, err)
// return // 连接断开退出goroutine
// }
// TCPDataLogger.Printf("发送定时指令到客户端 %s: %s", remoteAddr, strings.TrimSpace(command))
// }
// }
// }
// sendPeriodicCommand 每30分钟发送一次查询指令
func sendPeriodicCommand(conn net.Conn, remoteAddr string) {
ticker := time.NewTicker(30 * time.Minute)
defer ticker.Stop()
for {
select {
case <-ticker.C:
command := "@1602301014A*0!\n"
if _, err := conn.Write([]byte(command)); err != nil {
Logger.Printf("发送定时指令到客户端 %s 失败: %v", remoteAddr, err)
return // 连接断开退出goroutine
}
TCPDataLogger.Printf("发送定时指令到客户端 %s: %s", remoteAddr, strings.TrimSpace(command))
}
}
}
// parseData 使用正则表达式解析传感器数据,支持新格式 #{1602301014-01,1,1,28.4,-6.884,1.540}!
func parseData(data string) (int, float64, float64, float64, float64, error) {