LingxinMeng 1 年間 前
コミット
419d24b1a2
1 ファイル変更25 行追加11 行削除
  1. 25 11
      aarch64/pjisuv/master/service/for_competition.go

+ 25 - 11
aarch64/pjisuv/master/service/for_competition.go

@@ -27,6 +27,7 @@ var (
 	bakSecondNumber        = 3600
 	cachePositionX         = -999.00
 	cachePositionY         = -999.00
+	cacheAutoMode          = -1 // 自动驾驶状态 0 自动 1 人工
 )
 
 // todo 实车比赛临时使用
@@ -35,6 +36,7 @@ func ForCompetition() {
 	go dataCollection()
 	go dataCollectionBak(bakSecondNumber) // 需要再车上备份的数据,防止网络差传不回来
 	go location()                         // 记录经纬度和速度
+	go mode()                             // 记录自动驾驶状态
 	go tick()
 }
 
@@ -106,6 +108,16 @@ func location() {
 	})
 }
 
+func mode() {
+	_, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
+		Node:  commonConfig.RosNode,
+		Topic: "/pj_vehicle_fdb_pub",
+		Callback: func(data *pjisuv_msgs.VehicleFdb) {
+			cacheAutoMode = int(data.Automode)
+		},
+	})
+}
+
 // data格式为队伍编号
 // 保存单次考试时间区间
 func tick() {
@@ -113,17 +125,19 @@ func tick() {
 		Node:  commonConfig.RosNode,
 		Topic: topic,
 		Callback: func(data *std_msgs.String) {
-			teamName := data.Data
-			_, _ = util.HttpPostJsonWithHeaders(
-				urlExamTick,
-				map[string]string{"Authorization": "U9yKpD6kZZDDe4LFKK6myAxBUT1XRrDM"},
-				map[string]string{
-					"teamName":  teamName,
-					"positionX": util.ToString(cachePositionX),
-					"positionY": util.ToString(cachePositionY),
-				},
-			)
-			c_log.GlobalLogger.Infof("队伍 %v 的心跳发送到云端成功。", teamName)
+			if cacheAutoMode == 0 { // 只有在自动驾驶状态才发送心跳
+				teamName := data.Data
+				_, _ = util.HttpPostJsonWithHeaders(
+					urlExamTick,
+					map[string]string{"Authorization": "U9yKpD6kZZDDe4LFKK6myAxBUT1XRrDM"},
+					map[string]string{
+						"teamName":  teamName,
+						"positionX": util.ToString(cachePositionX),
+						"positionY": util.ToString(cachePositionY),
+					},
+				)
+				c_log.GlobalLogger.Infof("队伍 %v 的心跳发送到云端成功。", teamName)
+			}
 		},
 	})
 }