LingxinMeng il y a 1 an
Parent
commit
4f8a8d1c79
1 fichiers modifiés avec 10 ajouts et 4 suppressions
  1. 10 4
      amd64/dpi_boot/main.go

+ 10 - 4
amd64/dpi_boot/main.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"github.com/bluenviron/goroslib/v2"
 	"github.com/bluenviron/goroslib/v2/pkg/msg"
+	"os"
 	"sync"
 	"time"
 )
@@ -26,7 +27,10 @@ func main() {
 	_, s, err := util.ExecuteWithDirSync("/data", "sh", "dpi_start.sh")
 	if err != nil {
 		fmt.Println("执行启动命令报错,执行结果为:", s, ",错误信息为:", err)
+		os.Exit(1)
 	}
+	fmt.Println("执行启动命令 sh dpi_start.sh 成功,执行结果为:", s)
+
 	// 2 监听 ros 话题 /heartbeat_info
 	rosNode, _ := goroslib.NewNode(goroslib.NodeConf{
 		Name:          "dpi_with_heartbeatInfo",
@@ -37,27 +41,29 @@ func main() {
 		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).Seconds() > 5.00 {
 			fmt.Println("超过5秒没有监听到/heartbeat_info数据,即将重启dpi。")
 			_, s, err = util.ExecuteWithDirSync("/data", "sh", "dpi_stop.sh")
 			if err != nil {
 				fmt.Println("执行停止命令报错,执行结果为:", s, ",错误信息为:", err)
+				continue
 			}
+			fmt.Println("执行启动命令 sh dpi_stop.sh 成功,执行结果为:", s)
 			_, s, err = util.ExecuteWithDirSync("/data", "sh", "dpi_start.sh")
 			if err != nil {
 				fmt.Println("执行启动命令报错,执行结果为:", s, ",错误信息为:", err)
+				continue
 			}
+			fmt.Println("执行启动命令 sh dpi_start.sh 成功,执行结果为:", s)
+			time.Sleep(5 * time.Second)
+			lastTime = time.Now()
 		}
-		mutex.Unlock()
 	}
 
 }