无人机管理后台前端(已迁走)
linwe
2024-10-16 0c779fb73aa2906abc8a5da3e84efe2cd971b789
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
import { ElMessage } from 'element-plus';
import { ref } from 'vue';
import { postSendCmd } from '@/api/device-cmd';
import { DeviceCmd } from '@/types/device-cmd';
 
export function useDockControl() {
  const dockControlPanelVisible = ref(false);
 
  function setDockControlPanelVisible(visible) {
    dockControlPanelVisible.value = visible;
  }
 
  // 远程调试开关
  async function dockDebugOnOff(sn, on) {
    const result = await sendDockControlCmd(
      {
        sn: sn,
        cmd: on ? DeviceCmd.DebugModeOpen : DeviceCmd.DebugModeClose,
      },
      false
    );
    return result;
  }
 
  // 发送指令
  async function sendDockControlCmd(params, tip = true) {
    try {
      let body = undefined;
      if (params.action !== undefined) {
        if (params.cmd === DeviceCmd.SdrWorkModeSwitch) {
          body = {
            link_workmode: params.action,
          };
        } else {
          body = {
            action: params.action,
          };
        }
      }
      const { code, message: msg } = await postSendCmd(
        { dock_sn: params.sn, device_cmd: params.cmd },
        body
      );
      if (code === 0) {
        tip &&
          ElMessage({
            message: '指令发送成功',
            type: 'success',
          });
        return true;
        message.error('指令发送失败');
      }
      throw msg;
    } catch (e) {
      tip &&
        ElMessage({
          message: '指令发送失败',
          type: 'error',
        });
      return false;
    }
  }
 
  // 控制面板关闭
  async function onCloseControlPanel(sn) {
    console.log(dockControlPanelVisible.value, 'value');
    await dockDebugOnOff(sn, false);
    setDockControlPanelVisible(false);
  }
 
  return {
    dockControlPanelVisible,
    setDockControlPanelVisible,
    sendDockControlCmd,
    dockDebugOnOff,
    onCloseControlPanel,
  };
}