| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- const axios = require('axios');
- const http = require('http');
- const { net } = require('electron');
- const { post } = require('./request')
- //
- const baseURL = 'http://localhost:5513/';
- // 创建 Axios 实例
- const service = axios.create({
- baseURL:baseURL,
- timeout: 60000,
- });
- // 封装 GET 方法
- function get(config = { url: '' }) {
- return service.get(config.url, {
- insecureHTTPParser: true,
- timeout: config.timeout || 60000,
- });
- }
- async function fetchExampleData(url) {
- return new Promise((resolve, reject) => {
- const request = net.request({
- method: 'GET',
- url: baseURL+url
- });
- request.on('response', (response) => {
- let data = '';
- response.on('data', (chunk) => {
- data += chunk;
- });
- response.on('end', () => {
- try {
- resolve(data);
- } catch (error) {
- console.error('Error parsing data:', error);
- reject(error);
- }
- });
- });
- request.on('error', (error) => {
- console.error('Request error:', error);
- reject(error);
- });
- request.end();
- });
- }
- const socket = require('../utils/socket')
- const pySocket = new socket()
- const { readConfigFile } = require('../utils/config');
- module.exports = {
- async liveShow(){
- if(readConfigFile().controlType === 'digiCamControl'){
- return get({
- url: '?CMD=LiveViewWnd_Show'
- })
- }else{
- await pySocket.sendMessage(JSON.stringify({
- type: 'smart_shooter_enable_preview',
- data:{
- value:true
- }
- }))
- return new Promise(async (resolve, reject) => {
- pySocket.onSocketMessage('smart_shooter_enable_preview',(message)=>{
- resolve(message)
- })
- })
- }
- },
- async liveHide(){
- if(readConfigFile().controlType === 'digiCamControl'){
- return get({
- url: '?CMD=LiveViewWnd_Hide'
- })
- }else{
- await pySocket.sendMessage(JSON.stringify({
- type: 'smart_shooter_enable_preview',
- data:{
- value:false
- }
- }))
- return new Promise(async (resolve, reject) => {
- pySocket.onSocketMessage('smart_shooter_enable_preview',(message)=>{
- resolve(message)
- })
- })
- }
- },
- captureLive(){
- return get({
- url: '?CMD=LiveView_Capture'
- })
- },
- capture(){
- return get({
- url: '?CMD=Capture'
- })
- },
- CMD(cmd){
- return get({
- url: '?CMD='+cmd
- })
- },
- getParams(params){
- return fetchExampleData(`?slc=get¶m1=${params}`)
- },
- setParams(params){
- return get({
- url: `?slc=set¶m1=${params.key}¶m2=${params.value}`
- })
- },
- closeOtherWindow(){
- return post({
- url: '/close_other_window',
- })
- },
- async checkCamera(){
- if(readConfigFile().controlType === 'digiCamControl'){
- return fetchExampleData(`?slc=get¶m1=iso`)
- }else {
- await pySocket.sendMessage(JSON.stringify({
- type: 'smart_shooter_getinfo',
- data:{}
- }))
- return new Promise(async (resolve, reject) => {
- pySocket.onSocketMessage('smart_shooter_getinfo',(message)=>{
- resolve(message)
- })
- })
- }
- }
- }
- /*
- *
- * 设置 iso
- * 光圈 aperture
- * 拍摄模式 mode
- * 快门速度 shutterSpeed
- * 白平衡 whitebalance
- * 曝光补偿 ExposureCompensation
- * 对焦模式 focusmode
- *
- *folder 文件夹
- 曝光度:exposure
- 压缩:compression
- 测光点:metering
- * */
|