| | |
| | | /* |
| | | * @Author: GuLiMmo 2820890765@qq.com |
| | | * @Date: 2024-03-12 17:59:03 |
| | | * @LastEditors: GuLiMmo 2820890765@qq.com |
| | | * @LastEditTime: 2024-08-28 14:25:29 |
| | | * @FilePath: /drone-web/src/api/device-cmd/index.ts |
| | | * @Description: |
| | | * Copyright (c) 2024 by GuLiMmo, All Rights Reserved. |
| | | */ |
| | | import request, { IWorkspaceResponse } from '/@/api/http/request' |
| | | import { DeviceCmd, DeviceCmdItemAction } from '/@/types/device-cmd' |
| | | |
| | |
| | | * @Author: GuLiMmo 2820890765@qq.com |
| | | * @Date: 2024-03-12 17:59:03 |
| | | * @LastEditors: GuLiMmo 2820890765@qq.com |
| | | * @LastEditTime: 2024-08-27 16:56:00 |
| | | * @LastEditTime: 2024-08-27 17:10:11 |
| | | * @FilePath: /drone-web/src/api/drc.ts |
| | | * @Description: |
| | | * @Description: |
| | | * Copyright (c) 2024 by GuLiMmo, All Rights Reserved. |
| | | */ |
| | | import request, { IWorkspaceResponse } from '/@/api/http/request' |
| | |
| | | |
| | | // DRC 链路 |
| | | const DRC_API_PREFIX = '/control/api/v1' |
| | | const workspaceId: string = localStorage.getItem(ELocalStorageKey.WorkspaceId) || '' |
| | | |
| | | export interface PostDrcBody { |
| | | client_id?: string // token过期时,用于续期则必填 |
| | |
| | | |
| | | // 获取 mqtt 连接认证 |
| | | export async function postDrc (body: PostDrcBody): Promise<IWorkspaceResponse<DrcParams>> { |
| | | const workspaceId: string = localStorage.getItem(ELocalStorageKey.WorkspaceId) || '' |
| | | const resp = await request.post(`${DRC_API_PREFIX}/workspaces/${workspaceId}/drc/connect`, body) |
| | | return resp.data |
| | | } |
| | |
| | | |
| | | // 进入飞行控制 (建立drc连接&获取云控控制权) |
| | | export async function postDrcEnter (body: DrcEnterBody): Promise<IWorkspaceResponse<DrcEnterResp>> { |
| | | const workspaceId: string = localStorage.getItem(ELocalStorageKey.WorkspaceId) || '' |
| | | const resp = await request.post(`${DRC_API_PREFIX}/workspaces/${workspaceId}/drc/enter`, body) |
| | | return resp.data |
| | | } |
| | |
| | | |
| | | // 退出飞行控制 (退出drc连接&退出云控控制权) |
| | | export async function postDrcExit (body: DrcExitBody): Promise<IWorkspaceResponse<null>> { |
| | | const workspaceId: string = localStorage.getItem(ELocalStorageKey.WorkspaceId) || '' |
| | | const resp = await request.post(`${DRC_API_PREFIX}/workspaces/${workspaceId}/drc/exit`, body) |
| | | return resp.data |
| | | } |
| | |
| | | /* |
| | | * @Author: GuLiMmo 2820890765@qq.com |
| | | * @Date: 2024-03-12 17:59:03 |
| | | * @LastEditors: GuLiMmo 2820890765@qq.com |
| | | * @LastEditTime: 2024-08-28 14:24:20 |
| | | * @FilePath: /drone-web/src/components/g-map/use-dock-control.ts |
| | | * @Description: |
| | | * Copyright (c) 2024 by GuLiMmo, All Rights Reserved. |
| | | */ |
| | | import { message } from 'ant-design-vue' |
| | | import { ref } from 'vue' |
| | | import { postSendCmd } from '/@/api/device-cmd' |
| | | import { postSendCmd, postSendCmdAirConditionerOn } from '/@/api/device-cmd' |
| | | import { DeviceCmd, DeviceCmdItemAction } from '/@/types/device-cmd' |
| | | |
| | | export function useDockControl () { |
| | |
| | | SDR = 0, // sdr模式 |
| | | FourG_FUSION_MODE = 1, // 4G融合模式 |
| | | } |
| | | |
| | | // 空调模式 |
| | | export enum AirConditioningModeEnum { |
| | | CLOSE = 0, // 空闲模式 |
| | | COOL = 1, // 制冷 |
| | | HEAT = 2, // 制热 |
| | | DEHUMIDIFY = 3, // 除湿 |
| | | } |
| | |
| | | import { AlarmModeEnum, BatteryStoreModeEnum, DroneBatteryModeEnum, LinkWorkModeEnum } from '/@/types/airport-tsa' |
| | | import { AlarmModeEnum, BatteryStoreModeEnum, DroneBatteryModeEnum, LinkWorkModeEnum, AirConditioningModeEnum } from '/@/types/airport-tsa' |
| | | // 机场指令集 |
| | | export enum DeviceCmd { |
| | | // 简单指令 |
| | |
| | | BatteryStoreModeSwitch = 'battery_store_mode_switch', // 电池保养 |
| | | DroneBatteryModeSwitch = 'battery_maintenance_switch', // 飞行器电池保养 |
| | | SdrWorkModeSwitch = 'sdr_workmode_switch', // 增强图传 |
| | | AirConditioningModeSwitch = 'air_conditioner_mode_switch'// 空调模式开关 |
| | | } |
| | | |
| | | export type DeviceCmdItemAction = AlarmModeEnum | BatteryStoreModeEnum | DroneBatteryModeEnum | LinkWorkModeEnum |
| | | export type DeviceCmdItemAction = AlarmModeEnum | BatteryStoreModeEnum | DroneBatteryModeEnum | LinkWorkModeEnum | AirConditioningModeEnum |
| | | |
| | | export interface DeviceCmdItem{ |
| | | label: string, // 标题 |
| | |
| | | func: 'sdrWorkMode', |
| | | loading: false, |
| | | }, |
| | | { |
| | | label: '空调模式', |
| | | status: '关', |
| | | operateText: '打开', |
| | | cmdKey: DeviceCmd.AirConditioningModeSwitch, |
| | | action: AirConditioningModeEnum.COOL, |
| | | func: 'airConditionerSwitch', |
| | | loading: false, |
| | | } |
| | | ] |
| | | |
| | | export enum DeviceCmdStatusText { |
| | |
| | | SdrWorkModeFourGCloseText = '关闭中...', |
| | | SdrWorkModeFourGCloseFailedText = '开', |
| | | SdrWorkModeFourCloseBtnText = '开启', |
| | | |
| | | // 空调模式 |
| | | AirConditionerModeCoolNormalText = '关', |
| | | AirConditionerModeCoolInProgressText = '切换中...', |
| | | AirConditionerModeCoolFailedText = '切换失败', |
| | | AirConditionerModeHeatText = '制热', |
| | | AirConditionerModeCoolText = '制冷', |
| | | AirConditionerModeDehumdidfyText = '除湿', |
| | | } |
| | | |
| | | // cmd ws 消息状态 |
| | |
| | | import { DroneBatteryModeEnum, DroneBatteryStateEnum, LinkWorkModeEnum } from './../types/airport-tsa' |
| | | import { DroneBatteryModeEnum, DroneBatteryStateEnum, LinkWorkModeEnum, AirConditioningModeEnum } from './../types/airport-tsa' |
| | | import { DeviceInfoType } from '/@/types/device' |
| | | import { DeviceCmd, DeviceCmdItem, DeviceCmdExecuteInfo, DeviceCmdStatusText, DeviceCmdExecuteStatus } from '/@/types/device-cmd' |
| | | import { AirportStorage, CoverStateEnum, PutterStateEnum, ChargeStateEnum, SupplementLightStateEnum, AlarmModeEnum, BatteryStoreModeEnum } from '/@/types/airport-tsa' |
| | |
| | | getDroneBatteryMode(cmdItem, dock) |
| | | } else if (cmdItem.cmdKey === DeviceCmd.SdrWorkModeSwitch) { // 增强图传开关 |
| | | getSdrWorkNode(cmdItem, dock) |
| | | } else if (cmdItem.cmdKey === DeviceCmd.AirConditioningModeSwitch) { |
| | | airConditionerSwitch(cmdItem, dock) |
| | | } |
| | | }) |
| | | } |
| | |
| | | cmdItem.status = value |
| | | } |
| | | |
| | | // 空调模式开关 |
| | | function airConditionerSwitch (cmdItem: DeviceCmdItem, airportProperties: any) { |
| | | const conditionerState: number | string | any = airportProperties?.basic_osd?.air_conditioner?.air_conditioner_state || 0 |
| | | if (conditionerState === 0) { |
| | | cmdItem.status = DeviceCmdStatusText.AirConditionerModeCoolNormalText |
| | | } |
| | | if (conditionerState === 1) { |
| | | cmdItem.status = DeviceCmdStatusText.AirConditionerModeCoolText |
| | | cmdItem.action = AirConditioningModeEnum.CLOSE |
| | | } |
| | | if (conditionerState === 2) { |
| | | cmdItem.status = DeviceCmdStatusText.AirConditionerModeHeatText |
| | | cmdItem.action = AirConditioningModeEnum.CLOSE |
| | | } |
| | | if (conditionerState === 3) { |
| | | cmdItem.status = DeviceCmdStatusText.AirConditionerModeDehumdidfyText |
| | | cmdItem.action = AirConditioningModeEnum.CLOSE |
| | | } |
| | | } |
| | | |
| | | // 获取机场存储容量 |
| | | // { |
| | | // "total": 10000, // 单位:KB |