camera.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. 'use strict';
  2. const { Controller } = require('ee-core');
  3. const { checkCameraControlCmdExists, closeCameraControlTips} = require('../utils/camera');
  4. const { liveShow, liveHide, setParams, capture, getParams,CMD,captureLive,closeOtherWindow } = require('../api/camera');
  5. const { readConfigFile } = require('../utils/config');
  6. let isOPen = true
  7. class CameraController extends Controller {
  8. constructor(ctx) {
  9. super(ctx);
  10. }
  11. async connect() {
  12. try {
  13. await getParams('iso').catch(e=>{
  14. isOPen = false;
  15. })
  16. if(!isOPen){
  17. await checkCameraControlCmdExists()
  18. await CMD('All_Minimize')
  19. await closeCameraControlTips()
  20. isOPen = true
  21. }
  22. const res = await getParams('iso')
  23. if(res === '未将对象引用设置到对象的实例。'){
  24. return {
  25. status:-1,
  26. msg:"相机未连接,请链接相机。",
  27. }
  28. }
  29. return {
  30. status:2,
  31. msg:res,
  32. }
  33. return true;
  34. } catch (error) {
  35. let msg = '请安装digiCamControl软件,并打开digiCamControl软件的web服务,端口为5513'
  36. if(readConfigFile().controlType === 'SmartShooter') msg = '请安装SmartShooter5软件'
  37. return {
  38. status:-1,
  39. msg,
  40. }
  41. }
  42. }
  43. /**
  44. * 启动预览
  45. */
  46. async liveShow() {
  47. try {
  48. await liveShow();
  49. await CMD('All_Minimize')
  50. return true;
  51. } catch (error) {
  52. console.error('eeee启动直播失败:', error);
  53. throw error;
  54. }
  55. }
  56. /**
  57. * 结束预览
  58. */
  59. async liveHide() {
  60. try {
  61. await liveHide();
  62. return true;
  63. } catch (error) {
  64. throw error;
  65. }
  66. }
  67. /**
  68. * 设置参数
  69. */
  70. async setParams(params) {
  71. try {
  72. console.log(params);
  73. await setParams(params);
  74. return true;
  75. } catch (error) {
  76. throw error;
  77. }
  78. }
  79. async takePictures(isLive=true) {
  80. try {
  81. if(isLive){
  82. await captureLive();
  83. }else{
  84. await capture();
  85. }
  86. return true;
  87. } catch (error) {
  88. throw error;
  89. }
  90. }
  91. // 示例:使用 fetchData 函数进行 HTTP 请求
  92. async fetchExampleData() {
  93. const options = {
  94. hostname: 'example.com',
  95. port: 443,
  96. path: '/api/data',
  97. method: 'GET'
  98. };
  99. try {
  100. const data = await fetchData(options);
  101. console.log('Fetched data:', data);
  102. return data;
  103. } catch (error) {
  104. console.error('Fetch data failed:', error);
  105. throw error;
  106. }
  107. }
  108. }
  109. CameraController.toString = () => '[class CameraController]';
  110. module.exports = CameraController;