import { DroneBatteryModeEnum, DroneBatteryStateEnum, LinkWorkModeEnum } 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'
|
import { getBytesObject } from './bytes'
|
import { DEFAULT_PLACEHOLDER } from './constants'
|
|
/**
|
* 根据osd 更新信息
|
* @param cmdList
|
* @param deviceInfo
|
* @returns
|
*/
|
export function updateDeviceCmdInfoByOsd (cmdList: DeviceCmdItem[], deviceInfo: DeviceInfoType) {
|
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)
|
}
|
})
|
}
|
|
// 飞行器开关机
|
function getDroneState (cmdItem: DeviceCmdItem, droneProperties: any) {
|
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: DeviceCmdItem, airportProperties: any) {
|
const coverState = airportProperties?.basic_osd?.cover_state as CoverStateEnum
|
|
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 getPutterState (cmdItem: DeviceCmdItem, airportProperties: any) {
|
const putterState = airportProperties?.basic_osd?.putter_state as PutterStateEnum
|
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 getChargeState (cmdItem: DeviceCmdItem, airportProperties: any) {
|
const chargeState = airportProperties?.basic_osd?.drone_charge_state
|
const state = chargeState?.state as ChargeStateEnum
|
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: DeviceCmdItem, airportProperties: any) {
|
const airportStorage = airportProperties?.basic_osd?.storage
|
const value = getAirportStorage(airportStorage)
|
cmdItem.status = value
|
}
|
|
// 机场存储格式化
|
function droneFormat (cmdItem: DeviceCmdItem, droneProperties: any) {
|
const droneStorage = droneProperties?.storage
|
const value = getAirportStorage(droneStorage)
|
cmdItem.status = value
|
}
|
|
// 获取机场存储容量
|
// {
|
// "total": 10000, // 单位:KB
|
// "used": 500
|
// }
|
export function getAirportStorage (storage: AirportStorage) {
|
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}`
|
}
|
|
function getBytes (bytes: number, index: number, fixed = 1) {
|
return (bytes / Math.pow(1024, index)).toFixed(fixed)
|
}
|
|
// 补光灯状态
|
function getSupplementLightState (cmdItem: DeviceCmdItem, airportProperties: any) {
|
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: DeviceCmdItem, airportProperties: any) {
|
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: DeviceCmdItem, airportProperties: any) {
|
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: DeviceCmdItem, airportProperties: any) {
|
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: DeviceCmdItem, airportProperties: any) {
|
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
|
}
|
}
|
|
/**
|
* 交换指令
|
* @param cmd
|
*/
|
function exchangeDeviceCmd (cmdItem: DeviceCmdItem) {
|
if (cmdItem.oppositeCmdKey) {
|
const oppositeCmdKey = cmdItem.oppositeCmdKey
|
cmdItem.oppositeCmdKey = cmdItem.cmdKey
|
cmdItem.cmdKey = oppositeCmdKey
|
}
|
}
|
|
// /**
|
// * 更新简单指令发送情况更新信息
|
// * @param cmd
|
// */
|
// export function updateDeviceSingleCmdInfo (cmdItem: DeviceCmdItem) {
|
// // 补光灯
|
// if (cmdItem.cmdKey === DeviceCmd.SupplementLightOpen) {
|
// cmdItem.status = DeviceCmdStatusText.DeviceSupplementLightOpenNormalText
|
// cmdItem.operateText = DeviceCmdStatusText.DeviceSupplementLightOpenBtnText
|
// exchangeDeviceCmd(cmdItem)
|
// } else if (cmdItem.cmdKey === DeviceCmd.SupplementLightClose) {
|
// cmdItem.status = DeviceCmdStatusText.DeviceSupplementLightCloseNormalText
|
// cmdItem.operateText = DeviceCmdStatusText.DeviceSupplementLightCloseBtnText
|
// exchangeDeviceCmd(cmdItem)
|
// }
|
// }
|
|
/**
|
* 根据指令执行消息更新信息
|
* @param cmd
|
* @param deviceCmdExecuteInfo
|
* @returns
|
*/
|
export function updateDeviceCmdInfoByExecuteInfo (cmdList: DeviceCmdItem[], deviceCmdExecuteInfos?: DeviceCmdExecuteInfo[]) {
|
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 status
|
* @returns
|
*/
|
function isExecuteFailed (status: DeviceCmdExecuteStatus) {
|
return [DeviceCmdExecuteStatus.Canceled, DeviceCmdExecuteStatus.Failed, DeviceCmdExecuteStatus.Timeout].includes(status)
|
}
|