import { DeviceCmd, DeviceCmdStatusText,DeviceCmdExecuteStatus } from '@/types/device-cmd';
|
import {
|
CoverStateEnum,
|
PutterStateEnum,
|
ChargeStateEnum,
|
SupplementLightStateEnum,
|
AlarmModeEnum,
|
BatteryStoreModeEnum,
|
DroneBatteryStateEnum,
|
LinkWorkModeEnum,
|
AirConditioningModeEnum,
|
DroneBatteryModeEnum
|
} from '@/types/airport-tsa';
|
import { DEFAULT_PLACEHOLDER, SIZES as byteSizes, BYTE_SIZES } from './constants'
|
|
/**
|
* 根据osd 更新信息
|
* @param cmdList
|
* @param deviceInfo
|
* @returns
|
*/
|
export function updateDeviceCmdInfoByOsd(cmdList, deviceInfo) {
|
const { device, dock, gateway } = deviceInfo || {};
|
if (!cmdList || cmdList.length < 1) {
|
return;
|
}
|
cmdList.forEach(cmdItem => {
|
if (cmdItem.loading) {
|
return;
|
}
|
if (cmdItem.cmdKey === DeviceCmd.DeviceReboot) {
|
// 重启
|
// console.log('DeviceReboot')
|
} else if (cmdItem.cmdKey === DeviceCmd.DroneOpen || cmdItem.cmdKey === DeviceCmd.DroneClose) {
|
// 飞行器开关机
|
getDroneState(cmdItem, device);
|
} else if (cmdItem.cmdKey === DeviceCmd.CoverOpen || cmdItem.cmdKey === DeviceCmd.CoverClose) {
|
// 舱盖开关
|
getCoverState(cmdItem, dock);
|
} else if (
|
cmdItem.cmdKey === DeviceCmd.PutterOpen ||
|
cmdItem.cmdKey === DeviceCmd.PutterClose
|
) {
|
// 推杆闭合展开
|
getPutterState(cmdItem, dock);
|
} else if (
|
cmdItem.cmdKey === DeviceCmd.ChargeOpen ||
|
cmdItem.cmdKey === DeviceCmd.ChargeClose
|
) {
|
// 充电状态
|
getChargeState(cmdItem, dock);
|
} else if (cmdItem.cmdKey === DeviceCmd.DeviceFormat) {
|
// 机场存储
|
deviceFormat(cmdItem, dock);
|
} else if (cmdItem.cmdKey === DeviceCmd.DroneFormat) {
|
// 飞行器存储
|
droneFormat(cmdItem, device);
|
} else if (
|
cmdItem.cmdKey === DeviceCmd.SupplementLightOpen ||
|
cmdItem.cmdKey === DeviceCmd.SupplementLightClose
|
) {
|
// 补光灯开关
|
getSupplementLightState(cmdItem, dock);
|
} else if (cmdItem.cmdKey === DeviceCmd.AlarmStateSwitch) {
|
// 声光报警
|
getAlarmState(cmdItem, dock);
|
} else if (cmdItem.cmdKey === DeviceCmd.BatteryStoreModeSwitch) {
|
// 电池保养
|
getBatteryStoreMode(cmdItem, dock);
|
} else if (cmdItem.cmdKey === DeviceCmd.DroneBatteryModeSwitch) {
|
// 飞行器电池保养
|
getDroneBatteryMode(cmdItem, dock);
|
} else if (cmdItem.cmdKey === DeviceCmd.SdrWorkModeSwitch) {
|
// 增强图传开关
|
getSdrWorkNode(cmdItem, dock);
|
} else if (cmdItem.cmdKey === DeviceCmd.AirConditioningModeSwitch) {
|
// 空调模式开关
|
getAirConditionerSwitch(cmdItem, dock);
|
}
|
});
|
}
|
|
// 推杆状态
|
function getPutterState(cmdItem, airportProperties) {
|
const putterState = airportProperties?.basic_osd?.putter_state;
|
if (putterState === PutterStateEnum.Close || putterState === PutterStateEnum.Failed) {
|
cmdItem.status = DeviceCmdStatusText.DevicePutterCloseNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DevicePutterCloseBtnText;
|
if (cmdItem.cmdKey !== DeviceCmd.PutterOpen) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
} else if (putterState === PutterStateEnum.Open || putterState === PutterStateEnum.HalfOpen) {
|
cmdItem.status = DeviceCmdStatusText.DevicePutterOpenNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DevicePutterOpenBtnText;
|
if (cmdItem.cmdKey !== DeviceCmd.PutterClose) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
}
|
}
|
// 飞行器开关机
|
function getDroneState(cmdItem, droneProperties) {
|
if (!droneProperties) {
|
cmdItem.status = DeviceCmdStatusText.DroneStatusCloseNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DroneStatusCloseBtnText;
|
if (cmdItem.cmdKey !== DeviceCmd.DroneOpen) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
} else {
|
cmdItem.status = DeviceCmdStatusText.DroneStatusOpenNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DroneStatusOpenBtnText;
|
if (cmdItem.cmdKey !== DeviceCmd.DroneClose) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
}
|
}
|
|
// 舱盖开关
|
function getCoverState(cmdItem, airportProperties) {
|
const coverState = airportProperties?.basic_osd?.cover_state;
|
|
if (coverState === CoverStateEnum.Close || coverState === CoverStateEnum.Failed) {
|
cmdItem.status = DeviceCmdStatusText.DeviceCoverCloseNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DeviceCoverCloseBtnText;
|
if (cmdItem.cmdKey !== DeviceCmd.CoverOpen) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
} else if (coverState === CoverStateEnum.Open || coverState === CoverStateEnum.HalfOpen) {
|
cmdItem.status = DeviceCmdStatusText.DeviceCoverOpenNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DeviceCoverOpenBtnText;
|
if (cmdItem.cmdKey !== DeviceCmd.CoverClose) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
}
|
}
|
|
// 充电状态
|
function getChargeState(cmdItem, airportProperties) {
|
const chargeState = airportProperties?.basic_osd?.drone_charge_state;
|
const state = chargeState?.state;
|
if (!state) return;
|
if (state === ChargeStateEnum.Charge) {
|
cmdItem.status = DeviceCmdStatusText.DeviceChargeOpenNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DeviceChargeOpenBtnText;
|
if (cmdItem.cmdKey !== DeviceCmd.ChargeClose) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
} else if (state === ChargeStateEnum.NotCharge) {
|
cmdItem.status = DeviceCmdStatusText.DeviceChargeCloseNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DeviceChargeCloseBtnText;
|
if (cmdItem.cmdKey !== DeviceCmd.ChargeOpen) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
}
|
}
|
|
// 机场存储格式化
|
function deviceFormat(cmdItem, airportProperties) {
|
const airportStorage = airportProperties?.basic_osd?.storage;
|
const value = getAirportStorage(airportStorage);
|
cmdItem.status = value;
|
}
|
|
// 机场存储格式化
|
function droneFormat(cmdItem, droneProperties) {
|
const droneStorage = droneProperties?.storage;
|
const value = getAirportStorage(droneStorage);
|
cmdItem.status = value;
|
}
|
|
// 获取机场存储容量
|
// {
|
// "total": 10000, // 单位:KB
|
// "used": 500
|
// }
|
export function getAirportStorage(storage) {
|
if (!storage) {
|
return DEFAULT_PLACEHOLDER;
|
}
|
const total = storage.total;
|
const used = storage.used;
|
const byteObj = getBytesObject(total * 1024);
|
const _total = byteObj.value;
|
const _used = getBytes(used * 1024, byteObj.index);
|
return `${_used}/${_total} ${byteObj.size}`;
|
}
|
|
// 获取转化后数据及单位
|
export function getBytesObject(bytes, holder = DEFAULT_PLACEHOLDER, fix = 1) {
|
if (isNaN(bytes) || bytes === 0) {
|
return {
|
value: holder,
|
size: '',
|
index: -1,
|
};
|
}
|
// 兼容负数
|
let prefix = '';
|
if (bytes < 0) {
|
bytes = 0 - bytes;
|
prefix = '-';
|
}
|
const k = 1024;
|
const sizes = byteSizes; // ['B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']
|
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
return {
|
value: prefix + (bytes / Math.pow(k, i)).toFixed(fix),
|
size: sizes[i],
|
index: i,
|
};
|
}
|
|
function getBytes(bytes, index, fixed = 1) {
|
return (bytes / Math.pow(1024, index)).toFixed(fixed);
|
}
|
|
// 补光灯状态
|
function getSupplementLightState(cmdItem, airportProperties) {
|
const supplementLightState = airportProperties?.basic_osd?.supplement_light_state;
|
if (supplementLightState === SupplementLightStateEnum.Close) {
|
cmdItem.operateText = DeviceCmdStatusText.DeviceSupplementLightCloseBtnText;
|
cmdItem.status = DeviceCmdStatusText.DeviceSupplementLightCloseNormalText;
|
if (cmdItem.cmdKey !== DeviceCmd.SupplementLightOpen) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
} else if (supplementLightState === SupplementLightStateEnum.Open) {
|
cmdItem.operateText = DeviceCmdStatusText.DeviceSupplementLightOpenBtnText;
|
cmdItem.status = DeviceCmdStatusText.DeviceSupplementLightOpenNormalText;
|
if (cmdItem.cmdKey !== DeviceCmd.SupplementLightClose) {
|
exchangeDeviceCmd(cmdItem);
|
}
|
}
|
}
|
|
// 声光报警
|
function getAlarmState(cmdItem, airportProperties) {
|
const alarmState = airportProperties?.basic_osd?.alarm_state;
|
if (alarmState === AlarmModeEnum.CLOSE) {
|
cmdItem.operateText = DeviceCmdStatusText.AlarmStateCloseBtnText;
|
cmdItem.status = DeviceCmdStatusText.AlarmStateCloseNormalText;
|
cmdItem.action = AlarmModeEnum.OPEN;
|
} else if (alarmState === AlarmModeEnum.OPEN) {
|
cmdItem.operateText = DeviceCmdStatusText.AlarmStateOpenBtnText;
|
cmdItem.status = DeviceCmdStatusText.AlarmStateOpenNormalText;
|
cmdItem.action = AlarmModeEnum.CLOSE;
|
}
|
}
|
|
// 机场电池模式
|
function getBatteryStoreMode(cmdItem, airportProperties) {
|
const batteryStoreMode = airportProperties?.basic_osd?.battery_store_mode;
|
if (batteryStoreMode === BatteryStoreModeEnum.BATTERY_PLAN_STORE) {
|
cmdItem.operateText = DeviceCmdStatusText.BatteryStoreModePlanBtnText;
|
cmdItem.status = DeviceCmdStatusText.BatteryStoreModePlanNormalText;
|
cmdItem.action = BatteryStoreModeEnum.BATTERY_EMERGENCY_STORE;
|
} else if (batteryStoreMode === BatteryStoreModeEnum.BATTERY_EMERGENCY_STORE) {
|
cmdItem.operateText = DeviceCmdStatusText.BatteryStoreModeEmergencyBtnText;
|
cmdItem.status = DeviceCmdStatusText.BatteryStoreModeEmergencyNormalText;
|
cmdItem.action = BatteryStoreModeEnum.BATTERY_PLAN_STORE;
|
}
|
}
|
|
// 飞行器电池保养
|
function getDroneBatteryMode(cmdItem, airportProperties) {
|
const maintenanceState =
|
airportProperties?.work_osd?.drone_battery_maintenance_info?.maintenance_state;
|
if (maintenanceState === DroneBatteryStateEnum.MaintenanceInProgress) {
|
cmdItem.operateText = DeviceCmdStatusText.DroneBatteryModeCloseBtnText;
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceInProgressText;
|
cmdItem.action = DroneBatteryModeEnum.CLOSE;
|
cmdItem.disabled = false;
|
} else if (maintenanceState === DroneBatteryStateEnum.NoMaintenanceRequired) {
|
cmdItem.operateText = DeviceCmdStatusText.DroneBatteryModeOpenBtnText;
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNotNeedText;
|
cmdItem.action = DroneBatteryModeEnum.OPEN;
|
cmdItem.disabled = true;
|
} else if (maintenanceState === DroneBatteryStateEnum.MaintenanceRequired) {
|
cmdItem.operateText = DeviceCmdStatusText.DroneBatteryModeOpenBtnText;
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNeedText;
|
cmdItem.action = DroneBatteryModeEnum.OPEN;
|
cmdItem.disabled = false;
|
}
|
}
|
|
// 增强图传开关
|
function getSdrWorkNode(cmdItem, airportProperties) {
|
const linkWorkMode = airportProperties?.link_osd?.wireless_link?.link_workmode;
|
if (linkWorkMode === LinkWorkModeEnum.SDR) {
|
cmdItem.operateText = DeviceCmdStatusText.SdrWorkModeFourCloseBtnText;
|
cmdItem.status = DeviceCmdStatusText.SdrWorkModeFourGCloseNormalText;
|
cmdItem.action = LinkWorkModeEnum.FourG_FUSION_MODE;
|
} else if (linkWorkMode === LinkWorkModeEnum.FourG_FUSION_MODE) {
|
cmdItem.operateText = DeviceCmdStatusText.SdrWorkModeFourGOpenBtnText;
|
cmdItem.status = DeviceCmdStatusText.SdrWorkModeFourGOpenNormalText;
|
cmdItem.action = LinkWorkModeEnum.SDR;
|
}
|
}
|
|
// 空调模式开关
|
function getAirConditionerSwitch (cmdItem, airportProperties) {
|
const conditionerState = 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
|
}
|
}
|
|
/**
|
* 根据指令执行消息更新信息
|
* @param cmd
|
* @param deviceCmdExecuteInfo
|
* @returns
|
*/
|
export function updateDeviceCmdInfoByExecuteInfo(cmdList, deviceCmdExecuteInfos) {
|
if (!deviceCmdExecuteInfos || !cmdList) {
|
return;
|
}
|
cmdList.forEach(cmdItem => {
|
// 获取当前设备相应指令信息
|
const deviceCmdExecuteInfo = deviceCmdExecuteInfos.find(
|
cmdExecuteInfo => cmdExecuteInfo.biz_code === cmdItem.cmdKey
|
);
|
if (deviceCmdExecuteInfo) {
|
if (cmdItem.cmdKey === DeviceCmd.DeviceReboot) {
|
// 重启
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DeviceRebootInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DeviceRebootFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DeviceRebootNormalText;
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.DroneOpen) {
|
// 飞行器开关机
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DroneStatusOpenInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DroneStatusOpenFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DroneStatusOpenNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DroneStatusOpenBtnText;
|
exchangeDeviceCmd(cmdItem);
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.DroneClose) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DroneStatusCloseInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DroneStatusCloseFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DroneStatusCloseNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DroneStatusCloseBtnText;
|
exchangeDeviceCmd(cmdItem);
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.CoverOpen) {
|
// 舱盖开关
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DeviceCoverOpenInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DeviceCoverOpenFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DeviceCoverOpenNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DeviceCoverOpenBtnText;
|
exchangeDeviceCmd(cmdItem);
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.CoverClose) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DeviceCoverCloseInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DeviceCoverCloseFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DeviceCoverCloseNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DeviceCoverCloseBtnText;
|
exchangeDeviceCmd(cmdItem);
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.PutterOpen) {
|
// 推杆闭合展开
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DevicePutterOpenInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DevicePutterOpenFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DevicePutterOpenNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DevicePutterOpenBtnText;
|
exchangeDeviceCmd(cmdItem);
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.PutterClose) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DevicePutterCloseInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DevicePutterCloseFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DevicePutterCloseNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DevicePutterCloseBtnText;
|
exchangeDeviceCmd(cmdItem);
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.ChargeOpen) {
|
// 充电状态
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DeviceChargeOpenInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DeviceChargeOpenFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DeviceChargeOpenNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DeviceChargeOpenBtnText;
|
exchangeDeviceCmd(cmdItem);
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.ChargeClose) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DeviceChargeCloseInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DeviceChargeCloseFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DeviceChargeCloseNormalText;
|
cmdItem.operateText = DeviceCmdStatusText.DeviceChargeCloseBtnText;
|
exchangeDeviceCmd(cmdItem);
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.DeviceFormat) {
|
// 机场存储
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DeviceFormatInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DeviceFormatFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.DroneFormat) {
|
// 飞行器存储
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DroneFormatInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DroneFormatFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.AlarmStateSwitch) {
|
// 机场声光报警
|
if (cmdItem.action === AlarmModeEnum.CLOSE) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.AlarmStateCloseText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.AlarmStateCloseFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.action === AlarmModeEnum.OPEN) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.AlarmStateOpenText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.AlarmStateOpenFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.loading = false;
|
}
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.BatteryStoreModeSwitch) {
|
// 电池保养
|
if (cmdItem.action === BatteryStoreModeEnum.BATTERY_PLAN_STORE) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.BatteryStoreModePlanText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.BatteryStoreModePlanFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.action === BatteryStoreModeEnum.BATTERY_EMERGENCY_STORE) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.BatteryStoreModeEmergencyText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.BatteryStoreModeEmergencyFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.loading = false;
|
}
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.DroneBatteryModeSwitch) {
|
// 飞行器电池保养
|
if (cmdItem.action === DroneBatteryModeEnum.OPEN) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNeedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNotNeedText;
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.action === DroneBatteryModeEnum.CLOSE) {
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceInProgressText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceInProgressText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNeedText;
|
cmdItem.loading = false;
|
}
|
}
|
} else if (cmdItem.cmdKey === DeviceCmd.SdrWorkModeSwitch) {
|
// 增强图传
|
if (cmdItem.action === LinkWorkModeEnum.SDR) {
|
// 关闭
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.SdrWorkModeFourGCloseText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.SdrWorkModeFourGCloseFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.SdrWorkModeFourGCloseNormalText;
|
cmdItem.loading = false;
|
}
|
} else if (cmdItem.action === LinkWorkModeEnum.FourG_FUSION_MODE) {
|
// 开启
|
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
|
cmdItem.status = DeviceCmdStatusText.SdrWorkModeFourGOpenText;
|
cmdItem.loading = true;
|
} else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
|
cmdItem.status = DeviceCmdStatusText.SdrWorkModeFourGOpenFailedText;
|
cmdItem.loading = false;
|
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
|
cmdItem.status = DeviceCmdStatusText.SdrWorkModeFourGOpenNormalText;
|
cmdItem.loading = false;
|
}
|
}
|
}
|
}
|
});
|
}
|
|
/**
|
* 交换指令
|
* @param cmd
|
*/
|
function exchangeDeviceCmd(cmdItem) {
|
if (cmdItem.oppositeCmdKey) {
|
const oppositeCmdKey = cmdItem.oppositeCmdKey;
|
cmdItem.oppositeCmdKey = cmdItem.cmdKey;
|
cmdItem.cmdKey = oppositeCmdKey;
|
}
|
}
|
|
/**
|
* 判断是否执行失败
|
* @param status
|
* @returns
|
*/
|
function isExecuteFailed(status) {
|
return [
|
DeviceCmdExecuteStatus.Canceled,
|
DeviceCmdExecuteStatus.Failed,
|
DeviceCmdExecuteStatus.Timeout,
|
].includes(status);
|
}
|