LingxinMeng il y a 11 mois
Parent
commit
3aa99f57f2

+ 1 - 0
aarch64/pji/common/config/c_oss.go

@@ -36,6 +36,7 @@ func InitOssConfig() {
 		c_log.GlobalLogger.Error("解析json时出错:", err)
 		os.Exit(-1)
 	}
+	c_log.GlobalLogger.Infof("oss 配置信息为:%v", ossConnectInfo)
 
 	OssClient, err = oss.New(ossConnectInfo.Endpoint, ossConnectInfo.AccessKeyId, ossConnectInfo.AccessKeySecret, oss.UseCname(true))
 	if err != nil {

+ 1 - 1
aarch64/pji/common/config/c_resource.go

@@ -30,6 +30,6 @@ func SendResourceUsage() {
 		if err != nil {
 			c_log.GlobalLogger.Errorf("发送数据监控信息报错%v,响应信息为:%v", err, responseString)
 		}
-		c_log.GlobalLogger.Infof("发送数据监控信息成功,响应信息为:%v", responseString)
+		//c_log.GlobalLogger.Infof("发送数据监控信息成功,响应信息为:%v", responseString)
 	}
 }

+ 3 - 0
aarch64/pji/common/config/yaml/引导机器人默认配置文件双摄像头-cloud-config.yaml

@@ -11,7 +11,10 @@ config-refresh-interval: 60
 disk:
   name: /dev/mmcblk0p8 # 磁盘名称
   used: 20000000000 # 磁盘占用阈值,单位bytes
+map-buf-dir: /root/pjirobot/data/mapBuf/
 map-bag-path: /root/cicv-data-closedloop/map.bag
+#bag-data-dir: /root/cicv-data-closedloop/data/
+#bag-copy-dir: /root/cicv-data-closedloop/copy/
 bag-data-dir: /root/cicv-data-closedloop/data/
 bag-copy-dir: /root/cicv-data-closedloop/copy/
 triggers-dir: /root/cicv-data-closedloop/triggers/

+ 68 - 75
amd64/score_server/handler/h_exam.go

