LingxinMeng hace 1 año
padre
commit
3778977a46

+ 132 - 0
aarch64/pjisuv/common/config/yaml/pjisuv-008-cloud-config.yaml

@@ -0,0 +1,132 @@
+---
+monitor:
+  url: http://36.110.106.142:12341/web_server/monitor/insert
+platform:
+  url-device-auth: http://1.202.169.139:8081/device/auth
+  url-task-poll: http://1.202.169.139:8081/device/task/poll
+  url-task: http://1.202.169.139:8081/device/task
+full-collect: true
+bag-number: 3 # 无人驾驶比赛期间,这里不需要缓存
+config-refresh-interval: 60
+disk:
+  name: /dev/vdb # 磁盘名称
+  used: 800000000000 # 磁盘占用阈值,单位bytes
+bag-data-dir: /userdata/cicv-data-closedloop/data/
+bag-copy-dir: /userdata/cicv-data-closedloop/copy/
+time-to-label-json-path: /userdata/cicv-data-closedloop/timeToLabel.json
+triggers-dir: /userdata/cicv-data-closedloop/triggers/
+time-window-send-gap: 6
+tcp-port: 12340
+rpc-port: 12341
+ros:
+  master-address: 192.168.1.102:11311
+  nodes:
+    - /camera_output
+    - /ins
+    - /lidar_pretreatment
+    - /sensorfusion
+    - /planner_s4
+    - /control
+hosts:
+  - name: node1
+    ip: 192.168.1.102
+    rosbag:
+      path: "/opt/ros/melodic/bin/rosbag"
+      envs:
+        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/usr/lib::/usr/lib:/userdata/third_lib/libaicc"
+        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
+        - "USER=root"
+        - "ROS_OS_OVERRIDE=openembedded"
+        - "PWD=/mnt/media/sda1/cicv-data-closedloop"
+        - "HOME=/home/root"
+        - "CMAKE_PREFIX_PATH=/opt/ros/melodic:/usr"
+        - "ROS_ROOT=/opt/ros/melodic/share/ros"
+        - "ROS_MASTER_URI=http://192.168.1.102:11311"
+        - "ROS_VERSION=1"
+        - "ROS_PYTHON_VERSION=2"
+        - "ROS_IP=192.168.1.102"
+        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"
+        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
+        - "PATH=/opt/ros/melodic/bin:/usr/bin/cyber/tools/cyber_service:/usr/bin/cyber/tools/cyber_node:/usr/bin/cyber/tools/cyber_channel:/usr/bin/cyber/tools/cyber_launch:/usr/bin/cyber/tools/cyber_monitor:/usr/bin/cyber/tools/cyber_recorder:/apollo/bazel-bin/cyber:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
+        - "PKG_CONFIG_PATH=/usr/lib/pkgconfig"
+        - "ROS_DISTRO=melodic"
+    topics:
+      - /camera_image # /camera_output
+      - /cicv_amr_trajectory #  /planner_s4
+      - /pj_control_pub # /control
+      - /data_read
+  - name: node2
+    ip: 192.168.1.103
+    rosbag:
+      path: "/opt/ros/melodic/bin/rosbag"
+      envs:
+        - "LD_LIBRARY_PATH=/opt/ros/melodic/lib:/usr/lib::/usr/lib:/userdata/third_lib"
+        - "ROS_ETC_DIR=/opt/ros/melodic/etc/ros"
+        - "USER=root"
+        - "ROS_OS_OVERRIDE=openembedded"
+        - "PWD=/mnt/media/sda1/cicv-data-closedloop"
+        - "HOME=/home/root"
+        - "CMAKE_PREFIX_PATH=/opt/ros/melodic:/usr"
+        - "ROS_ROOT=/opt/ros/melodic/share/ros"
+        - "ROS_MASTER_URI=http://192.168.1.102:11311"
+        - "ROS_VERSION=1"
+        - "ROS_PYTHON_VERSION=2"
+        - "ROS_IP=192.168.1.103"
+        - "PYTHONPATH=/opt/ros/melodic/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"
+        - "ROS_PACKAGE_PATH=/opt/ros/melodic/share"
+        - "PATH=/opt/ros/melodic/bin:/usr/bin/cyber/tools/cyber_service:/usr/bin/cyber/tools/cyber_node:/usr/bin/cyber/tools/cyber_channel:/usr/bin/cyber/tools/cyber_launch:/usr/bin/cyber/tools/cyber_monitor:/usr/bin/cyber/tools/cyber_recorder:/apollo/bazel-bin/cyber:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin "
+        - "PKG_CONFIG_PATH=/usr/lib/pkgconfig"
+        - "ROS_DISTRO=melodic"
+    topics:
+      - /points_concat  # /lidar_pretreatment
+      - /tpperception # /sensorfusion
+      - /cicv_location  # /ins
+triggers:
+  - label: rapidaccel
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: brake
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: EmergencyStop
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: AutoDLimit
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: lanechange
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: brakefault
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: takeover
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image
+  - label: TTC
+    topics:
+      - /tpperception
+      - /points_concat
+      - /cicv_location
+      - /camera_image

