123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package handler
- import (
- entity2 "cicv-data-closedloop/amd64/dispatch_server/package/entity"
- "cicv-data-closedloop/common/config/c_log"
- "cicv-data-closedloop/common/entity"
- "github.com/gin-gonic/gin"
- "net/http"
- )
- /**
- * {
- * "info": {
- * "project_id": 766,
- * "task_id": 2789,
- * "task_path": "jobs/RT_EY%402022-01-25_13%3A57%3A30_1643090250/SharingVan_20220125_0",
- * "default_time": 30
- * },
- * "scenario": {
- * "scenario_osc": "scenarios/SharingVAN_20220125/SharingVAN.xml",
- * "scenario_odr": "scenarios/SharingVAN_20220125/Road_DFMC.xodr",
- * "scenario_osgb": "scenarios/SharingVAN_20220125/Road_DFMC.opt.osgb"
- * },
- * "vehicle":{
- * "model": {
- * "model_label": "AudiA6_10"
- * },
- * "dynamics": {
- * "dynamics_maxspeed": 67,
- * "dynamics_enginepower": 150000,
- * "dynamics_maxdecel": 9.5,
- * "dynamics_maxsteering": 0.48,
- * "dynamics_mass": 1700,
- * "dynamics_frontsurfaceeffective": 2.2,
- * "dynamics_airdragcoefficient": 0.31,
- * "dynamics_rollingresistance": 0,
- * "dynamics_wheeldiameter": 0.684,
- * "dynamics_wheeldrive": "wheel_drive_front",
- * "dynamics_overallefficiency": 0.75,
- * "dynamics_distfront": 3.838,
- * "dynamics_distrear": 1.086,
- * "dynamics_distleft": 0.94,
- * "dynamics_distright": 0.94,
- * "dynamics_distheight": 1.444,
- * "dynamics_wheelbase": 2.91
- * },
- * "sensors": {
- * "camera": [
- * {
- * "sensor_name": "following_view_camera",
- * "sensor_fovH": 45,
- * "sensor_fovV": 27,
- * "sensor_near": 1,
- * "sensor_far": 1500,
- * "sensor_resolution": "800x600",
- * "sensor_frameRate": 60,
- * "sensor_x": -15,
- * "sensor_y": 0,
- * "sensor_z": 5,
- * "sensor_h": 0,
- * "sensor_p": 10,
- * "sensor_r": 0
- * },
- * {
- * "sensor_name": "plan_view_camera",
- * "sensor_fovH": 45,
- * "sensor_fovV": 27,
- * "sensor_near": 1,
- * "sensor_far": 1500,
- * "sensor_resolution": "800x600",
- * "sensor_frameRate": 60,
- * "sensor_x": 35,
- * "sensor_y": 0,
- * "sensor_z": 200,
- * "sensor_h": 0,
- * "sensor_p": 90,
- * "sensor_r": 0
- * }
- * ],
- * "OGT": [
- * {
- * "sensor_name": "360_perfect_sensor",
- * "sensor_fovH": 360,
- * "sensor_fovV": 20,
- * "sensor_near": 0,
- * "sensor_far": 100,
- * "sensor_x": 0,
- * "sensor_y": 0,
- * "sensor_z": 1.7,
- * "sensor_h": 0,
- * "sensor_p": 0,
- * "sensor_r": 0,
- * "sensor_filter": [0,1,5],
- * "sensor_display": true,
- * "sensor_maxObjects": 10,
- * "sensor_port": 10
- * },
- * {
- * "sensor_name": "120_perfect_sensor",
- * "sensor_fovH": 120,
- * "sensor_fovV": 20,
- * "sensor_near": 0,
- * "sensor_far": 100,
- * "sensor_x": 0,
- * "sensor_y": 0,
- * "sensor_z": 1.7,
- * "sensor_h": 0,
- * "sensor_p": 0,
- * "sensor_r": 0,
- * "sensor_filter": [0,1,5],
- * "sensor_display": true,
- * "sensor_maxObjects": 10,
- * "sensor_port": 10
- * }
- * ]
- * }* }
- * }
- */
- func StartProject(c *gin.Context) {
- projectStartParam := new(entity2.Project)
- if err := c.ShouldBindJSON(&projectStartParam); err != nil {
- c_log.GlobalLogger.Error("项目启动接收请求参数报错:", err)
- c.JSON(http.StatusBadRequest, entity.HttpResult{Status: false, Code: "1003", Message: "请求参数格式错误。"})
- return
- }
- // 1 维护一个运行任务队列,绑定用户id和节点名称,供下面两个判断同时使用(使用redis的队列)
- // 2 获取正在运行的任务数量,在缓存中
- // 3 判断用户并行度
- {
- // 1 获取接收到的任务数量
- //taskCount := len(projectStartParam.Tasks)
- // 2 判断是否可以运行,可以运行的加入中间队列进行集群并行度判断,不能运行的加入用户等待队列
- }
- // 3 判断集群并行度
- {
- // 1 获取集群并行度
- // 2 判断是否可以运行,可以运行的执行运行命令并加入运行队列,不能运行的加入集群等待队列
- }
- // 4 返回
- c.JSON(http.StatusOK, entity.HttpResult{Status: true, Code: "2000", Message: "项目启动请求已被成功接收,等待调度处理。"})
- }
|