Browse Source

refactor: 启动仿真测试切换回异步模式

HeWang 9 months ago
parent
commit
5a435f3d83
2 changed files with 63 additions and 50 deletions
  1. 36 28
      electron/main.js
  2. 27 22
      src/views/AboutView.vue

+ 36 - 28
electron/main.js

@@ -37,6 +37,26 @@ app.on('window-all-closed', () => {
     }
 });
 
+app.on('ready', () => {
+    // 异步
+    ipcMain.on('run-simulation', (event, {obstacle_flag, default_start_flag, default_end_flag, start_point, end_point}) => {
+        const command = 'bash /home/cicv/work/pji_desktop/simulation/run_simulation.sh ' + obstacle_flag + ' ' + default_start_flag + ' ' + default_end_flag +
+            ' ' + start_point + ' ' + end_point;
+        console.log('command:', command);
+        exec(command, (error, stdout, stderr) => {
+            if (error) {
+                console.error(`exec error: ${error}`);
+                event.reply('run-simulation-response', { success: false, message: error.message });
+                return;
+            } else {
+                console.log(`stdout: ${stdout}`);
+                console.error(`stderr: ${stderr}`);
+                event.reply('run-simulation-response', { success: true, message: 'Run simulation successfully' });
+            }
+        });
+    });
+})
+
 app.on('activate', () => {
     if (BrowserWindow.getAllWindows().length === 0) {
         createWindow();
@@ -213,34 +233,22 @@ ipcMain.on('start-container', (event, {zip_file_path, image_name, container_name
     }
 });
 
-ipcMain.handle('run-simulation', (event, {obstacle_flag, default_start_flag, default_end_flag, start_point, end_point}) => {
-    const command = 'bash /home/cicv/work/pji_desktop/simulation/run_simulation.sh ' + obstacle_flag + ' ' + default_start_flag + ' ' + default_end_flag +
-        ' ' + start_point + ' ' + end_point;
-    console.log('command:', command);
-
-    // 异步
-    // exec(command, (error, stdout, stderr) => {
-    //     if (error) {
-    //         console.error(`exec error: ${error}`);
-    //         // event.reply('run-simulation-response', { success: false, message: error.message });
-    //         return { success: false, message: error.message }
-    //     } else {
-    //         console.log(`stdout: ${stdout}`);
-    //         console.error(`stderr: ${stderr}`);
-    //         return { success: true, message: 'Run simulation successfully' }
-    //     }
-    // });
-
-    // 同步
-    try {
-        const  output = execSync(command)
-        console.log("output", output.toString());
-        return { success: false, message: error.message }
-    } catch (error) {
-        console.error(`exec error: ${error}`);
-        return { success: true, message: 'Run simulation successfully' }
-    }
-});
+// 同步
+// ipcMain.handle('run-simulation', (event, {obstacle_flag, default_start_flag, default_end_flag, start_point, end_point}) => {
+//     const command = 'bash /home/cicv/work/pji_desktop/simulation/run_simulation.sh ' + obstacle_flag + ' ' + default_start_flag + ' ' + default_end_flag +
+//         ' ' + start_point + ' ' + end_point;
+//     console.log('command:', command);
+//
+//     // 同步
+//     try {
+//         const  output = execSync(command)
+//         console.log("output", output.toString());
+//         return { success: false, message: error.message }
+//     } catch (error) {
+//         console.error(`exec error: ${error}`);
+//         return { success: true, message: 'Run simulation successfully' }
+//     }
+// });
 
 ipcMain.handle('download-file', async (event, { url, fileName, savePath, overwriteFlag }) => {
     try {

+ 27 - 22
src/views/AboutView.vue

@@ -191,7 +191,7 @@ const onSubmit = () => {
 }
 const router = useRouter();
 
-const runSimulation = async () => {
+const runSimulation = () => {
   // 是否加载默认障碍物
   let obstacle_flag = form.resource
   let default_start_flag = form.origin
@@ -201,28 +201,33 @@ const runSimulation = async () => {
 
   console.log("end_point=" + end_point)
   // 开启仿真测试
-  const result = await window.electronAPI.runSimulation(obstacle_flag, default_start_flag, default_end_flag, start_point, end_point)
+  // 同步
+  // const result = await window.electronAPI.runSimulation(obstacle_flag, default_start_flag, default_end_flag, start_point, end_point)
+  // if (result.success) { // 脚本执行成功
+  //   console.log('Script execution completed successfully.')
+  //   // ElMessage.success("仿真测试成功!");
+  //   ElMessage.closeAll()
+  //   proxy.$message.success("仿真测试成功!");
+  // } else { // 脚本执行过程中发生错误
+  //   console.error('Script execution failed.');
+  //   proxy.$message.error("仿真测试错误!");
+  // }
+
+  // 异步
+  window.electronAPI.runSimulation(obstacle_flag, default_start_flag, default_end_flag, start_point, end_point)
   // 监听脚本执行状态
-  // window.electronAPI.onRunSimulationResponse( (event, result) => {
-  //   if (result.success) { // 脚本执行成功
-  //     console.log('Script execution completed successfully.')
-  //     // ElMessage.success("仿真测试成功!");
-  //     ElMessage.closeAll()
-  //     proxy.$message.success("仿真测试成功!");
-  //   } else { // 脚本执行过程中发生错误
-  //     console.error('Script execution failed.');
-  //     proxy.$message.error("仿真测试错误!");
-  //   }
-  // })
-  if (result.success) { // 脚本执行成功
-    console.log('Script execution completed successfully.')
-    // ElMessage.success("仿真测试成功!");
-    ElMessage.closeAll()
-    proxy.$message.success("仿真测试成功!");
-  } else { // 脚本执行过程中发生错误
-    console.error('Script execution failed.');
-    proxy.$message.error("仿真测试错误!");
-  }
+  window.electronAPI.onRunSimulationResponse( (event, result) => {
+    if (result.success) { // 脚本执行成功
+      console.log('Script execution completed successfully.')
+      // ElMessage.success("仿真测试成功!");
+      // 清除历史窗口
+      ElMessage.closeAll()
+      proxy.$message.success("仿真测试成功!");
+    } else { // 脚本执行过程中发生错误
+      console.error('Script execution failed.');
+      proxy.$message.error("仿真测试错误!");
+    }
+  })
 }
 
 const goToMain = () => {