root 2 жил өмнө
parent
commit
c19c5e30be

+ 0 - 334
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/VideoService.java

@@ -1,334 +0,0 @@
-//package com.css.simulation.resource.scheduler.service;
-//
-//import api.common.pojo.po.scene.VehicleTypePO;
-//import api.common.pojo.vo.model.VehicleVO;
-//import api.common.util.FileUtil;
-//import api.common.util.LinuxUtil;
-//import com.css.simulation.resource.scheduler.mapper.ConfigMapper;
-//import com.css.simulation.resource.scheduler.mapper.SimulationAutomaticProjectMapper;
-//import com.css.simulation.resource.scheduler.mapper.VehicleMapper;
-//import com.css.simulation.resource.scheduler.util.MinioUtil;
-//import io.minio.MinioClient;
-//import lombok.SneakyThrows;
-//import org.dom4j.Attribute;
-//import org.dom4j.Document;
-//import org.dom4j.Element;
-//import org.dom4j.io.OutputFormat;
-//import org.dom4j.io.SAXReader;
-//import org.dom4j.io.XMLWriter;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.stereotype.Service;
-//
-//import javax.annotation.Resource;
-//import java.io.File;
-//import java.io.OutputStreamWriter;
-//import java.io.Writer;
-//import java.math.BigDecimal;
-//import java.nio.file.Files;
-//import java.nio.file.Paths;
-//import java.util.Iterator;
-//
-//@Service
-//public class VideoService {
-//    @Resource
-//    VehicleMapper vehicleMapper;
-//    @Resource
-//    ConfigMapper configMapper;
-//    @Resource
-//    SimulationAutomaticProjectMapper simulationAutomaticProjectMapper;
-//    @Resource
-//    MinioClient minioClient;
-//
-//
-//    //* -------------------------------- Comment --------------------------------
-//
-//    public static final String oldXoscName = "simulation_my0.xosc";
-//    public static final String newXoscName = "simulation_my05.xosc";
-//    public static final String oldXoscRelativePath = "xosc/simulation_my0.xosc";
-//    public static final String[] csvNameArray = {"Ego.csv", "evaluation.csv"};
-//
-//    //* -------------------------------- Comment --------------------------------
-//    @Value("${scheduler.linux-path.temp}")
-//    String linuxTempPath;
-//    @Value("${scheduler.minio-path.project-result}")
-//    String projectResultPathOfMinio;
-//    @Value("${minio.bucket-name}")
-//    String bucketName;
-//
-//
-//    /**
-//     * 生成视频
-//     */
-//    @SneakyThrows
-//    public void generateVideo(String projectId, String projectType, String taskId) {
-//        //1 获取两个 csv 的目录,和 xodr 和 osgb 三个路径
-//        String csvDirectoryPath = linuxTempPath + "video/" + projectId + "/" + taskId + "/";
-//        String xodrPath = FileUtil.listAbsolutePathByFiletype(csvDirectoryPath, ".xodr").get(0);    // xodr 文件在创建项目时已经下载好了
-//        String osgbPath = FileUtil.listAbsolutePathByFiletype(csvDirectoryPath, ".osgb").get(0);    // osgb 文件在创建项目时已经下载好了
-//        //2 下载 csv 文件
-//        for (String csvName : csvNameArray) {
-//            MinioUtil.downloadToFile(minioClient, bucketName, projectResultPathOfMinio + projectId + "/" + taskId + "/" + csvName, csvDirectoryPath + "/" + csvName);
-//        }
-//        //3 生成 xosc 文件
-//        String xoscPath = generateXosc(csvDirectoryPath, xodrPath, osgbPath, projectId, projectType);
-//        //4 生成图片
-//        String pictureDirectoryPath = csvDirectoryPath + "picture";
-//        FileUtil.createDirectory(pictureDirectoryPath);
-//        String esminiCommand =  "/root/disk1/simulation-cloud/esmini/build/EnvironmentSimulator/code-examples/image-capture/image-capture "
-//                + xoscPath + " " + pictureDirectoryPath + "/screenshot";
-//        String esminiResult = LinuxUtil.execute(esminiCommand);
-//        //5 生成视频
-//        String videoName = "simulation_output.mp4";
-//        String videoTargetPathOfLinux = csvDirectoryPath + "video";
-//        FileUtil.createDirectory(videoTargetPathOfLinux);
-//        String videoTargetPathOfMinio = projectResultPathOfMinio + projectId + "/" + taskId + "/" + videoName;
-//
-//        String execute = LinuxUtil.execute("ffmpeg"
-//                + " -f image2 -framerate 30 "
-//                + " -i " + pictureDirectoryPath + "/screenshot_%05d.tga"
-//                + " -c:v libx264 -vf format=yuv420p -crf 20 "
-//                + videoTargetPathOfLinux + "/" + videoName
-//        );
-//        //6 将视频上传到 minio
-//        MinioUtil.uploadFromFile(minioClient, videoTargetPathOfLinux + videoName, bucketName, videoTargetPathOfMinio);
-//    }
-//
-//    /**
-//     * Xosc
-//     */
-//    @SneakyThrows
-//    private String generateXosc(String csvDirectoryPath, String xodrPath, String osgbPath, String projectId, String projectType) {
-//        //1 生成 xosc 文件
-//        String command = "D:\\Users\\anaconda3\\envs\\flaskProject\\python.exe C:/Users/CSS/Desktop/simulation/gqSw/simulation_my.py " + csvDirectoryPath;
-//        String execute = LinuxUtil.execute(command);    // 执行命令后生成 xosc 到目录下
-//        String oldXoscPath = csvDirectoryPath + oldXoscRelativePath;  // 生成文件的路径是固定的
-//        //2 调用修改xosc
-//        return modifyXosc(oldXoscPath, xodrPath, osgbPath, projectId, projectType);  // 返回最新的xosc文件全路径
-//    }
-//
-//
-//    /**
-//     * 修改 xosc 文件
-//     */
-//    @SneakyThrows
-//    private String modifyXosc(String oldXoscPath, String xodrPath, String osgbPath, String projectId, String projectType) {
-//        String newXoscPath = oldXoscPath.replace(oldXoscName, newXoscName);
-//        //获取三维自车对象
-//        VehicleTypePO po = vehicleById(projectId, projectType);
-//
-//        //1 创建Reader对象
-//        SAXReader reader = new SAXReader();
-//        //2 加载xml
-//        // Document document = reader.read(new File("D:\\simulation_my0.xosc"));
-//        Document document = reader.read(new File(oldXoscPath));
-//        //3 获取根节点
-//        Element root = document.getRootElement();
-//        Iterator<Element> iterator0 = root.elementIterator();
-//        while (iterator0.hasNext()) {   // 第一层遍历
-//            Element node1 = iterator0.next();
-//            if ("Entities".equals(node1.getName())) { // 找到第一层节点后进入第二层遍历
-//                Iterator<Element> iterator1 = node1.elementIterator();
-//                while (iterator1.hasNext()) {
-//                    Element node2 = iterator1.next();
-//                    // 添加节点
-//                    if ("ScenarioObject".equals(node2.getName())) {
-//                        String scenarioObjectName = node2.attribute("name").getValue();
-//                        if (scenarioObjectName.equals("Ego")) {
-//                            Iterator<Element> iterator2 = node2.elementIterator();
-//                            while (iterator2.hasNext()) {
-//                                Element node3 = iterator2.next();
-//                                if ("Vehicle".equals(node3.getName())) {
-//                                    Attribute name = node3.attribute("name");
-//                                    name.setText("Audi_A3_2009_red");
-//                                    Attribute vehicleCategory = node3.attribute("vehicleCategory");
-//                                    vehicleCategory.setText(po.getVehicleCategory());
-//                                    node3.addAttribute("model3d",po.getModel3d());//自车渲染
-//                                    Iterator<Element> iterator4 = node3.elementIterator();
-//                                    while (iterator4.hasNext()) {
-//                                        Element node4 = iterator4.next();
-//                                        if ("Performance".equals(node4.getName())) {
-//                                            Attribute maxSpeed = node4.attribute("maxSpeed");
-//                                            maxSpeed.setText(po.getPerformanceMaxSpeed() + "");
-//                                            Attribute maxDeceleration = node4.attribute("maxDeceleration");
-//                                            maxDeceleration.setText(po.getPerformanceMaxDeceleration() + "");
-//                                            Attribute maxAcceleration = node4.attribute("maxAcceleration");
-//                                            maxAcceleration.setText(po.getPerformanceMaxAcceleration());
-//                                        } else if ("BoundingBox".equals(node4.getName())) {
-//                                            Iterator<Element> iterator5 = node4.elementIterator();
-//                                            while (iterator5.hasNext()) {
-//                                                Element node5 = iterator5.next();
-//                                                if ("Center".equals(node5.getName())) {
-//                                                    Attribute x = node5.attribute("x");
-//                                                    x.setText(po.getCenterX() + "");
-//                                                    Attribute y = node5.attribute("y");
-//                                                    y.setText(po.getCenterY() + "");
-//                                                    Attribute z = node5.attribute("z");
-//                                                    z.setText(po.getCenterZ() + "");
-//                                                }
-//                                                if ("Dimensions".equals(node5.getName())) {
-//                                                    Attribute width = node5.attribute("width");
-//                                                    width.setText(po.getDimensionsWidth() + "");
-//                                                    Attribute length = node5.attribute("length");
-//                                                    length.setText(po.getDimensionsHeight() + "");
-//                                                    Attribute height = node5.attribute("height");
-//                                                    height.setText(po.getDimensionsHeight() + "");
-//                                                }
-//                                            }
-//                                        } else if ("Axles".equals(node4.getName())) {
-//                                            Iterator<Element> iterator5 = node4.elementIterator();
-//                                            while (iterator5.hasNext()) {
-//                                                Element node5 = iterator5.next();
-//                                                if ("FrontAxle".equals(node5.getName())) {
-//                                                    Attribute maxSteering = node5.attribute("maxSteering");
-//                                                    maxSteering.setText(po.getFrontAxleMaxSteering() + "");
-//                                                    Attribute wheelDiameter = node5.attribute("wheelDiameter");
-//                                                    wheelDiameter.setText(po.getFrontAxleWheelDiameter() + "");
-//                                                    Attribute trackWidth = node5.attribute("trackWidth");
-//                                                    trackWidth.setText(po.getFrontAxleTrackWidth() + "");
-//                                                    Attribute positionX = node5.attribute("positionX");
-//                                                    positionX.setText(po.getFrontAxlePositionX() + "");
-//                                                    Attribute positionZ = node5.attribute("positionZ");
-//                                                    positionZ.setText(po.getFrontAxlePositionZ() + "");
-//                                                }
-//                                                if ("RearAxle".equals(node5.getName())) {
-//                                                    Attribute maxSteering = node5.attribute("maxSteering");
-//                                                    maxSteering.setText(po.getRearAxleMaxSteering());
-//                                                    Attribute wheelDiameter = node5.attribute("wheelDiameter");
-//                                                    wheelDiameter.setText(po.getRearAxleWheelDiameter() + "");
-//                                                    Attribute trackWidth = node5.attribute("trackWidth");
-//                                                    trackWidth.setText(po.getRearAxleTrackWidth() + "");
-//                                                    Attribute positionX = node5.attribute("positionX");
-//                                                    positionX.setText(po.getRearAxlePositionX() + "");
-//                                                    Attribute positionZ = node5.attribute("positionZ");
-//                                                    positionZ.setText(po.getRearAxlePositionZ() + "");
-//                                                }
-//                                            }
-//                                        }
-//
-//                                    }
-//                                }
-//
-//                            }
-//
-//                            // 保存文件
-//                            // Writer osWrite = new OutputStreamWriter(Files.newOutputStream(Paths.get("D:\\simulation_my0000.xosc")));// 创建输出流
-//
-//                        }
-//                    }
-//                }
-//            }
-//
-//            if ("RoadNetwork".equals(node1.getName())) { // 找到第一层节点后进入第二层遍历
-//                Iterator<Element> iterator1 = node1.elementIterator();
-//                while (iterator1.hasNext()) {
-//                    Element node2 = iterator1.next();
-//                    // 添加节点
-//                    if ("LogicFile".equals(node2.getName())) {
-//                        Attribute name = node2.attribute("filepath");
-//                        name.setText(xodrPath);
-//                    }
-//                    if ("SceneGraphFile".equals(node2.getName())) {
-//                        Attribute name = node2.attribute("filepath");
-//                        name.setText(osgbPath);
-//                    }
-//                }
-//            }
-//
-//            Writer osWrite = new OutputStreamWriter(Files.newOutputStream(Paths.get(newXoscPath)));
-//            OutputFormat format = OutputFormat.createPrettyPrint(); // 获取输出的指定格式
-//            format.setEncoding("UTF-8");// 设置编码 ,确保解析的xml为UTF-8格式
-//            XMLWriter writer = new XMLWriter(osWrite, format);// XMLWriter
-//            writer.write(document);// 把document写入xmlFile指定的文件(可以为被解析的文件或者新创建的文件)
-//            writer.flush();
-//            writer.close();
-//        }
-//        return newXoscPath;
-//    }
-//
-//
-//    //获取三维自车对象
-//    @SneakyThrows
-//    private VehicleTypePO vehicleById(String projectId, String projectType) {
-//        VehicleTypePO po = new VehicleTypePO();
-//        //项目类型 1.手动;2.自动
-//        String vehicle = "";
-//        if (projectType.equals("1")) {
-//            vehicle = simulationAutomaticProjectMapper.vehicleBySdId(projectId);
-//        } else if (projectType.equals("2")) {
-//            vehicle = simulationAutomaticProjectMapper.vehicleByZdId(projectId);
-//        }
-//        String vehicleId = configMapper.getVehicleId(vehicle);
-//
-//        VehicleVO vehicleInfo = vehicleMapper.getVehicleInfo(vehicleId);
-//
-//        //自车模型
-//        String car = vehicleInfo.getVehicleTypeStr().substring(0, vehicleInfo.getVehicleTypeStr().indexOf(","));
-//        car = car.substring(0, 1).toLowerCase() + car.substring(1);
-//        if (car.contains("truck")) {
-//            po.setVehicleCategory("truck");
-//        } else if (car.contains("trailer")) {
-//            po.setVehicleCategory("trailer");
-//        } else if (car.contains("van")) {
-//            po.setVehicleCategory("van");
-//        } else if (car.contains("semitrailer")) {
-//            po.setVehicleCategory("semitrailer");
-//        } else if (car.contains("bus")) {
-//            po.setVehicleCategory("bus");
-//        } else if (car.contains("motorbike")) {
-//            po.setVehicleCategory("motorbike");
-//        } else if (car.contains("bicycle")) {
-//            po.setVehicleCategory("bicycle");
-//        } else if (car.contains("bicycle")) {
-//            po.setVehicleCategory("bicycle");
-//        } else if (car.contains("train")) {
-//            po.setVehicleCategory("train");
-//        } else if (car.contains("tram")) {
-//            po.setVehicleCategory("tram");
-//        } else {
-//            po.setVehicleCategory("car");
-//        }
-//
-//        //车前距
-//        BigDecimal frontDistance = vehicleInfo.getFrontDistance();
-//        //车后距
-//        BigDecimal mo2 = new BigDecimal("2");
-//        BigDecimal rearDistance = vehicleInfo.getRearDistance();
-//        if (frontDistance.compareTo(rearDistance) > 0) {
-//            BigDecimal CenterX = (frontDistance.add(rearDistance)).divide(mo2).subtract(rearDistance);
-//            po.setCenterX(CenterX);
-//        } else {
-//            BigDecimal CenterX = (frontDistance.add(rearDistance)).divide(mo2).subtract(frontDistance);
-//            po.setCenterX(CenterX);
-//        }
-//        //车高
-//        BigDecimal mo3 = new BigDecimal("3");
-//        po.setCenterZ(vehicleInfo.getHeightDistance().divide(mo3));
-//        //车左距  车右距
-//        BigDecimal LeftDistance = vehicleInfo.getLeftDistance();
-//        BigDecimal RightDistance = vehicleInfo.getRightDistance();
-//        po.setDimensionsWidth(LeftDistance.add(RightDistance));
-//        po.setDimensionsHeight(vehicleInfo.getHeightDistance());
-//        po.setDimensionsLength(frontDistance.add(rearDistance));
-//
-//        po.setPerformanceMaxSpeed(vehicleInfo.getMaxSpeed());
-//        po.setPerformanceMaxDeceleration(vehicleInfo.getMaxDeceleration());
-//        BigDecimal moπ = new BigDecimal("3.141516");
-//        BigDecimal mo180 = new BigDecimal("180");
-//        po.setFrontAxleMaxSteering(vehicleInfo.getMaxSteeringAngle().multiply(moπ).divide(mo180));
-//        po.setFrontAxleWheelDiameter(vehicleInfo.getWheelDiameter());
-//        BigDecimal mo4 = new BigDecimal("4");
-//        BigDecimal mo5 = new BigDecimal("5");
-//        po.setFrontAxleTrackWidth(LeftDistance.add(RightDistance).multiply(mo4).divide(mo5));
-//        po.setFrontAxlePositionX(po.getCenterX());
-//        po.setFrontAxlePositionZ(po.getCenterZ());
-//
-//        po.setRearAxleWheelDiameter(vehicleInfo.getWheelDiameter());
-//        po.setRearAxleTrackWidth(po.getFrontAxleTrackWidth());
-//        po.setRearAxlePositionX(po.getFrontAxlePositionX());
-//        po.setRearAxlePositionZ(po.getFrontAxlePositionZ());
-//        return po;
-//
-//    }
-//
-//
-//}

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/controller/advice/AllExceptionHandlerAdvice.java → simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/web/advice/AllExceptionHandlerAdvice.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.web.controller.advice;
+package com.css.simulation.resource.scheduler.web.advice;
 
 import api.common.pojo.common.ResponseBodyVO;
 import lombok.extern.slf4j.Slf4j;