From 83d4c07a67e7588e3938237cfad9eaa6be5ea6c5 Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Mon, 12 Dec 2022 19:00:47 +0800
Subject: [PATCH] initial v1.3.1

---
 src/utils/device-cmd.ts |   95 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 72 insertions(+), 23 deletions(-)

diff --git a/src/utils/device-cmd.ts b/src/utils/device-cmd.ts
index 3ffe75f..8613e05 100644
--- a/src/utils/device-cmd.ts
+++ b/src/utils/device-cmd.ts
@@ -1,4 +1,4 @@
-import { DroneBatteryModeEnum, DroneBatteryStateEnum } from './../types/airport-tsa';
+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'
@@ -42,6 +42,8 @@
       getBatteryStoreMode(cmdItem, dock)
     } else if (cmdItem.cmdKey === DeviceCmd.DroneBatteryModeSwitch) { // 飞行器电池保养
       getDroneBatteryMode(cmdItem, dock)
+    } else if (cmdItem.cmdKey === DeviceCmd.SdrWorkModeSwitch) { // 增强图传开关
+      getSdrWorkNode(cmdItem, dock)
     }
   })
 }
@@ -211,14 +213,28 @@
     cmdItem.disabled = false
   } else if (maintenanceState === DroneBatteryStateEnum.NoMaintenanceRequired) {
     cmdItem.operateText = DeviceCmdStatusText.DroneBatteryModeOpenBtnText
-    cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNeedText
+    cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNotNeedText
     cmdItem.action = DroneBatteryModeEnum.OPEN
     cmdItem.disabled = true
   } else if (maintenanceState === DroneBatteryStateEnum.MaintenanceRequired) {
     cmdItem.operateText = DeviceCmdStatusText.DroneBatteryModeOpenBtnText
-    cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNotNeedText
+    cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNeedText
     cmdItem.action = DroneBatteryModeEnum.OPEN
     cmdItem.disabled = false
+  }
+}
+
+// 增强图传开关
+function getSdrWorkNode (cmdItem: DeviceCmdItem, airportProperties: any) {
+  const linkWorkMode = airportProperties?.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
   }
 }
 
@@ -269,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) {
@@ -280,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) {
@@ -293,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) {
@@ -306,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) {
@@ -319,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) {
@@ -332,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) {
@@ -345,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) {
@@ -358,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) {
@@ -371,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) {
@@ -384,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) {
@@ -394,7 +410,7 @@
         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) {
@@ -405,7 +421,7 @@
           if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
             cmdItem.status = DeviceCmdStatusText.AlarmStateCloseText
             cmdItem.loading = true
-          } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+          } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
             cmdItem.status = DeviceCmdStatusText.AlarmStateCloseFailedText
             cmdItem.loading = false
           } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -415,7 +431,7 @@
           if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
             cmdItem.status = DeviceCmdStatusText.AlarmStateOpenText
             cmdItem.loading = true
-          } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+          } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
             cmdItem.status = DeviceCmdStatusText.AlarmStateOpenFailedText
             cmdItem.loading = false
           } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -427,7 +443,7 @@
           if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
             cmdItem.status = DeviceCmdStatusText.BatteryStoreModePlanText
             cmdItem.loading = true
-          } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+          } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
             cmdItem.status = DeviceCmdStatusText.BatteryStoreModePlanFailedText
             cmdItem.loading = false
           } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -437,7 +453,7 @@
           if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
             cmdItem.status = DeviceCmdStatusText.BatteryStoreModeEmergencyText
             cmdItem.loading = true
-          } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+          } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
             cmdItem.status = DeviceCmdStatusText.BatteryStoreModeEmergencyFailedText
             cmdItem.loading = false
           } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -448,19 +464,19 @@
         if (cmdItem.action === DroneBatteryModeEnum.OPEN) {
           if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
             cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceInProgressText
-            // cmdItem.loading = true
-          } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+            cmdItem.loading = true
+          } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
             cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNeedText
-            // cmdItem.loading = false
+            cmdItem.loading = false
           } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
             cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceNotNeedText
-            // cmdItem.loading = false
+            cmdItem.loading = false
           }
         } else if (cmdItem.action === DroneBatteryModeEnum.CLOSE) {
           if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.InProgress) {
             cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceInProgressText
             cmdItem.loading = true
-          } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.Failed) {
+          } else if (isExecuteFailed(deviceCmdExecuteInfo.output.status)) {
             cmdItem.status = DeviceCmdStatusText.DroneBatteryModeMaintenanceInProgressText
             cmdItem.loading = false
           } else if (deviceCmdExecuteInfo.output.status === DeviceCmdExecuteStatus.OK) {
@@ -468,7 +484,40 @@
             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