@@ -25,7 +25,6 @@ import (
 
 var (
 	defaultTime            = time.Date(2006, time.January, 2, 15, 4, 5, 0, time.Local)
-	cacheMutex             sync.Mutex
 	cacheTeamName          sync.Map            // = make(map[string]time.Time)
 	heartBeatTimeThreshold = 5 * time.Second   // 心跳时间
 	InitialPositionX       = 565266.0482367771 // todo 需要比赛确认起点
@@ -169,85 +168,79 @@ func ExamEndTicker() {
 		select {
 		// 定时器触发时执行的代码
 		case <-ticker.C:
-			cacheMutex.Lock()
-			defer cacheMutex.Unlock()
-			{
-				var keysToDelete []string
-				cacheTeamName.Range(func(teamName, heartBeatTimeAny interface{}) bool {
-					heartBeatTime, _ := util.AnyToTime(heartBeatTimeAny)
-					if time.Since(heartBeatTime) > heartBeatTimeThreshold { // 检查缓存中的队名,如果超过心跳时间,则代表考试结束,删除缓存中的队名
-						c_log.GlobalLogger.Infof("队伍 %v 心跳超时,比赛结束。", teamName)
-						keysToDelete = append(keysToDelete, fmt.Sprintf("%v", teamName))
-					}
-					return true // 如果要终止遍历,返回 false
-				})
+			var keysToDelete []string
+			cacheTeamName.Range(func(teamName, heartBeatTimeAny interface{}) bool {
+				heartBeatTime, _ := util.AnyToTime(heartBeatTimeAny)
+				if time.Since(heartBeatTime) > heartBeatTimeThreshold { // 检查缓存中的队名,如果超过心跳时间,则代表考试结束,删除缓存中的队名
+					c_log.GlobalLogger.Infof("队伍 %v 心跳超时,比赛结束。", teamName)
+					keysToDelete = append(keysToDelete, fmt.Sprintf("%v", teamName))
+				}
+				return true // 如果要终止遍历,返回 false
+			})
 
-				//for teamName, heartBeatTime := range cacheTeamName {
-				//	if time.Since(heartBeatTime) > heartBeatTimeThreshold { // 检查缓存中的队名,如果超过心跳时间,则代表考试结束,删除缓存中的队名
-				//		c_log.GlobalLogger.Infof("队伍 %v 心跳超时,比赛结束。", teamName)
-				//
-				//		keysToDelete = append(keysToDelete, teamName)
-				//	}
-				//}
-				for _, teamName := range keysToDelete { // 检查缓存中的队名,如果超过心跳时间,则代表考试结束,删除缓存中的队名
-					cacheTeamName.Delete(teamName)
-					//delete(cacheTeamName, teamName)
-					// 1 查询指定队伍的开始时间最新的考试是否有结束时间,如果有则不在处理,如果没有则更新
-					var result []webServerEntity.ExamPo
-					selectSql, err := util.ReadFile(c_db.SqlFilesMap["exam-select-latest-by-team_name.sql"])
-					if err != nil {
-						c_log.GlobalLogger.Error("读取sql文件报错:", err)
-						return
-					}
-					// 可以传参数
-					if err = c_db.MysqlDb.Select(&result, selectSql, teamName); err != nil {
-						c_log.GlobalLogger.Error("数据库查询报错:", err)
-						return
-					}
-					if !result[0].EndTime.Equal(defaultTime) {
-						c_log.GlobalLogger.Error("赛队", teamName, "考试已结束!")
-						return
-					}
-					// 更新到数据库(只更新最新一条)
-					stage := ""
-					if time.Now().Before(trialBegin) {
-						stage = "表演赛"
-					} else if time.Now().After(trialBegin) && time.Now().Before(trialEnd) {
-						stage = "预赛"
-					} else {
-						stage = "决赛"
-					}
-					// 查询最新一条的id
-					selectSql, err = util.ReadFile(c_db.SqlFilesMap["exam-select-max-id-by-team_name-and-topic.sql"])
-					if err != nil {
-						c_log.GlobalLogger.Error("读取sql文件报错:", err)
-						return
-					}
-					// 可以传参数
-					var resultId []int
-					if err = c_db.MysqlDb.Select(&resultId, selectSql, teamName, stage); err != nil {
-						c_log.GlobalLogger.Error("数据库查询报错:", err)
-						return
-					}
-					if len(resultId) == 1 {
-						c_log.GlobalLogger.Info("更新数据结束时间,id为:", resultId)
+			//for teamName, heartBeatTime := range cacheTeamName {
+			//	if time.Since(heartBeatTime) > heartBeatTimeThreshold { // 检查缓存中的队名,如果超过心跳时间,则代表考试结束,删除缓存中的队名
+			//		c_log.GlobalLogger.Infof("队伍 %v 心跳超时,比赛结束。", teamName)
+			//
+			//		keysToDelete = append(keysToDelete, teamName)
+			//	}
+			//}
+			for _, teamName := range keysToDelete { // 检查缓存中的队名,如果超过心跳时间,则代表考试结束,删除缓存中的队名
+				cacheTeamName.Delete(teamName)
+				//delete(cacheTeamName, teamName)
+				// 1 查询指定队伍的开始时间最新的考试是否有结束时间,如果有则不在处理,如果没有则更新
+				var result []webServerEntity.ExamPo
+				selectSql, err := util.ReadFile(c_db.SqlFilesMap["exam-select-latest-by-team_name.sql"])
+				if err != nil {
+					c_log.GlobalLogger.Error("读取sql文件报错:", err)
+					return
+				}
+				// 可以传参数
+				if err = c_db.MysqlDb.Select(&result, selectSql, teamName); err != nil {
+					c_log.GlobalLogger.Error("数据库查询报错:", err)
+					return
+				}
+				if !result[0].EndTime.Equal(defaultTime) {
+					c_log.GlobalLogger.Error("赛队", teamName, "考试已结束!")
+					return
+				}
+				// 更新到数据库(只更新最新一条)
+				stage := ""
+				if time.Now().Before(trialBegin) {
+					stage = "表演赛"
+				} else if time.Now().After(trialBegin) && time.Now().Before(trialEnd) {
+					stage = "预赛"
+				} else {
+					stage = "决赛"
+				}
+				// 查询最新一条的id
+				selectSql, err = util.ReadFile(c_db.SqlFilesMap["exam-select-max-id-by-team_name-and-topic.sql"])
+				if err != nil {
+					c_log.GlobalLogger.Error("读取sql文件报错:", err)
+					return
+				}
+				// 可以传参数
+				var resultId []int
+				if err = c_db.MysqlDb.Select(&resultId, selectSql, teamName, stage); err != nil {
+					c_log.GlobalLogger.Error("数据库查询报错:", err)
+					return
+				}
+				if len(resultId) == 1 {
+					c_log.GlobalLogger.Info("更新数据结束时间,id为:", resultId)
 
-						sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["exam-update-end_time-by-id.sql"])
-						if err := c_db.DoTx(sqlTemplate, []any{
-							time.Now(),
-							resultId[0],
-						}); err != nil {
-							c_log.GlobalLogger.Error("插入数据报错:", err)
-							return
-						}
-					} else {
-						c_log.GlobalLogger.Error("查询id失败:", resultId)
+					sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["exam-update-end_time-by-id.sql"])
+					if err := c_db.DoTx(sqlTemplate, []any{
+						time.Now(),
+						resultId[0],
+					}); err != nil {
+						c_log.GlobalLogger.Error("插入数据报错:", err)
+						return
 					}
-					c_log.GlobalLogger.Infof("队伍 %v 的考试结束。", teamName)
-
+				} else {
+					c_log.GlobalLogger.Error("查询id失败:", resultId)
 				}
+				c_log.GlobalLogger.Infof("队伍 %v 的考试结束。", teamName)
 			}
-			cacheMutex.Unlock()
 		}
 	}
 }