| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- // electron/utils/readConfig.js
- const path = require('path');
- const fs = require('fs');
- const Log = require('ee-core/log');
- const { spawn } = require('child_process');
- const { liveShow, liveHide, setParams, capture, getParams,CMD,captureLive,closeOtherWindow } = require('../api/camera');
- const { dialog } = require('electron'); // 引入 electron 的 dialog 模块
- const { windowManager } = require('node-window-manager');
- const CoreWindow = require("ee-core/electron/window");
- const { readConfigFile, writeConfigFile } = require('../utils/config');
- const exe = {
- "digiCamControl":"CameraControl.exe",
- "SmartShooter":"SmartShooter5.exe",
- }
- function getExePath () {
- let exePath = ""
- if(readConfigFile().controlType === 'digiCamControl'){
- exePath = path.join( readConfigFile().controlPath || readConfigFile().digiCamControlPath, exe["digiCamControl"]);
- }else if(readConfigFile().controlType === 'SmartShooter'){
- exePath = path.join( readConfigFile().controlPath || readConfigFile().SmartShooterPath, exe["SmartShooter"]);
- }
- console.log('ex============ePath');
- console.log(exePath);
- return exePath
- }
- async function checkCameraControlCmdExists() {
- try {
- // 拼接 CameraControlCmd.exe 的完整路径
- let exePath = getExePath()
- // 检查文件是否存在
- const exists = await fs.promises.access(exePath, fs.constants.F_OK)
- .then(() => true)
- .catch(() => false);
- if (!exists) {
- // 弹出文件夹选择对话框
- const { canceled, filePaths } = await dialog.showOpenDialog({
- title: '选择 相机控制安装软件 文件夹',
- properties: ['openDirectory']
- });
- if (!canceled && filePaths.length > 0) {
- const selectedPath = filePaths[0];
- // Check if SmartShooter5.exe exists in the selected directory
- const hasExe = path.join(selectedPath, exe["SmartShooter"]);
- if (fs.existsSync(hasExe)) {
- writeConfigFile("controlType","SmartShooter")
- }else{
- writeConfigFile("controlType","digiCamControl")
- }
- writeConfigFile("controlPath",selectedPath)
- } else {
- console.error('用户未选择文件夹');
- return {
- status:-1,
- msg:"无法找到 CameraControlCmd.exe 或者 SmartShooter5.exe",
- }
- }
- }
- const res = await openCameraControlCmd();
- return res;
- } catch (error) {
- Log.error('检查 第三方相机控制器 是否存在时出错:', error);
- throw error;
- }
- }
- async function openCameraControlCmd(digiCamControlPath) {
- return new Promise(async (resolve, reject) => {
- try {
- // 获取 digiCamControl 文件夹路径
- // 拼接 CameraControlCmd.exe 的完整路径
- let exePath = getExePath()
- // 检查文件是否存在
- await fs.promises.access(exePath, fs.constants.F_OK);
- try {
- const child = spawn(exePath);
- child.stdout.on('data', (data) => {
- resolve(true)
- });
- child.on('close', (code) => {
- if (code === 0) {
- reject(false)
- }
- });
- } catch (error) {
- Log.error('error 第三方相机控制器:', error);
- throw error;
- }
- } catch (error) {
- Log.error('无法找到或运行 第三方相机控制器:', error);
- throw error;
- }
- })
- }
- async function closeCameraControlTips() {
- try {
- await closeOtherWindow()
- }catch (e) {
- console.log(e)
- }
- }
- module.exports = {
- checkCameraControlCmdExists,
- closeCameraControlTips
- };
|