package handler

import (
	"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
 *                }
 * 			]
 *        }* 	}
 * }
 */

type StartProjectParam struct {
}

func StartProject(c *gin.Context) {
	projectStartParam := new(StartProjectParam)
	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 场景
	// 2 动力学模型
	// 3 传感器
	// 4 算法
	//service
	c.JSON(http.StatusOK, entity.HttpResult{Status: true, Code: "2000", Message: "项目启动请求已被成功接收,等待调度处理。"})
}