chenyao
2025-02-26 31b7e874bac09e8a82c938c75e36452580dfddd6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
 * @Author: GuLiMmo 2820890765@qq.com
 * @Date: 2024-04-03 10:23:36
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-10-23 19:22:21
 * @FilePath: \bigScreen\src\api\drone\payload.js
 * @Description:
 * Copyright (c) 2024 by GuLiMmo, All Rights Reserved.
 */
import request from '@/api/http/request';
import { showNotify } from 'vant';
 
 
const API_PREFIX = '/control/api/v1';
// const workspaceId: string = localStorage.getItem(ELocalStorageKey.WorkspaceId) || '
 
// 获取负载控制权
export async function postPayloadAuth(sn='', body = {}) {
  const resp = await request.post(
    `${API_PREFIX}/devices/${sn}/authority/payload`,
    body,
  );
  return resp.data;
}
 
// TODO: 画面拖动控制
export const PayloadCommandsEnum = {
  CameraModeSwitch: 'camera_mode_switch',
  CameraPhotoTake: 'camera_photo_take',
  CameraRecordingStart: 'camera_recording_start',
  CameraScreenDrag: 'camera_screen_drag',
  CameraRecordingStop: 'camera_recording_stop',
  CameraFocalLengthSet: 'camera_focal_length_set',
  GimbalReset: 'gimbal_reset',
  CameraAim: 'camera_aim',
};
// 发送负载名称
export async function postPayloadCommands(sn='', body = {}, config = {}) {
  const resp = await request.post(
    `${API_PREFIX}/devices/${sn}/payload/commands`,
    body,
    config,
  );
  return resp.data;
}
 
// 双击AIM视频定位
export async function postPayloadAIM(sn='', body = {}, config = {}) {
  const resp = await request.post(
    `${API_PREFIX}/devices/${sn}/payload/aim`,
    body,
    config,
  );
  return resp.data;
}
 
// 框选变焦
export async function postPayloadCameraFrameZoom(sn='', body = {}, config = {}) {
  const resp = await request.post(
    `${API_PREFIX}/devices/${sn}/payload/camera_frame_zoom`,
    body,
    config,
  );
  return resp.data;
}
postPayloadAIM
 
// 万向复节
export async function resetGimbal(sn='', data={}) {
  const { code } = await postPayloadCommands(sn, {
    cmd: PayloadCommandsEnum.GimbalReset,
    data: data,
  });
  if (code === 0) {
    showNotify({ type: 'success', message: '万向节复位成功' })
  }
}
 
// 相机缩放
export async function changeCameraFocalLength(sn='', data={}, isZoom:false) {
  const { code } = await postPayloadCommands(sn, {
    cmd: PayloadCommandsEnum.CameraFocalLengthSet,
    data: data,
  });
  if (isZoom) {
    showNotify({ type: 'success', message: '放大成功' })
  } else {
    showNotify({ type: 'success', message: '缩小成功' })
  }
}