+ 19 - 0
aarch64/pjisuv/common/config/yaml/pjisuv-008-soc1-local-config.yaml

@@ -0,0 +1,19 @@
+node:
+  name: node1
+  ip: 192.168.1.102
+# 数据闭环平台参数
+equipment-no: pjisuv-008
+secret-key: uvye8r2dfh7lwwl8
+# 获取oss连接信息的接口url
+url-get-oss-config: http://36.110.106.156:18379/oss/config?token=nXonLUcMtGcrQqqKiyygIwyVbvizE0wD
+# 金龙车数据前缀
+oss-base-prefix: pjisuv/
+# oss上的配置文件的名称
+cloud-config-filename: cloud-config.yaml
+# 将oss上的配置文件下载到本地的路径
+cloud-config-local-path: /userdata/cicv-data-closedloop/config/cloud-config.yaml
+restart-cmd:
+  dir: "/userdata/cicv-data-closedloop/"
+  name: "sh"
+  args:
+    - "start-soc1.sh"

+ 24 - 17
amd64/web_server/handler/h_exam.go

@@ -70,27 +70,34 @@ func Tick(c *gin.Context) {
 		}
 	} else if !util.ContainsKey(cacheTeamName, teamName) && (math.Abs(positionX-InitialPositionX) > 5.00 || math.Abs(positionY-InitialPositionY) > 5.00) { // 不在起点(开始)
 		// 车辆不是在起点启动的自动驾驶模式
-		selectSql, err := util.ReadFile(c_db.SqlFilesMap["exam-select-latest-by-team_name.sql"])
-		if err != nil {
-			c_log.GlobalLogger.Error("读取sql文件报错:", err)
-			return
-		}
-		// 可以传参数
 		var result []webServerEntity.ExamPo
-		if err = c_db.MysqlDb.Select(&result, selectSql, teamName); err != nil {
-			c_log.GlobalLogger.Error("数据库查询报错:", err)
-			return
-		}
-		if len(result) == 1 {
-			c_log.GlobalLogger.Info("上一条数据记录为:", result[0])
+		{
+			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 len(result) == 1 {
+				c_log.GlobalLogger.Info("上一条数据记录为:", result[0])
+				// 添加队伍名到缓存中
+				cacheTeamName[teamName] = time.Now()
+			} else {
+				c.JSON(http.StatusOK, commonEntity.Response{
+					Code: 400,
+					Msg:  "车辆未在起点开启自动驾驶模式,且今日无考试记录,错误启动自动驾驶模式。",
+				})
+			}
 		}
-		// 添加队伍名到缓存中
-		cacheTeamName[teamName] = time.Now()
+
 		// 更新记录结束时间为默认时间
-		sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["exam-update-end_time-by-team_name.sql"])
-		if err = c_db.DoTx(sqlTemplate, []any{
+		sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["exam-update-end_time-by-id.sql"])
+		if err := c_db.DoTx(sqlTemplate, []any{
 			defaultTime,
-			teamName,
+			result[0].Id,
 		}); err != nil {
 			c_log.GlobalLogger.Error("插入数据报错:", err)
 			return

+ 1 - 0
amd64/web_server/sql/exam-select-latest-by-team_name.sql

@@ -1,4 +1,5 @@
 select id, begin_time, end_time, score_report_path, team_name
 from exam
 where team_name = ?
+  and DATE (begin_time) = CURDATE()
 order by begin_time desc limit 1