|
@@ -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)
|
|
|
+ }
|
|
|
},
|
|
|
})
|
|
|
}
|