Parcourir la source

feat(camera): 添加多摄像头模式支持

- 修改 checkCamera 方法接受 isMultiCameraMode 参数
- 在 camera API 中添加多摄像头模式参数传递
- 更新 connect 方法支持多摄像头模式配置
- 在前端检查模块中集成用户信息 store
- 通过 IPC 发送连接消息时包含多摄像头模式参数
panqiuyao il y a 3 jours
Parent
commit
7036edd4b8

+ 5 - 2
electron/api/camera.js

@@ -143,14 +143,17 @@ module.exports = {
       url: '/minimize_window?window_title=Smart%20Shoote',
     })
   },
-  async checkCamera(){
+  async checkCamera(isMultiCameraMode = false){
     if(readConfigFile().controlType === 'digiCamControl'){
       return  fetchExampleData(`?slc=get&param1=iso`)
     }else {
 
+      console.log('isMultiCameraMode============='+isMultiCameraMode);
       await pySocket.sendMessage(JSON.stringify({
         type: 'smart_shooter_getinfo',
-        data:{}
+        data:{
+          isMultiCameraMode
+        }
       }))
      return  new Promise(async (resolve, reject) => {
         pySocket.onSocketMessage('smart_shooter_getinfo',(message)=>{

+ 4 - 2
electron/controller/camera.js

@@ -25,10 +25,12 @@ class CameraController extends Controller {
     super(ctx);
   }
 
-  async connect() {
+  async connect(params = {}) {
+    const isMultiCameraMode = params?.isMultiCameraMode ?? false;
     try {
       console.log('==================');
       console.log(readConfigFile());
+      console.log('[CAMERA-DEBUG] connect() - isMultiCameraMode:', isMultiCameraMode);
 
       // 主动检测:即使 isSoftwareStarted 为 true,也要检查进程是否还在运行(兜底机制)
       console.log('[CAMERA-DEBUG] connect() 检查状态 - isSoftwareStarted:', isSoftwareStarted, 'isProcessRunning():', isProcessRunning());
@@ -88,7 +90,7 @@ class CameraController extends Controller {
         }
 
         // 检查相机状态
-        let res = await checkCamera().catch(e=>{
+        let res = await checkCamera(isMultiCameraMode).catch(e=>{
           Log.info('checkCamera:'+e);
           isOPen = false;
           return { device_status: -1 }; // 返回错误状态,让后续逻辑处理

+ 6 - 1
frontend/src/stores/modules/check.ts

@@ -5,8 +5,10 @@ import icpList from "../../utils/ipc";
 import client from "./client";
 import {ElMessage} from "element-plus";
 import  configInfo  from '@/stores/modules/config';
+import { useUserInfo } from './user';
 const socketStore = socket();
 const clientStore = client();
+const userInfoStore = useUserInfo();
 
 
 /**
@@ -120,7 +122,10 @@ export const checkInfo = defineStore('checkInfo', () => {
 
 
               clientStore.ipc.removeAllListeners(icpList.camera.connect);
-              clientStore.ipc.send(icpList.camera.connect,configInfoStore.digiCamControlPath);
+              clientStore.ipc.send(icpList.camera.connect, {
+                path: configInfoStore.digiCamControlPath,
+                isMultiCameraMode: userInfoStore.isMultiCameraMode,
+              });
 
               clientStore.ipc.on(icpList.camera.connect, async (event, result) => {