LingxinMeng 1 年之前
父節點
當前提交
3adbb0ff17
共有 1 個文件被更改,包括 10 次插入1 次删除
  1. 10 1
      amd64/dpi_boot/main.go

+ 10 - 1
amd64/dpi_boot/main.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"github.com/bluenviron/goroslib/v2"
 	"github.com/bluenviron/goroslib/v2/pkg/msg"
+	"sync"
 	"time"
 )
 
@@ -16,8 +17,10 @@ type HeartBeatInfo struct {
 }
 
 var lastTime time.Time
+var mutex sync.Mutex
 
 func main() {
+	lastTime = time.Now()
 
 	// 1 启动 shell 脚本 dpi_start.sh
 	_, s, err := util.ExecuteWithDirSync("/data", "sh", "dpi_start.sh")
@@ -33,13 +36,18 @@ func main() {
 		Node:  rosNode,
 		Topic: "/heartbeat_info",
 		Callback: func(data *HeartBeatInfo) {
+			fmt.Println("监听到数据:", data)
+			mutex.Lock()
 			lastTime = time.Now()
+			mutex.Unlock()
 		}})
 	// 3 超过5秒没有接收到数据则执行 dpi_stop.sh 和 dpi_start.sh
+
 	for {
 		time.Sleep(1 * time.Second)
+		mutex.Lock()
 		if time.Since(lastTime) > 5.00 {
-			fmt.Println("超过5秒没有监听到/heart_info数据,即将重启dpi。")
+			fmt.Println("超过5秒没有监听到/heartbeat_info数据,即将重启dpi。")
 			_, s, err = util.ExecuteWithDirSync("/data", "sh", "dpi_stop.sh")
 			if err != nil {
 				fmt.Println("执行停止命令报错,执行结果为:", s, ",错误信息为:", err)
@@ -49,6 +57,7 @@ func main() {
 				fmt.Println("执行启动命令报错,执行结果为:", s, ",错误信息为:", err)
 			}
 		}
+		mutex.Unlock()
 	}
 
 }