From 3667807a7b7418efc090ee3fa6a6b734bc3080bf Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Wed, 13 Sep 2023 20:36:29 +0800
Subject: [PATCH] Merge branch 'develop' of http://s16s652780.51mypc.cn:49896/r/yskj/iot_drone_web into develop
---
src/utils/device-cmd.ts | 207 +++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 190 insertions(+), 17 deletions(-)
diff --git a/src/utils/device-cmd.ts b/src/utils/device-cmd.ts
index b6c80dd..bc26ace 100644
--- a/src/utils/device-cmd.ts
+++ b/src/utils/device-cmd.ts
@@ -1,6 +1,7 @@
+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 } from '/@/types/airport-tsa'
+import { AirportStorage, CoverStateEnum, PutterStateEnum, ChargeStateEnum, SupplementLightStateEnum, AlarmModeEnum, BatteryStoreModeEnum } from '/@/types/airport-tsa'
import { getBytesObject } from './bytes'
import { DEFAULT_PLACEHOLDER } from './constants'
@@ -35,6 +36,14 @@
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)
}
})
}
@@ -58,7 +67,7 @@
// 舱盖开关
function getCoverState (cmdItem: DeviceCmdItem, airportProperties: any) {
- const coverState = airportProperties?.cover_state as CoverStateEnum
+ const coverState = airportProperties?.basic_osd?.cover_state as CoverStateEnum
if (coverState === CoverStateEnum.Close || coverState === CoverStateEnum.Failed) {
cmdItem.status = DeviceCmdStatusText.DeviceCoverCloseNormalText
@@ -77,7 +86,7 @@
// 推杆状态
function getPutterState (cmdItem: DeviceCmdItem, airportProperties: any) {
- const putterState = airportProperties?.putter_state as PutterStateEnum
+ const putterState = airportProperties?.basic_osd?.putter_state as PutterStateEnum
if (putterState === PutterStateEnum.Close || putterState === PutterStateEnum.Failed) {
cmdItem.status = DeviceCmdStatusText.DevicePutterCloseNormalText
cmdItem.operateText = DeviceCmdStatusText.DevicePutterCloseBtnText
@@ -95,7 +104,7 @@
// 充电状态
function getChargeState (cmdItem: DeviceCmdItem, airportProperties: any) {
- const chargeState = airportProperties?.drone_charge_state
+ const chargeState = airportProperties?.basic_osd?.drone_charge_state
const state = chargeState?.state as ChargeStateEnum
if (!state) return
if (state === ChargeStateEnum.Charge) {
@@ -115,7 +124,7 @@
// 机场存储格式化
function deviceFormat (cmdItem: DeviceCmdItem, airportProperties: any) {
- const airportStorage = airportProperties?.storage
+ const airportStorage = airportProperties?.basic_osd?.storage
const value = getAirportStorage(airportStorage)
cmdItem.status = value
}
@@ -150,7 +159,7 @@
// 补光灯状态
function getSupplementLightState (cmdItem: DeviceCmdItem, airportProperties: any) {
- const supplementLightState = airportProperties?.supplement_light_state
+ const supplementLightState = airportProperties?.basic_osd?.supplement_light_state
if (supplementLightState === SupplementLightStateEnum.Close) {
cmdItem.operateText = DeviceCmdStatusText.DeviceSupplementLightCloseBtnText
cmdItem.status = DeviceCmdStatusText.DeviceSupplementLightCloseNormalText
@@ -163,6 +172,69 @@
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
}
}
@@ -213,7 +285,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DeviceRebootInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DeviceRebootFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -224,7 +296,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DroneStatusOpenInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DroneStatusOpenFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -237,7 +309,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DroneStatusCloseInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DroneStatusCloseFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -250,7 +322,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DeviceCoverOpenInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DeviceCoverOpenFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -263,7 +335,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DeviceCoverCloseInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DeviceCoverCloseFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -276,7 +348,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DevicePutterOpenInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DevicePutterOpenFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -289,7 +361,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DevicePutterCloseInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DevicePutterCloseFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -302,7 +374,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DeviceChargeOpenInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DeviceChargeOpenFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -315,7 +387,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DeviceChargeCloseInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DeviceChargeCloseFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -328,7 +400,7 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DeviceFormatInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
cmdItem.status = DeviceCmdStatusText.DeviceFormatFailedText
cmdItem.loading = false
} else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -338,13 +410,114 @@
if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
cmdItem.status = DeviceCmdStatusText.DroneFormatInProgressText
cmdItem.loading = true
- } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+ } 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)
+}
--
Gitblit v1.9.3