XNSim/XNSimHtml/routes/InterfaceGen.js

73 lines
2.3 KiB
JavaScript

const express = require('express');
const router = express.Router();
const {
interfaceGenStep1InitParams,
interfaceGenStep2GetInterfaceData,
interfaceGenStep3CreateConfigDir,
interfaceGenStep4GenerateIDL,
interfaceGenStep5GenerateFastDDS,
interfaceGenStep6GenerateDDSInterface,
interfaceGenStep7GenerateCMakeLists,
interfaceGenStep8BuildAndInstall,
interfaceGenStep9SudoLdconfig
} = require('../utils/xnCoreService');
// Step1: 初始化接口生成参数
router.post('/step1', (req, res) => {
const { configID } = req.body;
if (!configID) {
return res.status(400).json({ success: false, message: '缺少configID参数' });
}
const result = interfaceGenStep1InitParams(configID);
res.json({ success: result.includes('成功'), message: result });
});
// Step2: 获取接口数据
router.post('/step2', (req, res) => {
const result = interfaceGenStep2GetInterfaceData();
res.json({ success: result.includes('成功'), message: result });
});
// Step3: 创建构型接口目录
router.post('/step3', (req, res) => {
const result = interfaceGenStep3CreateConfigDir();
res.json({ success: result.includes('成功'), message: result });
});
// Step4: 生成IDL文件
router.post('/step4', (req, res) => {
const result = interfaceGenStep4GenerateIDL();
res.json({ success: result.includes('成功'), message: result });
});
// Step5: 生成FastDDS接口代码
router.post('/step5', (req, res) => {
const result = interfaceGenStep5GenerateFastDDS();
res.json({ success: result.includes('成功'), message: result });
});
// Step6: 生成DDS接口代码
router.post('/step6', (req, res) => {
const result = interfaceGenStep6GenerateDDSInterface();
res.json({ success: result.includes('成功'), message: result });
});
// Step7: 生成CMakeLists文件
router.post('/step7', (req, res) => {
const result = interfaceGenStep7GenerateCMakeLists();
res.json({ success: result.includes('成功'), message: result });
});
// Step8: CMake构建并安装
router.post('/step8', (req, res) => {
const result = interfaceGenStep8BuildAndInstall();
res.json({ success: result.includes('成功'), message: result });
});
// Step9: 执行sudo ldconfig
router.post('/step9', (req, res) => {
const result = interfaceGenStep9SudoLdconfig();
res.json({ success: result.includes('成功'), message: result });
});
module.exports = router;