diff --git a/pom.xml b/pom.xml
index 74311d5..55c7f4b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,19 @@
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
org.thingsboard
rest-client
@@ -51,30 +64,5 @@
3.14.0
-
- junit
- junit
- 3.8.1
- test
-
-
- org.testng
- testng
- 7.4.0
- compile
-
-
- org.testng
- testng
- 7.4.0
- compile
-
-
- org.testng
- testng
- 7.4.0
- compile
-
-
diff --git a/src/main/java/com/tuoheng/ThingsboardClientApplication.java b/src/main/java/com/tuoheng/ThingsboardClientApplication.java
new file mode 100644
index 0000000..2ab3dfe
--- /dev/null
+++ b/src/main/java/com/tuoheng/ThingsboardClientApplication.java
@@ -0,0 +1,22 @@
+package com.tuoheng;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * Thingsboard Client Demo 主启动类
+ *
+ * @SpringBootApplication 包含了以下注解:
+ * - @Configuration: 标记为配置类
+ * - @EnableAutoConfiguration: 启用自动配置
+ * - @ComponentScan: 自动扫描当前包及子包下的所有组件
+ *
+ * 放在 com.tuoheng 包下,可以自动扫描到 com.tuoheng.machine.* 下的所有组件
+ */
+@SpringBootApplication
+public class ThingsboardClientApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(ThingsboardClientApplication.class, args);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/airport/OfflineAction.java b/src/main/java/com/tuoheng/machine/action/airport/OfflineAction.java
new file mode 100644
index 0000000..04d5134
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/airport/OfflineAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.airport;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base action for machine offline handling; platform implementations extend this.
+ */
+public abstract class OfflineAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/airport/OnlineAction.java b/src/main/java/com/tuoheng/machine/action/airport/OnlineAction.java
new file mode 100644
index 0000000..356958c
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/airport/OnlineAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.airport;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base action for machine online handling; platform implementations extend this.
+ */
+public abstract class OnlineAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/cover/CloseCoverAction.java b/src/main/java/com/tuoheng/machine/action/cover/CloseCoverAction.java
new file mode 100644
index 0000000..505a6eb
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/cover/CloseCoverAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.cover;
+
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.CoverState;
+
+/**
+ * Base action for closing the cover; platform implementations extend this.
+ */
+public abstract class CloseCoverAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/cover/CoverClosedAction.java b/src/main/java/com/tuoheng/machine/action/cover/CoverClosedAction.java
new file mode 100644
index 0000000..2e37956
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/cover/CoverClosedAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.cover;
+
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.CoverState;
+
+/**
+ * Base action for cover-closed handling; platform implementations extend this.
+ */
+public abstract class CoverClosedAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/cover/CoverOpenedAction.java b/src/main/java/com/tuoheng/machine/action/cover/CoverOpenedAction.java
new file mode 100644
index 0000000..cc35fa9
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/cover/CoverOpenedAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.cover;
+
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.CoverState;
+
+/**
+ * Base action for cover-opened handling; platform implementations extend this.
+ */
+public abstract class CoverOpenedAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/cover/OpenCoverAction.java b/src/main/java/com/tuoheng/machine/action/cover/OpenCoverAction.java
new file mode 100644
index 0000000..1c8eca0
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/cover/OpenCoverAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.cover;
+
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.CoverState;
+
+/**
+ * Base action for opening the cover; platform implementations extend this.
+ */
+public abstract class OpenCoverAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/debug/CloseDebugModeAction.java b/src/main/java/com/tuoheng/machine/action/debug/CloseDebugModeAction.java
new file mode 100644
index 0000000..44c7699
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/debug/CloseDebugModeAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.debug;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base action for closing debug mode; platform implementations extend this.
+ */
+public abstract class CloseDebugModeAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/debug/OpenDebugModeAction.java b/src/main/java/com/tuoheng/machine/action/debug/OpenDebugModeAction.java
new file mode 100644
index 0000000..930b413
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/debug/OpenDebugModeAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.debug;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base action for opening debug mode; platform implementations extend this.
+ */
+public abstract class OpenDebugModeAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/drc/EnterAction.java b/src/main/java/com/tuoheng/machine/action/drc/EnterAction.java
new file mode 100644
index 0000000..3759b80
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drc/EnterAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drc;
+
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DrcState;
+
+/**
+ * Base action for DRC enter handling; platform implementations extend this.
+ */
+public abstract class EnterAction implements PlatformAction {
+}
diff --git a/src/main/java/com/tuoheng/machine/action/drc/EnteredAction.java b/src/main/java/com/tuoheng/machine/action/drc/EnteredAction.java
new file mode 100644
index 0000000..17addff
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drc/EnteredAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drc;
+
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DrcState;
+
+/**
+ * Base action for DRC entered handling; platform implementations extend this.
+ */
+public abstract class EnteredAction implements PlatformAction {
+}
diff --git a/src/main/java/com/tuoheng/machine/action/drc/ExitAction.java b/src/main/java/com/tuoheng/machine/action/drc/ExitAction.java
new file mode 100644
index 0000000..0bd8637
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drc/ExitAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drc;
+
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DrcState;
+
+/**
+ * Base action for DRC exit handling; platform implementations extend this.
+ */
+public abstract class ExitAction implements PlatformAction {
+}
diff --git a/src/main/java/com/tuoheng/machine/action/drc/ExitedAction.java b/src/main/java/com/tuoheng/machine/action/drc/ExitedAction.java
new file mode 100644
index 0000000..b2cea97
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drc/ExitedAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drc;
+
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DrcState;
+
+/**
+ * Base action for DRC exited handling; platform implementations extend this.
+ */
+public abstract class ExitedAction implements PlatformAction {
+}
diff --git a/src/main/java/com/tuoheng/machine/action/drone/ArriveAction.java b/src/main/java/com/tuoheng/machine/action/drone/ArriveAction.java
new file mode 100644
index 0000000..8375364
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/ArriveAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone arrive at destination handling; platform implementations extend this.
+ */
+public abstract class ArriveAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/CancelPointAction.java b/src/main/java/com/tuoheng/machine/action/drone/CancelPointAction.java
new file mode 100644
index 0000000..570c674
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/CancelPointAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone cancel point operation handling; platform implementations extend this.
+ */
+public abstract class CancelPointAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/EmergencyStopAction.java b/src/main/java/com/tuoheng/machine/action/drone/EmergencyStopAction.java
new file mode 100644
index 0000000..c63417d
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/EmergencyStopAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone emergency stop handling; platform implementations extend this.
+ */
+public abstract class EmergencyStopAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/OfflineAction.java b/src/main/java/com/tuoheng/machine/action/drone/OfflineAction.java
new file mode 100644
index 0000000..255c2ff
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/OfflineAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone offline handling; platform implementations extend this.
+ */
+public abstract class OfflineAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/PointFlyingCompletedAction.java b/src/main/java/com/tuoheng/machine/action/drone/PointFlyingCompletedAction.java
new file mode 100644
index 0000000..5515d7f
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/PointFlyingCompletedAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone point flying completed handling; platform implementations extend this.
+ */
+public abstract class PointFlyingCompletedAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/PointPrepareCompletedAction.java b/src/main/java/com/tuoheng/machine/action/drone/PointPrepareCompletedAction.java
new file mode 100644
index 0000000..106c066
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/PointPrepareCompletedAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone point prepare completed handling; platform implementations extend this.
+ */
+public abstract class PointPrepareCompletedAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/PointToFlyingAction.java b/src/main/java/com/tuoheng/machine/action/drone/PointToFlyingAction.java
new file mode 100644
index 0000000..0b1a6e9
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/PointToFlyingAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone point to flying handling; platform implementations extend this.
+ */
+public abstract class PointToFlyingAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/PointToReturnAction.java b/src/main/java/com/tuoheng/machine/action/drone/PointToReturnAction.java
new file mode 100644
index 0000000..d646033
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/PointToReturnAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone point to return handling; platform implementations extend this.
+ */
+public abstract class PointToReturnAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/PrepareCompletedAction.java b/src/main/java/com/tuoheng/machine/action/drone/PrepareCompletedAction.java
new file mode 100644
index 0000000..3b1e8d4
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/PrepareCompletedAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone prepare completed handling; platform implementations extend this.
+ */
+public abstract class PrepareCompletedAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/ResumeFlyingAction.java b/src/main/java/com/tuoheng/machine/action/drone/ResumeFlyingAction.java
new file mode 100644
index 0000000..d4faf5e
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/ResumeFlyingAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone resume flying handling; platform implementations extend this.
+ */
+public abstract class ResumeFlyingAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/ResumeReturnAction.java b/src/main/java/com/tuoheng/machine/action/drone/ResumeReturnAction.java
new file mode 100644
index 0000000..96604c5
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/ResumeReturnAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone resume return handling; platform implementations extend this.
+ */
+public abstract class ResumeReturnAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/ReturnCompletedAction.java b/src/main/java/com/tuoheng/machine/action/drone/ReturnCompletedAction.java
new file mode 100644
index 0000000..11b15fa
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/ReturnCompletedAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone return completed handling; platform implementations extend this.
+ */
+public abstract class ReturnCompletedAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/ReturnEmergencyStopAction.java b/src/main/java/com/tuoheng/machine/action/drone/ReturnEmergencyStopAction.java
new file mode 100644
index 0000000..3547efc
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/ReturnEmergencyStopAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone return emergency stop handling; platform implementations extend this.
+ */
+public abstract class ReturnEmergencyStopAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/StartFlyingAction.java b/src/main/java/com/tuoheng/machine/action/drone/StartFlyingAction.java
new file mode 100644
index 0000000..9e335ea
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/StartFlyingAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone start flying handling; platform implementations extend this.
+ */
+public abstract class StartFlyingAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/StartPointingAction.java b/src/main/java/com/tuoheng/machine/action/drone/StartPointingAction.java
new file mode 100644
index 0000000..51b0f5d
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/StartPointingAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone start pointing operation handling; platform implementations extend this.
+ */
+public abstract class StartPointingAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/StartPrepareAction.java b/src/main/java/com/tuoheng/machine/action/drone/StartPrepareAction.java
new file mode 100644
index 0000000..3b075de
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/StartPrepareAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone start prepare handling; platform implementations extend this.
+ */
+public abstract class StartPrepareAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/drone/StartReturnAction.java b/src/main/java/com/tuoheng/machine/action/drone/StartReturnAction.java
new file mode 100644
index 0000000..20d8d28
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/drone/StartReturnAction.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.action.drone;
+
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.DroneState;
+
+/**
+ * Base action for drone start return handling; platform implementations extend this.
+ */
+public abstract class StartReturnAction implements PlatformAction {
+}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/machine/action/reboot/RebootAction.java b/src/main/java/com/tuoheng/machine/action/reboot/RebootAction.java
new file mode 100644
index 0000000..1881634
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/reboot/RebootAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.reboot;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base action for rebooting; platform implementations extend this.
+ */
+public abstract class RebootAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/action/reboot/RebootCompletedAction.java b/src/main/java/com/tuoheng/machine/action/reboot/RebootCompletedAction.java
new file mode 100644
index 0000000..5d8fe4b
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/action/reboot/RebootCompletedAction.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.action.reboot;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base action for completing reboot; platform implementations extend this.
+ */
+public abstract class RebootCompletedAction implements PlatformAction {
+}
+
diff --git a/src/main/java/com/tuoheng/status/machine/config/AirportMachineConfig.java b/src/main/java/com/tuoheng/machine/config/AirportMachineConfig.java
similarity index 96%
rename from src/main/java/com/tuoheng/status/machine/config/AirportMachineConfig.java
rename to src/main/java/com/tuoheng/machine/config/AirportMachineConfig.java
index d448048..e156671 100644
--- a/src/main/java/com/tuoheng/status/machine/config/AirportMachineConfig.java
+++ b/src/main/java/com/tuoheng/machine/config/AirportMachineConfig.java
@@ -1,9 +1,9 @@
-package com.tuoheng.status.machine.config;
+package com.tuoheng.machine.config;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.factory.PlatformStrategyFactory;
-import com.tuoheng.status.machine.platform.strategy.AirportPlatformStrategy;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.factory.PlatformStrategyFactory;
+import com.tuoheng.machine.platform.strategy.AirportPlatformStrategy;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/com/tuoheng/status/machine/config/CoverMachineConfig.java b/src/main/java/com/tuoheng/machine/config/CoverMachineConfig.java
similarity index 95%
rename from src/main/java/com/tuoheng/status/machine/config/CoverMachineConfig.java
rename to src/main/java/com/tuoheng/machine/config/CoverMachineConfig.java
index 9173e46..0c8af02 100644
--- a/src/main/java/com/tuoheng/status/machine/config/CoverMachineConfig.java
+++ b/src/main/java/com/tuoheng/machine/config/CoverMachineConfig.java
@@ -1,9 +1,9 @@
-package com.tuoheng.status.machine.config;
+package com.tuoheng.machine.config;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.factory.PlatformStrategyFactory;
-import com.tuoheng.status.machine.platform.strategy.CoverPlatformStrategy;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.factory.PlatformStrategyFactory;
+import com.tuoheng.machine.platform.strategy.CoverPlatformStrategy;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/com/tuoheng/status/machine/config/DrcMachineConfig.java b/src/main/java/com/tuoheng/machine/config/DrcMachineConfig.java
similarity index 94%
rename from src/main/java/com/tuoheng/status/machine/config/DrcMachineConfig.java
rename to src/main/java/com/tuoheng/machine/config/DrcMachineConfig.java
index 5707ac2..553b88c 100644
--- a/src/main/java/com/tuoheng/status/machine/config/DrcMachineConfig.java
+++ b/src/main/java/com/tuoheng/machine/config/DrcMachineConfig.java
@@ -1,9 +1,9 @@
-package com.tuoheng.status.machine.config;
+package com.tuoheng.machine.config;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.factory.PlatformStrategyFactory;
-import com.tuoheng.status.machine.platform.strategy.DrcPlatformStrategy;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.factory.PlatformStrategyFactory;
+import com.tuoheng.machine.platform.strategy.DrcPlatformStrategy;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/com/tuoheng/status/machine/config/DroneMachineConfig.java b/src/main/java/com/tuoheng/machine/config/DroneMachineConfig.java
similarity index 98%
rename from src/main/java/com/tuoheng/status/machine/config/DroneMachineConfig.java
rename to src/main/java/com/tuoheng/machine/config/DroneMachineConfig.java
index e608c60..7ead417 100644
--- a/src/main/java/com/tuoheng/status/machine/config/DroneMachineConfig.java
+++ b/src/main/java/com/tuoheng/machine/config/DroneMachineConfig.java
@@ -1,9 +1,9 @@
-package com.tuoheng.status.machine.config;
+package com.tuoheng.machine.config;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.factory.PlatformStrategyFactory;
-import com.tuoheng.status.machine.platform.strategy.DronePlatformStrategy;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.factory.PlatformStrategyFactory;
+import com.tuoheng.machine.platform.strategy.DronePlatformStrategy;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/src/main/java/com/tuoheng/status/machine/demo/MultiPlatformDemo.java b/src/main/java/com/tuoheng/machine/demo/MultiPlatformDemo.java
similarity index 92%
rename from src/main/java/com/tuoheng/status/machine/demo/MultiPlatformDemo.java
rename to src/main/java/com/tuoheng/machine/demo/MultiPlatformDemo.java
index 846049d..cd63b57 100644
--- a/src/main/java/com/tuoheng/status/machine/demo/MultiPlatformDemo.java
+++ b/src/main/java/com/tuoheng/machine/demo/MultiPlatformDemo.java
@@ -1,8 +1,7 @@
-package com.tuoheng.status.machine.demo;
+package com.tuoheng.machine.demo;
-import com.tuoheng.status.machine.manager.AirportSystemManager;
-import com.tuoheng.status.machine.platform.factory.PlatformStrategyFactory;
-import com.tuoheng.status.machine.repository.AirportPlatformRepository;
+import com.tuoheng.machine.manager.AirportSystemManager;
+import com.tuoheng.machine.platform.factory.PlatformStrategyFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
@@ -16,7 +15,7 @@ public class MultiPlatformDemo {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
// 扫描所有组件
- context.scan("com.tuoheng.status.machine");
+ context.scan("com.tuoheng.machine");
context.refresh();
// 获取必要的Bean
diff --git a/src/main/java/com/tuoheng/status/machine/events/AirportEvent.java b/src/main/java/com/tuoheng/machine/events/AirportEvent.java
similarity index 96%
rename from src/main/java/com/tuoheng/status/machine/events/AirportEvent.java
rename to src/main/java/com/tuoheng/machine/events/AirportEvent.java
index f91f50c..7985871 100644
--- a/src/main/java/com/tuoheng/status/machine/events/AirportEvent.java
+++ b/src/main/java/com/tuoheng/machine/events/AirportEvent.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.events;
+package com.tuoheng.machine.events;
/**
* 机巢事件枚举
diff --git a/src/main/java/com/tuoheng/status/machine/events/CoverEvent.java b/src/main/java/com/tuoheng/machine/events/CoverEvent.java
similarity index 89%
rename from src/main/java/com/tuoheng/status/machine/events/CoverEvent.java
rename to src/main/java/com/tuoheng/machine/events/CoverEvent.java
index 0122ad1..733308d 100644
--- a/src/main/java/com/tuoheng/status/machine/events/CoverEvent.java
+++ b/src/main/java/com/tuoheng/machine/events/CoverEvent.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.events;
+package com.tuoheng.machine.events;
/**
* 舱门事件枚举
diff --git a/src/main/java/com/tuoheng/status/machine/events/DrcEvent.java b/src/main/java/com/tuoheng/machine/events/DrcEvent.java
similarity index 91%
rename from src/main/java/com/tuoheng/status/machine/events/DrcEvent.java
rename to src/main/java/com/tuoheng/machine/events/DrcEvent.java
index 825d945..f522698 100644
--- a/src/main/java/com/tuoheng/status/machine/events/DrcEvent.java
+++ b/src/main/java/com/tuoheng/machine/events/DrcEvent.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.events;
+package com.tuoheng.machine.events;
/**
* DRC(飞行控制模式)事件枚举
diff --git a/src/main/java/com/tuoheng/status/machine/events/DroneEvent.java b/src/main/java/com/tuoheng/machine/events/DroneEvent.java
similarity index 98%
rename from src/main/java/com/tuoheng/status/machine/events/DroneEvent.java
rename to src/main/java/com/tuoheng/machine/events/DroneEvent.java
index 521bbd1..9e95118 100644
--- a/src/main/java/com/tuoheng/status/machine/events/DroneEvent.java
+++ b/src/main/java/com/tuoheng/machine/events/DroneEvent.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.events;
+package com.tuoheng.machine.events;
/**
* 无人机事件枚举
diff --git a/src/main/java/com/tuoheng/machine/guard/airport/CanOfflineGuard.java b/src/main/java/com/tuoheng/machine/guard/airport/CanOfflineGuard.java
new file mode 100644
index 0000000..a142935
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/airport/CanOfflineGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.airport;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base guard for checking if an machine can go offline; platform implementations extend this.
+ */
+public abstract class CanOfflineGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/airport/CanOnlineGuard.java b/src/main/java/com/tuoheng/machine/guard/airport/CanOnlineGuard.java
new file mode 100644
index 0000000..822141e
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/airport/CanOnlineGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.airport;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base guard for checking if an machine can go online; platform implementations extend this.
+ */
+public abstract class CanOnlineGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/airport/IsAirportOnlineGuard.java b/src/main/java/com/tuoheng/machine/guard/airport/IsAirportOnlineGuard.java
new file mode 100644
index 0000000..b2e660c
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/airport/IsAirportOnlineGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.airport;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base guard for checking machine online status; platform implementations extend this.
+ */
+public abstract class IsAirportOnlineGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/cover/CanCloseCoverGuard.java b/src/main/java/com/tuoheng/machine/guard/cover/CanCloseCoverGuard.java
new file mode 100644
index 0000000..620f97b
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/cover/CanCloseCoverGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.cover;
+
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.CoverState;
+
+/**
+ * Base guard for closing the cover; platform implementations extend this.
+ */
+public abstract class CanCloseCoverGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/cover/CanOpenCoverGuard.java b/src/main/java/com/tuoheng/machine/guard/cover/CanOpenCoverGuard.java
new file mode 100644
index 0000000..96a8b8f
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/cover/CanOpenCoverGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.cover;
+
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.CoverState;
+
+/**
+ * Base guard for opening the cover; platform implementations extend this.
+ */
+public abstract class CanOpenCoverGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/cover/IsCoverClosedGuard.java b/src/main/java/com/tuoheng/machine/guard/cover/IsCoverClosedGuard.java
new file mode 100644
index 0000000..f8941cb
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/cover/IsCoverClosedGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.cover;
+
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.CoverState;
+
+/**
+ * Base guard for verifying the cover is closed; platform implementations extend this.
+ */
+public abstract class IsCoverClosedGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/cover/IsCoverOpenedGuard.java b/src/main/java/com/tuoheng/machine/guard/cover/IsCoverOpenedGuard.java
new file mode 100644
index 0000000..d75d531
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/cover/IsCoverOpenedGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.cover;
+
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.CoverState;
+
+/**
+ * Base guard for verifying the cover is opened; platform implementations extend this.
+ */
+public abstract class IsCoverOpenedGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/debug/CanCloseDebugModeGuard.java b/src/main/java/com/tuoheng/machine/guard/debug/CanCloseDebugModeGuard.java
new file mode 100644
index 0000000..b7a5573
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/debug/CanCloseDebugModeGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.debug;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base guard for closing debug mode; platform implementations extend this.
+ */
+public abstract class CanCloseDebugModeGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/debug/IsDebugModeGuard.java b/src/main/java/com/tuoheng/machine/guard/debug/IsDebugModeGuard.java
new file mode 100644
index 0000000..93054a0
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/debug/IsDebugModeGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.debug;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base guard for checking debug mode; platform implementations extend this.
+ */
+public abstract class IsDebugModeGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/debug/IsNotDebugModeGuard.java b/src/main/java/com/tuoheng/machine/guard/debug/IsNotDebugModeGuard.java
new file mode 100644
index 0000000..8bb1222
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/debug/IsNotDebugModeGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.debug;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base guard for checking non-debug mode; platform implementations extend this.
+ */
+public abstract class IsNotDebugModeGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/machine/guard/drc/CanEnterGuard.java b/src/main/java/com/tuoheng/machine/guard/drc/CanEnterGuard.java
new file mode 100644
index 0000000..cbe6ca3
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/drc/CanEnterGuard.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.guard.drc;
+
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.DrcState;
+
+/**
+ * Base guard for checking if can enter DRC mode; platform implementations extend this.
+ */
+public abstract class CanEnterGuard implements PlatformGuard {
+}
diff --git a/src/main/java/com/tuoheng/machine/guard/drc/CanExitGuard.java b/src/main/java/com/tuoheng/machine/guard/drc/CanExitGuard.java
new file mode 100644
index 0000000..a5ff8e5
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/drc/CanExitGuard.java
@@ -0,0 +1,11 @@
+package com.tuoheng.machine.guard.drc;
+
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.DrcState;
+
+/**
+ * Base guard for checking if can exit DRC mode; platform implementations extend this.
+ */
+public abstract class CanExitGuard implements PlatformGuard {
+}
diff --git a/src/main/java/com/tuoheng/status/machine/guard/drone/CanPointGuard.java b/src/main/java/com/tuoheng/machine/guard/drone/CanPointGuard.java
similarity index 56%
rename from src/main/java/com/tuoheng/status/machine/guard/drone/CanPointGuard.java
rename to src/main/java/com/tuoheng/machine/guard/drone/CanPointGuard.java
index 0c8e361..e9b4e0f 100644
--- a/src/main/java/com/tuoheng/status/machine/guard/drone/CanPointGuard.java
+++ b/src/main/java/com/tuoheng/machine/guard/drone/CanPointGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.guard.drone;
+package com.tuoheng.machine.guard.drone;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.DroneState;
/**
* Base guard for checking if drone can start pointing operation; platform implementations extend this.
diff --git a/src/main/java/com/tuoheng/machine/guard/reboot/IsRebootCompletedGuard.java b/src/main/java/com/tuoheng/machine/guard/reboot/IsRebootCompletedGuard.java
new file mode 100644
index 0000000..8d79157
--- /dev/null
+++ b/src/main/java/com/tuoheng/machine/guard/reboot/IsRebootCompletedGuard.java
@@ -0,0 +1,12 @@
+package com.tuoheng.machine.guard.reboot;
+
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.status.AirportState;
+
+/**
+ * Base guard for verifying reboot completion; platform implementations extend this.
+ */
+public abstract class IsRebootCompletedGuard implements PlatformGuard {
+}
+
diff --git a/src/main/java/com/tuoheng/status/machine/listener/DefaultAirportListener.java b/src/main/java/com/tuoheng/machine/listener/DefaultAirportListener.java
similarity index 94%
rename from src/main/java/com/tuoheng/status/machine/listener/DefaultAirportListener.java
rename to src/main/java/com/tuoheng/machine/listener/DefaultAirportListener.java
index 160ea20..3eecd78 100644
--- a/src/main/java/com/tuoheng/status/machine/listener/DefaultAirportListener.java
+++ b/src/main/java/com/tuoheng/machine/listener/DefaultAirportListener.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.listener;
+package com.tuoheng.machine.listener;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformListener;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.strategy.PlatformListener;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.messaging.Message;
import org.springframework.statemachine.StateContext;
import org.springframework.statemachine.StateMachine;
diff --git a/src/main/java/com/tuoheng/status/machine/listener/DefaultCoverListener.java b/src/main/java/com/tuoheng/machine/listener/DefaultCoverListener.java
similarity index 94%
rename from src/main/java/com/tuoheng/status/machine/listener/DefaultCoverListener.java
rename to src/main/java/com/tuoheng/machine/listener/DefaultCoverListener.java
index bbe7e65..068d084 100644
--- a/src/main/java/com/tuoheng/status/machine/listener/DefaultCoverListener.java
+++ b/src/main/java/com/tuoheng/machine/listener/DefaultCoverListener.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.listener;
+package com.tuoheng.machine.listener;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformListener;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformListener;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.messaging.Message;
import org.springframework.statemachine.StateContext;
import org.springframework.statemachine.StateMachine;
diff --git a/src/main/java/com/tuoheng/status/machine/listener/DefaultDrcListener.java b/src/main/java/com/tuoheng/machine/listener/DefaultDrcListener.java
similarity index 94%
rename from src/main/java/com/tuoheng/status/machine/listener/DefaultDrcListener.java
rename to src/main/java/com/tuoheng/machine/listener/DefaultDrcListener.java
index 11f0b7f..cc19125 100644
--- a/src/main/java/com/tuoheng/status/machine/listener/DefaultDrcListener.java
+++ b/src/main/java/com/tuoheng/machine/listener/DefaultDrcListener.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.listener;
+package com.tuoheng.machine.listener;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformListener;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.strategy.PlatformListener;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.messaging.Message;
import org.springframework.statemachine.StateContext;
import org.springframework.statemachine.StateMachine;
diff --git a/src/main/java/com/tuoheng/status/machine/listener/DefaultDroneListener.java b/src/main/java/com/tuoheng/machine/listener/DefaultDroneListener.java
similarity index 94%
rename from src/main/java/com/tuoheng/status/machine/listener/DefaultDroneListener.java
rename to src/main/java/com/tuoheng/machine/listener/DefaultDroneListener.java
index 489ac96..6dae4b1 100644
--- a/src/main/java/com/tuoheng/status/machine/listener/DefaultDroneListener.java
+++ b/src/main/java/com/tuoheng/machine/listener/DefaultDroneListener.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.listener;
+package com.tuoheng.machine.listener;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformListener;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.strategy.PlatformListener;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.messaging.Message;
import org.springframework.statemachine.StateContext;
import org.springframework.statemachine.StateMachine;
diff --git a/src/main/java/com/tuoheng/status/machine/manager/AbstractAirportSystemManager.java b/src/main/java/com/tuoheng/machine/manager/AbstractAirportSystemManager.java
similarity index 93%
rename from src/main/java/com/tuoheng/status/machine/manager/AbstractAirportSystemManager.java
rename to src/main/java/com/tuoheng/machine/manager/AbstractAirportSystemManager.java
index 2204eaf..f637368 100644
--- a/src/main/java/com/tuoheng/status/machine/manager/AbstractAirportSystemManager.java
+++ b/src/main/java/com/tuoheng/machine/manager/AbstractAirportSystemManager.java
@@ -1,18 +1,18 @@
-package com.tuoheng.status.machine.manager;
+package com.tuoheng.machine.manager;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.service.AirportMachineService;
-import com.tuoheng.status.machine.service.CoverMachineService;
-import com.tuoheng.status.machine.service.DroneMachineService;
-import com.tuoheng.status.machine.service.DrcMachineService;
-import com.tuoheng.status.machine.status.AirportState;
-import com.tuoheng.status.machine.status.CoverState;
-import com.tuoheng.status.machine.status.DroneState;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.service.AirportMachineService;
+import com.tuoheng.machine.service.CoverMachineService;
+import com.tuoheng.machine.service.DroneMachineService;
+import com.tuoheng.machine.service.DrcMachineService;
+import com.tuoheng.machine.status.AirportState;
+import com.tuoheng.machine.status.CoverState;
+import com.tuoheng.machine.status.DroneState;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.beans.factory.annotation.Autowired;
/**
diff --git a/src/main/java/com/tuoheng/status/machine/manager/AirportSystemManager.java b/src/main/java/com/tuoheng/machine/manager/AirportSystemManager.java
similarity index 73%
rename from src/main/java/com/tuoheng/status/machine/manager/AirportSystemManager.java
rename to src/main/java/com/tuoheng/machine/manager/AirportSystemManager.java
index 05b1fbf..e13fc05 100644
--- a/src/main/java/com/tuoheng/status/machine/manager/AirportSystemManager.java
+++ b/src/main/java/com/tuoheng/machine/manager/AirportSystemManager.java
@@ -1,14 +1,14 @@
-package com.tuoheng.status.machine.manager;
+package com.tuoheng.machine.manager;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.status.AirportState;
-import com.tuoheng.status.machine.status.CoverState;
-import com.tuoheng.status.machine.status.DroneState;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.status.AirportState;
+import com.tuoheng.machine.status.CoverState;
+import com.tuoheng.machine.status.DroneState;
+import com.tuoheng.machine.status.DrcState;
/**
* 机巢系统管理器接口
diff --git a/src/main/java/com/tuoheng/status/machine/platform/PlatformType.java b/src/main/java/com/tuoheng/machine/platform/PlatformType.java
similarity index 95%
rename from src/main/java/com/tuoheng/status/machine/platform/PlatformType.java
rename to src/main/java/com/tuoheng/machine/platform/PlatformType.java
index f32e853..948e154 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/PlatformType.java
+++ b/src/main/java/com/tuoheng/machine/platform/PlatformType.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.platform;
+package com.tuoheng.machine.platform;
/**
* 无人机平台类型枚举
diff --git a/src/main/java/com/tuoheng/status/machine/platform/factory/PlatformStrategyFactory.java b/src/main/java/com/tuoheng/machine/platform/factory/PlatformStrategyFactory.java
similarity index 94%
rename from src/main/java/com/tuoheng/status/machine/platform/factory/PlatformStrategyFactory.java
rename to src/main/java/com/tuoheng/machine/platform/factory/PlatformStrategyFactory.java
index c30a533..9a3f327 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/factory/PlatformStrategyFactory.java
+++ b/src/main/java/com/tuoheng/machine/platform/factory/PlatformStrategyFactory.java
@@ -1,12 +1,12 @@
-package com.tuoheng.status.machine.platform.factory;
+package com.tuoheng.machine.platform.factory;
-import com.tuoheng.status.machine.manager.AirportSystemManager;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.repository.AirportPlatformRepository;
-import com.tuoheng.status.machine.platform.strategy.AirportPlatformStrategy;
-import com.tuoheng.status.machine.platform.strategy.CoverPlatformStrategy;
-import com.tuoheng.status.machine.platform.strategy.DronePlatformStrategy;
-import com.tuoheng.status.machine.platform.strategy.DrcPlatformStrategy;
+import com.tuoheng.machine.manager.AirportSystemManager;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.repository.AirportPlatformRepository;
+import com.tuoheng.machine.platform.strategy.AirportPlatformStrategy;
+import com.tuoheng.machine.platform.strategy.CoverPlatformStrategy;
+import com.tuoheng.machine.platform.strategy.DronePlatformStrategy;
+import com.tuoheng.machine.platform.strategy.DrcPlatformStrategy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiAirportPlatformStrategy.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiAirportPlatformStrategy.java
similarity index 81%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiAirportPlatformStrategy.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/DjiAirportPlatformStrategy.java
index cd591a8..dd01962 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiAirportPlatformStrategy.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiAirportPlatformStrategy.java
@@ -1,15 +1,15 @@
-package com.tuoheng.status.machine.platform.impl.dji;
+package com.tuoheng.machine.platform.impl.dji;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.impl.dji.listener.DjiAirportListener;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.platform.impl.dji.action.airport.*;
-import com.tuoheng.status.machine.platform.impl.dji.guard.airport.*;
-import com.tuoheng.status.machine.platform.strategy.AirportPlatformStrategy;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.platform.strategy.PlatformListener;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.impl.dji.action.airport.*;
+import com.tuoheng.machine.platform.impl.dji.guard.airport.*;
+import com.tuoheng.machine.platform.impl.dji.listener.DjiAirportListener;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.platform.strategy.AirportPlatformStrategy;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.platform.strategy.PlatformListener;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiAirportSystemManager.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiAirportSystemManager.java
similarity index 90%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiAirportSystemManager.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/DjiAirportSystemManager.java
index 7c2ee17..f190dac 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiAirportSystemManager.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiAirportSystemManager.java
@@ -1,12 +1,12 @@
-package com.tuoheng.status.machine.platform.impl.dji;
+package com.tuoheng.machine.platform.impl.dji;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.events.CoverEvent;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.events.CoverEvent;
-import com.tuoheng.status.machine.manager.AbstractAirportSystemManager;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.status.AirportState;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.manager.AbstractAirportSystemManager;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.status.AirportState;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.stereotype.Component;
/**
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiCoverPlatformStrategy.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiCoverPlatformStrategy.java
similarity index 73%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiCoverPlatformStrategy.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/DjiCoverPlatformStrategy.java
index e9d2b6d..7921014 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiCoverPlatformStrategy.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiCoverPlatformStrategy.java
@@ -1,15 +1,18 @@
-package com.tuoheng.status.machine.platform.impl.dji;
+package com.tuoheng.machine.platform.impl.dji;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.impl.dji.listener.DjiCoverListener;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.platform.impl.dji.action.cover.*;
-import com.tuoheng.status.machine.platform.impl.dji.guard.cover.*;
-import com.tuoheng.status.machine.platform.strategy.CoverPlatformStrategy;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.platform.strategy.PlatformListener;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.impl.dji.action.cover.*;
+import com.tuoheng.machine.platform.impl.dji.guard.cover.DjiCanCloseCoverGuard;
+import com.tuoheng.machine.platform.impl.dji.guard.cover.DjiCanOpenCoverGuard;
+import com.tuoheng.machine.platform.impl.dji.guard.cover.DjiIsCoverClosedGuard;
+import com.tuoheng.machine.platform.impl.dji.guard.cover.DjiIsCoverOpenedGuard;
+import com.tuoheng.machine.platform.impl.dji.listener.DjiCoverListener;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.platform.strategy.CoverPlatformStrategy;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.platform.strategy.PlatformListener;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiDrcPlatformStrategy.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiDrcPlatformStrategy.java
similarity index 62%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiDrcPlatformStrategy.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/DjiDrcPlatformStrategy.java
index a447487..2a3ab13 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiDrcPlatformStrategy.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiDrcPlatformStrategy.java
@@ -1,15 +1,19 @@
-package com.tuoheng.status.machine.platform.impl.dji;
+package com.tuoheng.machine.platform.impl.dji;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.platform.impl.dji.action.drc.*;
-import com.tuoheng.status.machine.platform.impl.dji.guard.drc.*;
-import com.tuoheng.status.machine.platform.impl.dji.listener.DjiDrcListener;
-import com.tuoheng.status.machine.platform.strategy.DrcPlatformStrategy;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.platform.strategy.PlatformListener;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.platform.impl.dji.action.drc.DjiEnterAction;
+import com.tuoheng.machine.platform.impl.dji.action.drc.DjiEnteredAction;
+import com.tuoheng.machine.platform.impl.dji.action.drc.DjiExitAction;
+import com.tuoheng.machine.platform.impl.dji.action.drc.DjiExitedAction;
+import com.tuoheng.machine.platform.impl.dji.guard.drc.DjiCanEnterGuard;
+import com.tuoheng.machine.platform.impl.dji.guard.drc.DjiCanExitGuard;
+import com.tuoheng.machine.platform.impl.dji.listener.DjiDrcListener;
+import com.tuoheng.machine.platform.strategy.DrcPlatformStrategy;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.platform.strategy.PlatformListener;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiDronePlatformStrategy.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiDronePlatformStrategy.java
similarity index 85%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiDronePlatformStrategy.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/DjiDronePlatformStrategy.java
index d00ea8f..a677d1d 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/DjiDronePlatformStrategy.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/DjiDronePlatformStrategy.java
@@ -1,15 +1,15 @@
-package com.tuoheng.status.machine.platform.impl.dji;
+package com.tuoheng.machine.platform.impl.dji;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.platform.impl.dji.action.drone.*;
-import com.tuoheng.status.machine.platform.impl.dji.guard.drone.*;
-import com.tuoheng.status.machine.platform.impl.dji.listener.DjiDroneListener;
-import com.tuoheng.status.machine.platform.strategy.DronePlatformStrategy;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.platform.strategy.PlatformListener;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.platform.impl.dji.action.drone.*;
+import com.tuoheng.machine.platform.impl.dji.guard.drone.DjiCanPointGuard;
+import com.tuoheng.machine.platform.impl.dji.listener.DjiDroneListener;
+import com.tuoheng.machine.platform.strategy.DronePlatformStrategy;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.platform.strategy.PlatformGuard;
+import com.tuoheng.machine.platform.strategy.PlatformListener;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiCloseDebugModeAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiCloseDebugModeAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiCloseDebugModeAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiCloseDebugModeAction.java
index 29769c6..fe11ab7 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiCloseDebugModeAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiCloseDebugModeAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.airport;
+package com.tuoheng.machine.platform.impl.dji.action.airport;
-import com.tuoheng.status.machine.action.debug.CloseDebugModeAction;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.action.debug.CloseDebugModeAction;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOfflineAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOfflineAction.java
similarity index 68%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOfflineAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOfflineAction.java
index f0683e6..0bb8efb 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOfflineAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOfflineAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.airport;
+package com.tuoheng.machine.platform.impl.dji.action.airport;
-import com.tuoheng.status.machine.action.airport.OfflineAction;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.action.airport.OfflineAction;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOnlineAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOnlineAction.java
similarity index 72%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOnlineAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOnlineAction.java
index 15e038b..ac786e5 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOnlineAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOnlineAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.airport;
+package com.tuoheng.machine.platform.impl.dji.action.airport;
-import com.tuoheng.status.machine.action.airport.OnlineAction;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.action.airport.OnlineAction;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOpenDebugModeAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOpenDebugModeAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOpenDebugModeAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOpenDebugModeAction.java
index 00575e8..c703130 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiOpenDebugModeAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiOpenDebugModeAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.airport;
+package com.tuoheng.machine.platform.impl.dji.action.airport;
-import com.tuoheng.status.machine.action.debug.OpenDebugModeAction;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.action.debug.OpenDebugModeAction;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiRebootAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiRebootAction.java
similarity index 68%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiRebootAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiRebootAction.java
index c9c17f8..eeb758a 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiRebootAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiRebootAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.airport;
+package com.tuoheng.machine.platform.impl.dji.action.airport;
-import com.tuoheng.status.machine.action.reboot.RebootAction;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.action.reboot.RebootAction;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiRebootCompletedAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiRebootCompletedAction.java
similarity index 68%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiRebootCompletedAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiRebootCompletedAction.java
index de9c2ec..88359ed 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/airport/DjiRebootCompletedAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/airport/DjiRebootCompletedAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.airport;
+package com.tuoheng.machine.platform.impl.dji.action.airport;
-import com.tuoheng.status.machine.action.reboot.RebootCompletedAction;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.action.reboot.RebootCompletedAction;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCloseCoverAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCloseCoverAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCloseCoverAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCloseCoverAction.java
index b7571b3..9573547 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCloseCoverAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCloseCoverAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.cover;
+package com.tuoheng.machine.platform.impl.dji.action.cover;
-import com.tuoheng.status.machine.action.cover.CloseCoverAction;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.action.cover.CloseCoverAction;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverClosedAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverClosedAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverClosedAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverClosedAction.java
index 28cd7d4..9429424 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverClosedAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverClosedAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.cover;
+package com.tuoheng.machine.platform.impl.dji.action.cover;
-import com.tuoheng.status.machine.action.cover.CoverClosedAction;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.action.cover.CoverClosedAction;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverErrorAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverErrorAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverErrorAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverErrorAction.java
index e20c56f..5a91a68 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverErrorAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverErrorAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.cover;
+package com.tuoheng.machine.platform.impl.dji.action.cover;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverOpenedAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverOpenedAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverOpenedAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverOpenedAction.java
index 37f4010..4d20c54 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverOpenedAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverOpenedAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.cover;
+package com.tuoheng.machine.platform.impl.dji.action.cover;
-import com.tuoheng.status.machine.action.cover.CoverOpenedAction;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.action.cover.CoverOpenedAction;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverResetAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverResetAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverResetAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverResetAction.java
index 8fabe01..eaee4b4 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiCoverResetAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiCoverResetAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.cover;
+package com.tuoheng.machine.platform.impl.dji.action.cover;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.strategy.PlatformAction;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiOpenCoverAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiOpenCoverAction.java
similarity index 70%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiOpenCoverAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiOpenCoverAction.java
index fb378fe..5ae889c 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/cover/DjiOpenCoverAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/cover/DjiOpenCoverAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.cover;
+package com.tuoheng.machine.platform.impl.dji.action.cover;
-import com.tuoheng.status.machine.action.cover.OpenCoverAction;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.action.cover.OpenCoverAction;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiEnterAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiEnterAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiEnterAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiEnterAction.java
index afb58cc..167476f 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiEnterAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiEnterAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drc;
+package com.tuoheng.machine.platform.impl.dji.action.drc;
-import com.tuoheng.status.machine.action.drc.EnterAction;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.action.drc.EnterAction;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiEnteredAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiEnteredAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiEnteredAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiEnteredAction.java
index c997e96..b63c4d2 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiEnteredAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiEnteredAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drc;
+package com.tuoheng.machine.platform.impl.dji.action.drc;
-import com.tuoheng.status.machine.action.drc.EnteredAction;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.action.drc.EnteredAction;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiExitAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiExitAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiExitAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiExitAction.java
index 0f35206..fdff951 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiExitAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiExitAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drc;
+package com.tuoheng.machine.platform.impl.dji.action.drc;
-import com.tuoheng.status.machine.action.drc.ExitAction;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.action.drc.ExitAction;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiExitedAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiExitedAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiExitedAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiExitedAction.java
index 5d6cea8..d8620d1 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drc/DjiExitedAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drc/DjiExitedAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drc;
+package com.tuoheng.machine.platform.impl.dji.action.drc;
-import com.tuoheng.status.machine.action.drc.ExitedAction;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.action.drc.ExitedAction;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiArriveAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiArriveAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiArriveAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiArriveAction.java
index 8564f0c..ed91026 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiArriveAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiArriveAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.ArriveAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.ArriveAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiCancelPointAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiCancelPointAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiCancelPointAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiCancelPointAction.java
index 20e2737..096e1c0 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiCancelPointAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiCancelPointAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.CancelPointAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.CancelPointAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiDroneOfflineAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiDroneOfflineAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiDroneOfflineAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiDroneOfflineAction.java
index d4e9eea..1404aa8 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiDroneOfflineAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiDroneOfflineAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.OfflineAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.OfflineAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiEmergencyStopAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiEmergencyStopAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiEmergencyStopAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiEmergencyStopAction.java
index e4d688d..e96b082 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiEmergencyStopAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiEmergencyStopAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.EmergencyStopAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.EmergencyStopAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointFlyingCompletedAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointFlyingCompletedAction.java
similarity index 70%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointFlyingCompletedAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointFlyingCompletedAction.java
index 9f7e2da..805c22d 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointFlyingCompletedAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointFlyingCompletedAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.PointFlyingCompletedAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.PointFlyingCompletedAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointPrepareCompletedAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointPrepareCompletedAction.java
similarity index 70%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointPrepareCompletedAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointPrepareCompletedAction.java
index aa923bc..66f735b 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointPrepareCompletedAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointPrepareCompletedAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.PointPrepareCompletedAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.PointPrepareCompletedAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointToFlyingAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointToFlyingAction.java
similarity index 70%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointToFlyingAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointToFlyingAction.java
index 9d98400..4413d81 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointToFlyingAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointToFlyingAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.PointToFlyingAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.PointToFlyingAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointToReturnAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointToReturnAction.java
similarity index 70%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointToReturnAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointToReturnAction.java
index 3db6ff8..07e3606 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPointToReturnAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPointToReturnAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.PointToReturnAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.PointToReturnAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPrepareCompletedAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPrepareCompletedAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPrepareCompletedAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPrepareCompletedAction.java
index 785fc68..75c749e 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiPrepareCompletedAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiPrepareCompletedAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.PrepareCompletedAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.PrepareCompletedAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiResumeFlyingAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiResumeFlyingAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiResumeFlyingAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiResumeFlyingAction.java
index b08d32e..e179ff0 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiResumeFlyingAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiResumeFlyingAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.ResumeFlyingAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.ResumeFlyingAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiResumeReturnAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiResumeReturnAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiResumeReturnAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiResumeReturnAction.java
index 56d8b4e..b0c3eaf 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiResumeReturnAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiResumeReturnAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.ResumeReturnAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.ResumeReturnAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiReturnCompletedAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiReturnCompletedAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiReturnCompletedAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiReturnCompletedAction.java
index 43af23d..345ac06 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiReturnCompletedAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiReturnCompletedAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.ReturnCompletedAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.ReturnCompletedAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiReturnEmergencyStopAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiReturnEmergencyStopAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiReturnEmergencyStopAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiReturnEmergencyStopAction.java
index 9765bb6..1012d35 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiReturnEmergencyStopAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiReturnEmergencyStopAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.ReturnEmergencyStopAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.ReturnEmergencyStopAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartFlyingAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartFlyingAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartFlyingAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartFlyingAction.java
index 42b6778..dde1ed6 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartFlyingAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartFlyingAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.StartFlyingAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.StartFlyingAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartPointingAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartPointingAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartPointingAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartPointingAction.java
index 1b09792..9eb3d12 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartPointingAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartPointingAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.StartPointingAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.StartPointingAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartPrepareAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartPrepareAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartPrepareAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartPrepareAction.java
index 2ee6dd4..6c82c24 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartPrepareAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartPrepareAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.StartPrepareAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.StartPrepareAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartReturnAction.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartReturnAction.java
similarity index 69%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartReturnAction.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartReturnAction.java
index 26f8c37..3cac2f7 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/action/drone/DjiStartReturnAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/action/drone/DjiStartReturnAction.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.action.drone;
+package com.tuoheng.machine.platform.impl.dji.action.drone;
-import com.tuoheng.status.machine.action.drone.StartReturnAction;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.action.drone.StartReturnAction;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanCloseDebugModeGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanCloseDebugModeGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanCloseDebugModeGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanCloseDebugModeGuard.java
index ef9a12c..24c0075 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanCloseDebugModeGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanCloseDebugModeGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.airport;
+package com.tuoheng.machine.platform.impl.dji.guard.airport;
-import com.tuoheng.status.machine.guard.debug.CanCloseDebugModeGuard;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.guard.debug.CanCloseDebugModeGuard;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanOfflineGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanOfflineGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanOfflineGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanOfflineGuard.java
index 7a66025..01d66dd 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanOfflineGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanOfflineGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.airport;
+package com.tuoheng.machine.platform.impl.dji.guard.airport;
-import com.tuoheng.status.machine.guard.airport.CanOfflineGuard;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.guard.airport.CanOfflineGuard;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanOnlineGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanOnlineGuard.java
similarity index 74%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanOnlineGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanOnlineGuard.java
index e4e3e4b..b792820 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiCanOnlineGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiCanOnlineGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.airport;
+package com.tuoheng.machine.platform.impl.dji.guard.airport;
-import com.tuoheng.status.machine.guard.airport.CanOnlineGuard;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.guard.airport.CanOnlineGuard;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsDebugModeGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsDebugModeGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsDebugModeGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsDebugModeGuard.java
index bde39c8..2d1306e 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsDebugModeGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsDebugModeGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.airport;
+package com.tuoheng.machine.platform.impl.dji.guard.airport;
-import com.tuoheng.status.machine.guard.debug.IsDebugModeGuard;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.guard.debug.IsDebugModeGuard;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsNotDebugModeGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsNotDebugModeGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsNotDebugModeGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsNotDebugModeGuard.java
index fd59e38..e83b1cb 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsNotDebugModeGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsNotDebugModeGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.airport;
+package com.tuoheng.machine.platform.impl.dji.guard.airport;
-import com.tuoheng.status.machine.guard.debug.IsNotDebugModeGuard;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.guard.debug.IsNotDebugModeGuard;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsRebootCompletedGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsRebootCompletedGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsRebootCompletedGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsRebootCompletedGuard.java
index 939e2d1..d5ca806 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/airport/DjiIsRebootCompletedGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/airport/DjiIsRebootCompletedGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.airport;
+package com.tuoheng.machine.platform.impl.dji.guard.airport;
-import com.tuoheng.status.machine.guard.reboot.IsRebootCompletedGuard;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.guard.reboot.IsRebootCompletedGuard;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiCanCloseCoverGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiCanCloseCoverGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiCanCloseCoverGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiCanCloseCoverGuard.java
index 70ff1d6..f8fa5bf 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiCanCloseCoverGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiCanCloseCoverGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.cover;
+package com.tuoheng.machine.platform.impl.dji.guard.cover;
-import com.tuoheng.status.machine.guard.cover.CanCloseCoverGuard;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.guard.cover.CanCloseCoverGuard;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiCanOpenCoverGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiCanOpenCoverGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiCanOpenCoverGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiCanOpenCoverGuard.java
index 9f41939..d5fd30f 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiCanOpenCoverGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiCanOpenCoverGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.cover;
+package com.tuoheng.machine.platform.impl.dji.guard.cover;
-import com.tuoheng.status.machine.guard.cover.CanOpenCoverGuard;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.guard.cover.CanOpenCoverGuard;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiIsCoverClosedGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiIsCoverClosedGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiIsCoverClosedGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiIsCoverClosedGuard.java
index 3a5e268..727c17a 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiIsCoverClosedGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiIsCoverClosedGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.cover;
+package com.tuoheng.machine.platform.impl.dji.guard.cover;
-import com.tuoheng.status.machine.guard.cover.IsCoverClosedGuard;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.guard.cover.IsCoverClosedGuard;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiIsCoverOpenedGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiIsCoverOpenedGuard.java
similarity index 65%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiIsCoverOpenedGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiIsCoverOpenedGuard.java
index 6fe4eac..f9f8b4a 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/cover/DjiIsCoverOpenedGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/cover/DjiIsCoverOpenedGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.cover;
+package com.tuoheng.machine.platform.impl.dji.guard.cover;
-import com.tuoheng.status.machine.guard.cover.IsCoverOpenedGuard;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.guard.cover.IsCoverOpenedGuard;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drc/DjiCanEnterGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drc/DjiCanEnterGuard.java
similarity index 68%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drc/DjiCanEnterGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drc/DjiCanEnterGuard.java
index fc2debc..543f0c7 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drc/DjiCanEnterGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drc/DjiCanEnterGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.drc;
+package com.tuoheng.machine.platform.impl.dji.guard.drc;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.guard.drc.CanEnterGuard;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.guard.drc.CanEnterGuard;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drc/DjiCanExitGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drc/DjiCanExitGuard.java
similarity index 68%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drc/DjiCanExitGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drc/DjiCanExitGuard.java
index 4b5a778..801819c 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drc/DjiCanExitGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drc/DjiCanExitGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.drc;
+package com.tuoheng.machine.platform.impl.dji.guard.drc;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.guard.drc.CanExitGuard;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.guard.drc.CanExitGuard;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drone/DjiCanPointGuard.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drone/DjiCanPointGuard.java
similarity index 76%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drone/DjiCanPointGuard.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drone/DjiCanPointGuard.java
index d7e997b..ebbc627 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/guard/drone/DjiCanPointGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/guard/drone/DjiCanPointGuard.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.impl.dji.guard.drone;
+package com.tuoheng.machine.platform.impl.dji.guard.drone;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.guard.drone.CanPointGuard;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.guard.drone.CanPointGuard;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Component;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiAirportListener.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiAirportListener.java
similarity index 61%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiAirportListener.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiAirportListener.java
index a7a94ab..b663ec3 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiAirportListener.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiAirportListener.java
@@ -1,6 +1,6 @@
-package com.tuoheng.status.machine.platform.impl.dji.listener;
+package com.tuoheng.machine.platform.impl.dji.listener;
-import com.tuoheng.status.machine.listener.DefaultAirportListener;
+import com.tuoheng.machine.listener.DefaultAirportListener;
import org.springframework.stereotype.Component;
@Component
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiCoverListener.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiCoverListener.java
similarity index 62%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiCoverListener.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiCoverListener.java
index 5de85ae..d67ad64 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiCoverListener.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiCoverListener.java
@@ -1,6 +1,6 @@
-package com.tuoheng.status.machine.platform.impl.dji.listener;
+package com.tuoheng.machine.platform.impl.dji.listener;
-import com.tuoheng.status.machine.listener.DefaultCoverListener;
+import com.tuoheng.machine.listener.DefaultCoverListener;
import org.springframework.stereotype.Component;
@Component
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiDrcListener.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiDrcListener.java
similarity index 50%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiDrcListener.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiDrcListener.java
index 5f7f641..5a713f5 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiDrcListener.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiDrcListener.java
@@ -1,8 +1,6 @@
-package com.tuoheng.status.machine.platform.impl.dji.listener;
+package com.tuoheng.machine.platform.impl.dji.listener;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.listener.DefaultDrcListener;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.listener.DefaultDrcListener;
import org.springframework.stereotype.Component;
/**
diff --git a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiDroneListener.java b/src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiDroneListener.java
similarity index 51%
rename from src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiDroneListener.java
rename to src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiDroneListener.java
index 3b02ec0..5dcfa75 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/impl/dji/listener/DjiDroneListener.java
+++ b/src/main/java/com/tuoheng/machine/platform/impl/dji/listener/DjiDroneListener.java
@@ -1,8 +1,6 @@
-package com.tuoheng.status.machine.platform.impl.dji.listener;
+package com.tuoheng.machine.platform.impl.dji.listener;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.listener.DefaultDroneListener;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.listener.DefaultDroneListener;
import org.springframework.stereotype.Component;
/**
diff --git a/src/main/java/com/tuoheng/status/machine/platform/strategy/AirportPlatformStrategy.java b/src/main/java/com/tuoheng/machine/platform/strategy/AirportPlatformStrategy.java
similarity index 86%
rename from src/main/java/com/tuoheng/status/machine/platform/strategy/AirportPlatformStrategy.java
rename to src/main/java/com/tuoheng/machine/platform/strategy/AirportPlatformStrategy.java
index 01f6de9..c23f391 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/strategy/AirportPlatformStrategy.java
+++ b/src/main/java/com/tuoheng/machine/platform/strategy/AirportPlatformStrategy.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.strategy;
+package com.tuoheng.machine.platform.strategy;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.status.AirportState;
/**
* 机巢平台策略接口
diff --git a/src/main/java/com/tuoheng/status/machine/platform/strategy/CoverPlatformStrategy.java b/src/main/java/com/tuoheng/machine/platform/strategy/CoverPlatformStrategy.java
similarity index 84%
rename from src/main/java/com/tuoheng/status/machine/platform/strategy/CoverPlatformStrategy.java
rename to src/main/java/com/tuoheng/machine/platform/strategy/CoverPlatformStrategy.java
index 66577f1..eee658a 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/strategy/CoverPlatformStrategy.java
+++ b/src/main/java/com/tuoheng/machine/platform/strategy/CoverPlatformStrategy.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.strategy;
+package com.tuoheng.machine.platform.strategy;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.status.CoverState;
/**
* 舱门平台策略接口
diff --git a/src/main/java/com/tuoheng/status/machine/platform/strategy/DrcPlatformStrategy.java b/src/main/java/com/tuoheng/machine/platform/strategy/DrcPlatformStrategy.java
similarity index 85%
rename from src/main/java/com/tuoheng/status/machine/platform/strategy/DrcPlatformStrategy.java
rename to src/main/java/com/tuoheng/machine/platform/strategy/DrcPlatformStrategy.java
index 6d9f275..87e6af5 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/strategy/DrcPlatformStrategy.java
+++ b/src/main/java/com/tuoheng/machine/platform/strategy/DrcPlatformStrategy.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.strategy;
+package com.tuoheng.machine.platform.strategy;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.status.DrcState;
/**
* DRC(飞行控制模式)平台策略接口
diff --git a/src/main/java/com/tuoheng/status/machine/platform/strategy/DronePlatformStrategy.java b/src/main/java/com/tuoheng/machine/platform/strategy/DronePlatformStrategy.java
similarity index 90%
rename from src/main/java/com/tuoheng/status/machine/platform/strategy/DronePlatformStrategy.java
rename to src/main/java/com/tuoheng/machine/platform/strategy/DronePlatformStrategy.java
index 2745367..69b07f9 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/strategy/DronePlatformStrategy.java
+++ b/src/main/java/com/tuoheng/machine/platform/strategy/DronePlatformStrategy.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.platform.strategy;
+package com.tuoheng.machine.platform.strategy;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.PlatformType;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.status.DroneState;
/**
* 无人机平台策略接口
diff --git a/src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformAction.java b/src/main/java/com/tuoheng/machine/platform/strategy/PlatformAction.java
similarity index 88%
rename from src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformAction.java
rename to src/main/java/com/tuoheng/machine/platform/strategy/PlatformAction.java
index 67c4d81..5993206 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformAction.java
+++ b/src/main/java/com/tuoheng/machine/platform/strategy/PlatformAction.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.platform.strategy;
+package com.tuoheng.machine.platform.strategy;
import org.springframework.statemachine.StateContext;
import org.springframework.statemachine.action.Action;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformGuard.java b/src/main/java/com/tuoheng/machine/platform/strategy/PlatformGuard.java
similarity index 88%
rename from src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformGuard.java
rename to src/main/java/com/tuoheng/machine/platform/strategy/PlatformGuard.java
index 6db3347..5a34fb6 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformGuard.java
+++ b/src/main/java/com/tuoheng/machine/platform/strategy/PlatformGuard.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.platform.strategy;
+package com.tuoheng.machine.platform.strategy;
import org.springframework.statemachine.StateContext;
import org.springframework.statemachine.guard.Guard;
diff --git a/src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformListener.java b/src/main/java/com/tuoheng/machine/platform/strategy/PlatformListener.java
similarity index 84%
rename from src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformListener.java
rename to src/main/java/com/tuoheng/machine/platform/strategy/PlatformListener.java
index ed0cce7..8727769 100644
--- a/src/main/java/com/tuoheng/status/machine/platform/strategy/PlatformListener.java
+++ b/src/main/java/com/tuoheng/machine/platform/strategy/PlatformListener.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.platform.strategy;
+package com.tuoheng.machine.platform.strategy;
import org.springframework.statemachine.listener.StateMachineListener;
diff --git a/src/main/java/com/tuoheng/status/machine/redis/RedisStateStore.java b/src/main/java/com/tuoheng/machine/redis/RedisStateStore.java
similarity index 91%
rename from src/main/java/com/tuoheng/status/machine/redis/RedisStateStore.java
rename to src/main/java/com/tuoheng/machine/redis/RedisStateStore.java
index 93561fc..9730634 100644
--- a/src/main/java/com/tuoheng/status/machine/redis/RedisStateStore.java
+++ b/src/main/java/com/tuoheng/machine/redis/RedisStateStore.java
@@ -1,9 +1,9 @@
-package com.tuoheng.status.machine.redis;
+package com.tuoheng.machine.redis;
-import com.tuoheng.status.machine.status.AirportState;
-import com.tuoheng.status.machine.status.CoverState;
-import com.tuoheng.status.machine.status.DroneState;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.status.AirportState;
+import com.tuoheng.machine.status.CoverState;
+import com.tuoheng.machine.status.DroneState;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.stereotype.Component;
import java.util.Map;
diff --git a/src/main/java/com/tuoheng/status/machine/repository/AirportPlatformRepository.java b/src/main/java/com/tuoheng/machine/repository/AirportPlatformRepository.java
similarity index 95%
rename from src/main/java/com/tuoheng/status/machine/repository/AirportPlatformRepository.java
rename to src/main/java/com/tuoheng/machine/repository/AirportPlatformRepository.java
index ffe1653..bbd26eb 100644
--- a/src/main/java/com/tuoheng/status/machine/repository/AirportPlatformRepository.java
+++ b/src/main/java/com/tuoheng/machine/repository/AirportPlatformRepository.java
@@ -1,6 +1,6 @@
-package com.tuoheng.status.machine.repository;
+package com.tuoheng.machine.repository;
-import com.tuoheng.status.machine.platform.PlatformType;
+import com.tuoheng.machine.platform.PlatformType;
import org.springframework.stereotype.Repository;
import java.util.Map;
diff --git a/src/main/java/com/tuoheng/status/machine/service/AirportMachineService.java b/src/main/java/com/tuoheng/machine/service/AirportMachineService.java
similarity index 95%
rename from src/main/java/com/tuoheng/status/machine/service/AirportMachineService.java
rename to src/main/java/com/tuoheng/machine/service/AirportMachineService.java
index b69871e..a0040c6 100644
--- a/src/main/java/com/tuoheng/status/machine/service/AirportMachineService.java
+++ b/src/main/java/com/tuoheng/machine/service/AirportMachineService.java
@@ -1,12 +1,11 @@
-package com.tuoheng.status.machine.service;
+package com.tuoheng.machine.service;
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.redis.RedisStateStore;
-import com.tuoheng.status.machine.status.AirportState;
+import com.tuoheng.machine.events.AirportEvent;
+import com.tuoheng.machine.redis.RedisStateStore;
+import com.tuoheng.machine.status.AirportState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.statemachine.StateMachine;
import org.springframework.statemachine.config.StateMachineFactory;
-import org.springframework.statemachine.support.DefaultStateMachineContext;
import org.springframework.stereotype.Component;
import java.util.Map;
diff --git a/src/main/java/com/tuoheng/status/machine/service/CoverMachineService.java b/src/main/java/com/tuoheng/machine/service/CoverMachineService.java
similarity index 91%
rename from src/main/java/com/tuoheng/status/machine/service/CoverMachineService.java
rename to src/main/java/com/tuoheng/machine/service/CoverMachineService.java
index 44c9195..da31118 100644
--- a/src/main/java/com/tuoheng/status/machine/service/CoverMachineService.java
+++ b/src/main/java/com/tuoheng/machine/service/CoverMachineService.java
@@ -1,12 +1,11 @@
-package com.tuoheng.status.machine.service;
+package com.tuoheng.machine.service;
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.redis.RedisStateStore;
-import com.tuoheng.status.machine.status.CoverState;
+import com.tuoheng.machine.events.CoverEvent;
+import com.tuoheng.machine.redis.RedisStateStore;
+import com.tuoheng.machine.status.CoverState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.statemachine.StateMachine;
import org.springframework.statemachine.config.StateMachineFactory;
-import org.springframework.statemachine.support.DefaultStateMachineContext;
import org.springframework.stereotype.Component;
import java.util.Map;
diff --git a/src/main/java/com/tuoheng/status/machine/service/DrcMachineService.java b/src/main/java/com/tuoheng/machine/service/DrcMachineService.java
similarity index 96%
rename from src/main/java/com/tuoheng/status/machine/service/DrcMachineService.java
rename to src/main/java/com/tuoheng/machine/service/DrcMachineService.java
index a0d7c2b..acf76ab 100644
--- a/src/main/java/com/tuoheng/status/machine/service/DrcMachineService.java
+++ b/src/main/java/com/tuoheng/machine/service/DrcMachineService.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.service;
+package com.tuoheng.machine.service;
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.redis.RedisStateStore;
-import com.tuoheng.status.machine.status.DrcState;
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.redis.RedisStateStore;
+import com.tuoheng.machine.status.DrcState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.statemachine.StateMachine;
import org.springframework.statemachine.config.StateMachineFactory;
diff --git a/src/main/java/com/tuoheng/status/machine/service/DroneMachineService.java b/src/main/java/com/tuoheng/machine/service/DroneMachineService.java
similarity index 96%
rename from src/main/java/com/tuoheng/status/machine/service/DroneMachineService.java
rename to src/main/java/com/tuoheng/machine/service/DroneMachineService.java
index 9a3a3ec..5ed33fb 100644
--- a/src/main/java/com/tuoheng/status/machine/service/DroneMachineService.java
+++ b/src/main/java/com/tuoheng/machine/service/DroneMachineService.java
@@ -1,8 +1,8 @@
-package com.tuoheng.status.machine.service;
+package com.tuoheng.machine.service;
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.redis.RedisStateStore;
-import com.tuoheng.status.machine.status.DroneState;
+import com.tuoheng.machine.events.DroneEvent;
+import com.tuoheng.machine.redis.RedisStateStore;
+import com.tuoheng.machine.status.DroneState;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.statemachine.StateMachine;
import org.springframework.statemachine.config.StateMachineFactory;
diff --git a/src/main/java/com/tuoheng/status/machine/status/AirportState.java b/src/main/java/com/tuoheng/machine/status/AirportState.java
similarity index 93%
rename from src/main/java/com/tuoheng/status/machine/status/AirportState.java
rename to src/main/java/com/tuoheng/machine/status/AirportState.java
index 3dc7cdf..e907e4d 100644
--- a/src/main/java/com/tuoheng/status/machine/status/AirportState.java
+++ b/src/main/java/com/tuoheng/machine/status/AirportState.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.status;
+package com.tuoheng.machine.status;
/**
* 机巢状态枚举(简化版 - 舱门状态已分离)
diff --git a/src/main/java/com/tuoheng/status/machine/status/CoverState.java b/src/main/java/com/tuoheng/machine/status/CoverState.java
similarity index 91%
rename from src/main/java/com/tuoheng/status/machine/status/CoverState.java
rename to src/main/java/com/tuoheng/machine/status/CoverState.java
index 5f58d3b..e9afe66 100644
--- a/src/main/java/com/tuoheng/status/machine/status/CoverState.java
+++ b/src/main/java/com/tuoheng/machine/status/CoverState.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.status;
+package com.tuoheng.machine.status;
/**
* 舱门状态枚举
diff --git a/src/main/java/com/tuoheng/status/machine/status/DrcState.java b/src/main/java/com/tuoheng/machine/status/DrcState.java
similarity index 92%
rename from src/main/java/com/tuoheng/status/machine/status/DrcState.java
rename to src/main/java/com/tuoheng/machine/status/DrcState.java
index 5b477db..b81328d 100644
--- a/src/main/java/com/tuoheng/status/machine/status/DrcState.java
+++ b/src/main/java/com/tuoheng/machine/status/DrcState.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.status;
+package com.tuoheng.machine.status;
/**
* 飞行控制模式(DRC)
diff --git a/src/main/java/com/tuoheng/status/machine/status/DroneState.java b/src/main/java/com/tuoheng/machine/status/DroneState.java
similarity index 97%
rename from src/main/java/com/tuoheng/status/machine/status/DroneState.java
rename to src/main/java/com/tuoheng/machine/status/DroneState.java
index 90d57bc..2bdca6e 100644
--- a/src/main/java/com/tuoheng/status/machine/status/DroneState.java
+++ b/src/main/java/com/tuoheng/machine/status/DroneState.java
@@ -1,4 +1,4 @@
-package com.tuoheng.status.machine.status;
+package com.tuoheng.machine.status;
/**
* 分为:准备中 -> 飞行中 -> 返航 三个大状态
diff --git a/src/main/java/com/tuoheng/status/machine/action/airport/OfflineAction.java b/src/main/java/com/tuoheng/status/machine/action/airport/OfflineAction.java
deleted file mode 100644
index 2938037..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/airport/OfflineAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.airport;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base action for machine offline handling; platform implementations extend this.
- */
-public abstract class OfflineAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/airport/OnlineAction.java b/src/main/java/com/tuoheng/status/machine/action/airport/OnlineAction.java
deleted file mode 100644
index f84004c..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/airport/OnlineAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.airport;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base action for machine online handling; platform implementations extend this.
- */
-public abstract class OnlineAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/cover/CloseCoverAction.java b/src/main/java/com/tuoheng/status/machine/action/cover/CloseCoverAction.java
deleted file mode 100644
index 2b30ee2..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/cover/CloseCoverAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.cover;
-
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.CoverState;
-
-/**
- * Base action for closing the cover; platform implementations extend this.
- */
-public abstract class CloseCoverAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/cover/CoverClosedAction.java b/src/main/java/com/tuoheng/status/machine/action/cover/CoverClosedAction.java
deleted file mode 100644
index 59de7fc..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/cover/CoverClosedAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.cover;
-
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.CoverState;
-
-/**
- * Base action for cover-closed handling; platform implementations extend this.
- */
-public abstract class CoverClosedAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/cover/CoverOpenedAction.java b/src/main/java/com/tuoheng/status/machine/action/cover/CoverOpenedAction.java
deleted file mode 100644
index 1baa2fc..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/cover/CoverOpenedAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.cover;
-
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.CoverState;
-
-/**
- * Base action for cover-opened handling; platform implementations extend this.
- */
-public abstract class CoverOpenedAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/cover/OpenCoverAction.java b/src/main/java/com/tuoheng/status/machine/action/cover/OpenCoverAction.java
deleted file mode 100644
index 3234b7d..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/cover/OpenCoverAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.cover;
-
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.CoverState;
-
-/**
- * Base action for opening the cover; platform implementations extend this.
- */
-public abstract class OpenCoverAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/debug/CloseDebugModeAction.java b/src/main/java/com/tuoheng/status/machine/action/debug/CloseDebugModeAction.java
deleted file mode 100644
index e1d8eeb..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/debug/CloseDebugModeAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.debug;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base action for closing debug mode; platform implementations extend this.
- */
-public abstract class CloseDebugModeAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/debug/OpenDebugModeAction.java b/src/main/java/com/tuoheng/status/machine/action/debug/OpenDebugModeAction.java
deleted file mode 100644
index 25ab308..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/debug/OpenDebugModeAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.debug;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base action for opening debug mode; platform implementations extend this.
- */
-public abstract class OpenDebugModeAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/drc/EnterAction.java b/src/main/java/com/tuoheng/status/machine/action/drc/EnterAction.java
deleted file mode 100644
index aa7f420..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drc/EnterAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drc;
-
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DrcState;
-
-/**
- * Base action for DRC enter handling; platform implementations extend this.
- */
-public abstract class EnterAction implements PlatformAction {
-}
diff --git a/src/main/java/com/tuoheng/status/machine/action/drc/EnteredAction.java b/src/main/java/com/tuoheng/status/machine/action/drc/EnteredAction.java
deleted file mode 100644
index 7229bb7..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drc/EnteredAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drc;
-
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DrcState;
-
-/**
- * Base action for DRC entered handling; platform implementations extend this.
- */
-public abstract class EnteredAction implements PlatformAction {
-}
diff --git a/src/main/java/com/tuoheng/status/machine/action/drc/ExitAction.java b/src/main/java/com/tuoheng/status/machine/action/drc/ExitAction.java
deleted file mode 100644
index b2018dc..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drc/ExitAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drc;
-
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DrcState;
-
-/**
- * Base action for DRC exit handling; platform implementations extend this.
- */
-public abstract class ExitAction implements PlatformAction {
-}
diff --git a/src/main/java/com/tuoheng/status/machine/action/drc/ExitedAction.java b/src/main/java/com/tuoheng/status/machine/action/drc/ExitedAction.java
deleted file mode 100644
index 3e637f4..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drc/ExitedAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drc;
-
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DrcState;
-
-/**
- * Base action for DRC exited handling; platform implementations extend this.
- */
-public abstract class ExitedAction implements PlatformAction {
-}
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/ArriveAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/ArriveAction.java
deleted file mode 100644
index 9e64e81..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/ArriveAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone arrive at destination handling; platform implementations extend this.
- */
-public abstract class ArriveAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/CancelPointAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/CancelPointAction.java
deleted file mode 100644
index c7a07e7..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/CancelPointAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone cancel point operation handling; platform implementations extend this.
- */
-public abstract class CancelPointAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/EmergencyStopAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/EmergencyStopAction.java
deleted file mode 100644
index 45c74bd..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/EmergencyStopAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone emergency stop handling; platform implementations extend this.
- */
-public abstract class EmergencyStopAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/OfflineAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/OfflineAction.java
deleted file mode 100644
index 8fd96e5..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/OfflineAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone offline handling; platform implementations extend this.
- */
-public abstract class OfflineAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/PointFlyingCompletedAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/PointFlyingCompletedAction.java
deleted file mode 100644
index 5f76f45..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/PointFlyingCompletedAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone point flying completed handling; platform implementations extend this.
- */
-public abstract class PointFlyingCompletedAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/PointPrepareCompletedAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/PointPrepareCompletedAction.java
deleted file mode 100644
index 7362245..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/PointPrepareCompletedAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone point prepare completed handling; platform implementations extend this.
- */
-public abstract class PointPrepareCompletedAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/PointToFlyingAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/PointToFlyingAction.java
deleted file mode 100644
index 9e99ab2..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/PointToFlyingAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone point to flying handling; platform implementations extend this.
- */
-public abstract class PointToFlyingAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/PointToReturnAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/PointToReturnAction.java
deleted file mode 100644
index 73bdf91..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/PointToReturnAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone point to return handling; platform implementations extend this.
- */
-public abstract class PointToReturnAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/PrepareCompletedAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/PrepareCompletedAction.java
deleted file mode 100644
index 38b9eb6..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/PrepareCompletedAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone prepare completed handling; platform implementations extend this.
- */
-public abstract class PrepareCompletedAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/ResumeFlyingAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/ResumeFlyingAction.java
deleted file mode 100644
index 2674bdd..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/ResumeFlyingAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone resume flying handling; platform implementations extend this.
- */
-public abstract class ResumeFlyingAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/ResumeReturnAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/ResumeReturnAction.java
deleted file mode 100644
index 8974ea0..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/ResumeReturnAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone resume return handling; platform implementations extend this.
- */
-public abstract class ResumeReturnAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/ReturnCompletedAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/ReturnCompletedAction.java
deleted file mode 100644
index 218ad50..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/ReturnCompletedAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone return completed handling; platform implementations extend this.
- */
-public abstract class ReturnCompletedAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/ReturnEmergencyStopAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/ReturnEmergencyStopAction.java
deleted file mode 100644
index 76b11ba..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/ReturnEmergencyStopAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone return emergency stop handling; platform implementations extend this.
- */
-public abstract class ReturnEmergencyStopAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/StartFlyingAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/StartFlyingAction.java
deleted file mode 100644
index 574d957..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/StartFlyingAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone start flying handling; platform implementations extend this.
- */
-public abstract class StartFlyingAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/StartPointingAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/StartPointingAction.java
deleted file mode 100644
index 526473e..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/StartPointingAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone start pointing operation handling; platform implementations extend this.
- */
-public abstract class StartPointingAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/StartPrepareAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/StartPrepareAction.java
deleted file mode 100644
index 5ff9102..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/StartPrepareAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone start prepare handling; platform implementations extend this.
- */
-public abstract class StartPrepareAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/drone/StartReturnAction.java b/src/main/java/com/tuoheng/status/machine/action/drone/StartReturnAction.java
deleted file mode 100644
index eaf723a..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/drone/StartReturnAction.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.action.drone;
-
-import com.tuoheng.status.machine.events.DroneEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.DroneState;
-
-/**
- * Base action for drone start return handling; platform implementations extend this.
- */
-public abstract class StartReturnAction implements PlatformAction {
-}
\ No newline at end of file
diff --git a/src/main/java/com/tuoheng/status/machine/action/reboot/RebootAction.java b/src/main/java/com/tuoheng/status/machine/action/reboot/RebootAction.java
deleted file mode 100644
index 59979fb..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/reboot/RebootAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.reboot;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base action for rebooting; platform implementations extend this.
- */
-public abstract class RebootAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/action/reboot/RebootCompletedAction.java b/src/main/java/com/tuoheng/status/machine/action/reboot/RebootCompletedAction.java
deleted file mode 100644
index f505084..0000000
--- a/src/main/java/com/tuoheng/status/machine/action/reboot/RebootCompletedAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.action.reboot;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformAction;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base action for completing reboot; platform implementations extend this.
- */
-public abstract class RebootCompletedAction implements PlatformAction {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/airport/CanOfflineGuard.java b/src/main/java/com/tuoheng/status/machine/guard/airport/CanOfflineGuard.java
deleted file mode 100644
index c533823..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/airport/CanOfflineGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.airport;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base guard for checking if an machine can go offline; platform implementations extend this.
- */
-public abstract class CanOfflineGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/airport/CanOnlineGuard.java b/src/main/java/com/tuoheng/status/machine/guard/airport/CanOnlineGuard.java
deleted file mode 100644
index f84bbf3..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/airport/CanOnlineGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.airport;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base guard for checking if an machine can go online; platform implementations extend this.
- */
-public abstract class CanOnlineGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/airport/IsAirportOnlineGuard.java b/src/main/java/com/tuoheng/status/machine/guard/airport/IsAirportOnlineGuard.java
deleted file mode 100644
index 78461be..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/airport/IsAirportOnlineGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.airport;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base guard for checking machine online status; platform implementations extend this.
- */
-public abstract class IsAirportOnlineGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/cover/CanCloseCoverGuard.java b/src/main/java/com/tuoheng/status/machine/guard/cover/CanCloseCoverGuard.java
deleted file mode 100644
index 4209de7..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/cover/CanCloseCoverGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.cover;
-
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.CoverState;
-
-/**
- * Base guard for closing the cover; platform implementations extend this.
- */
-public abstract class CanCloseCoverGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/cover/CanOpenCoverGuard.java b/src/main/java/com/tuoheng/status/machine/guard/cover/CanOpenCoverGuard.java
deleted file mode 100644
index fe2da5f..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/cover/CanOpenCoverGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.cover;
-
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.CoverState;
-
-/**
- * Base guard for opening the cover; platform implementations extend this.
- */
-public abstract class CanOpenCoverGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/cover/IsCoverClosedGuard.java b/src/main/java/com/tuoheng/status/machine/guard/cover/IsCoverClosedGuard.java
deleted file mode 100644
index 71cce62..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/cover/IsCoverClosedGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.cover;
-
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.CoverState;
-
-/**
- * Base guard for verifying the cover is closed; platform implementations extend this.
- */
-public abstract class IsCoverClosedGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/cover/IsCoverOpenedGuard.java b/src/main/java/com/tuoheng/status/machine/guard/cover/IsCoverOpenedGuard.java
deleted file mode 100644
index 6e34440..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/cover/IsCoverOpenedGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.cover;
-
-import com.tuoheng.status.machine.events.CoverEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.CoverState;
-
-/**
- * Base guard for verifying the cover is opened; platform implementations extend this.
- */
-public abstract class IsCoverOpenedGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/debug/CanCloseDebugModeGuard.java b/src/main/java/com/tuoheng/status/machine/guard/debug/CanCloseDebugModeGuard.java
deleted file mode 100644
index 51d0f1f..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/debug/CanCloseDebugModeGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.debug;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base guard for closing debug mode; platform implementations extend this.
- */
-public abstract class CanCloseDebugModeGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/debug/IsDebugModeGuard.java b/src/main/java/com/tuoheng/status/machine/guard/debug/IsDebugModeGuard.java
deleted file mode 100644
index 37419e4..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/debug/IsDebugModeGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.debug;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base guard for checking debug mode; platform implementations extend this.
- */
-public abstract class IsDebugModeGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/debug/IsNotDebugModeGuard.java b/src/main/java/com/tuoheng/status/machine/guard/debug/IsNotDebugModeGuard.java
deleted file mode 100644
index f52f5ed..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/debug/IsNotDebugModeGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.debug;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base guard for checking non-debug mode; platform implementations extend this.
- */
-public abstract class IsNotDebugModeGuard implements PlatformGuard {
-}
-
diff --git a/src/main/java/com/tuoheng/status/machine/guard/drc/CanEnterGuard.java b/src/main/java/com/tuoheng/status/machine/guard/drc/CanEnterGuard.java
deleted file mode 100644
index 70c4d9f..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/drc/CanEnterGuard.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.guard.drc;
-
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.DrcState;
-
-/**
- * Base guard for checking if can enter DRC mode; platform implementations extend this.
- */
-public abstract class CanEnterGuard implements PlatformGuard {
-}
diff --git a/src/main/java/com/tuoheng/status/machine/guard/drc/CanExitGuard.java b/src/main/java/com/tuoheng/status/machine/guard/drc/CanExitGuard.java
deleted file mode 100644
index ea90df9..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/drc/CanExitGuard.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.tuoheng.status.machine.guard.drc;
-
-import com.tuoheng.status.machine.events.DrcEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.DrcState;
-
-/**
- * Base guard for checking if can exit DRC mode; platform implementations extend this.
- */
-public abstract class CanExitGuard implements PlatformGuard {
-}
diff --git a/src/main/java/com/tuoheng/status/machine/guard/reboot/IsRebootCompletedGuard.java b/src/main/java/com/tuoheng/status/machine/guard/reboot/IsRebootCompletedGuard.java
deleted file mode 100644
index 1847d56..0000000
--- a/src/main/java/com/tuoheng/status/machine/guard/reboot/IsRebootCompletedGuard.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.tuoheng.status.machine.guard.reboot;
-
-import com.tuoheng.status.machine.events.AirportEvent;
-import com.tuoheng.status.machine.platform.strategy.PlatformGuard;
-import com.tuoheng.status.machine.status.AirportState;
-
-/**
- * Base guard for verifying reboot completion; platform implementations extend this.
- */
-public abstract class IsRebootCompletedGuard implements PlatformGuard {
-}
-
diff --git a/src/test/java/com/tuoheng/AppTest.java b/src/test/java/com/tuoheng/AppTest.java
deleted file mode 100644
index bdb91ad..0000000
--- a/src/test/java/com/tuoheng/AppTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.tuoheng;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static Test suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff --git a/src/test/java/com/tuoheng/machine/DrcStateMachineTest.java b/src/test/java/com/tuoheng/machine/DrcStateMachineTest.java
new file mode 100644
index 0000000..a027aa2
--- /dev/null
+++ b/src/test/java/com/tuoheng/machine/DrcStateMachineTest.java
@@ -0,0 +1,384 @@
+package com.tuoheng.machine;
+
+import com.tuoheng.machine.events.DrcEvent;
+import com.tuoheng.machine.platform.PlatformType;
+import com.tuoheng.machine.platform.factory.PlatformStrategyFactory;
+import com.tuoheng.machine.repository.AirportPlatformRepository;
+import com.tuoheng.machine.service.DrcMachineService;
+import com.tuoheng.machine.status.DrcState;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
+/**
+ * DRC状态机测试
+ * 测试DRC模式的完整状态转换流程
+ */
+@SpringBootTest
+public class DrcStateMachineTest {
+
+ @Autowired
+ private DrcMachineService drcMachineService;
+
+ @Autowired
+ private PlatformStrategyFactory platformStrategyFactory;
+
+ @MockBean
+ private AirportPlatformRepository airportPlatformRepository;
+
+ private static final String TEST_AIRPORT_SN = "test-airport-001";
+
+ /**
+ * 测试 Spring Boot 依赖注入是否正常工作
+ */
+ @Test
+ public void testAutowiredInjection() {
+ System.out.println("\n========== 测试依赖注入 ==========");
+
+ // 验证 PlatformStrategyFactory 是否成功注入
+ assertNotNull(platformStrategyFactory, "PlatformStrategyFactory 应该被成功注入");
+ System.out.println("✓ PlatformStrategyFactory 注入成功: " + platformStrategyFactory.getClass().getName());
+
+ // 验证 DrcMachineService 是否成功注入
+ assertNotNull(drcMachineService, "DrcMachineService 应该被成功注入");
+ System.out.println("✓ DrcMachineService 注入成功: " + drcMachineService.getClass().getName());
+
+ // 验证 AirportPlatformRepository Mock 是否成功
+ assertNotNull(airportPlatformRepository, "AirportPlatformRepository Mock 应该被成功创建");
+ System.out.println("✓ AirportPlatformRepository Mock 创建成功");
+
+ // 配置 Mock 行为
+ when(airportPlatformRepository.getPlatformType(anyString())).thenReturn(PlatformType.DJI);
+
+ // 测试 Mock 是否工作
+ PlatformType platformType = airportPlatformRepository.getPlatformType(TEST_AIRPORT_SN);
+ assertEquals(PlatformType.DJI, platformType, "Mock 应该返回 DJI 平台类型");
+ System.out.println("✓ Mock 行为配置成功,返回平台类型: " + platformType.getName());
+
+ System.out.println("\n========== 依赖注入测试通过 ✓ ==========\n");
+ }
+
+// private DrcMachineService drcMachineService;
+// private PlatformStrategyFactory platformStrategyFactory;
+// private AnnotationConfigApplicationContext context;
+//
+// private static final String TEST_AIRPORT_SN = "test-airport-001";
+//
+// /**
+// * 测试配置类
+// */
+// @Configuration
+// static class TestConfig {
+// @Bean
+// public RedisStateStore redisStateStore() {
+// return new RedisStateStore();
+// }
+//
+// @Bean
+// public DjiCanEnterGuard djiCanEnterGuard() {
+// return new DjiCanEnterGuard();
+// }
+//
+// @Bean
+// public DjiCanExitGuard djiCanExitGuard() {
+// return new DjiCanExitGuard();
+// }
+//
+// @Bean
+// public DjiEnterAction djiEnterAction() {
+// return new DjiEnterAction();
+// }
+//
+// @Bean
+// public DjiEnteredAction djiEnteredAction() {
+// return new DjiEnteredAction();
+// }
+//
+// @Bean
+// public DjiExitAction djiExitAction() {
+// return new DjiExitAction();
+// }
+//
+// @Bean
+// public DjiExitedAction djiExitedAction() {
+// return new DjiExitedAction();
+// }
+//
+// @Bean
+// public DjiDrcListener djiDrcListener() {
+// return new DjiDrcListener();
+// }
+//
+// @Bean
+// public DjiDrcPlatformStrategy djiDrcPlatformStrategy() {
+// return new DjiDrcPlatformStrategy();
+// }
+//
+// @Bean
+// public AirportPlatformRepository airportPlatformRepository() {
+// // Mock实现,返回DJI平台类型
+// return new AirportPlatformRepository() {
+// @Override
+// public PlatformType getPlatformType(String sn) {
+// return PlatformType.DJI;
+// }
+//
+// @Override
+// public void registerAirport(String sn, PlatformType platformType) {
+// }
+// };
+// }
+//
+// @Bean
+// public PlatformStrategyFactory platformStrategyFactory() {
+// return new PlatformStrategyFactory();
+// }
+//
+// @Bean
+// public DrcMachineConfig drcMachineConfig() {
+// return new DrcMachineConfig();
+// }
+//
+// @Bean
+// public DrcMachineService drcMachineService() {
+// return new DrcMachineService();
+// }
+// }
+//
+// @Override
+// protected void setUp() throws Exception {
+// super.setUp();
+// System.out.println("========== 开始DRC状态机测试 ==========");
+//
+// // 初始化Spring上下文
+// context = new AnnotationConfigApplicationContext(TestConfig.class);
+// drcMachineService = context.getBean(DrcMachineService.class);
+// platformStrategyFactory = context.getBean(PlatformStrategyFactory.class);
+// }
+//
+// @Override
+// protected void tearDown() throws Exception {
+// if (context != null) {
+// context.close();
+// }
+// super.tearDown();
+// }
+//
+// /**
+// * 测试DRC状态机的完整流程:
+// * UNKNOWN -> EXITED -> ENTERING -> ENTERED -> EXITING -> EXITED
+// */
+// @Test
+// public void testDrcCompleteFlow() {
+// System.out.println("\n========== 测试DRC完整流程 ==========");
+//
+// // 1. 初始状态应该是 UNKNOWN
+// DrcState initialState = drcMachineService.getCurrentState(TEST_AIRPORT_SN);
+// assertNotNull("状态机应该已创建", initialState);
+// assertEquals("初始状态应该是UNKNOWN", DrcState.UNKNOWN, initialState);
+// System.out.println("✓ 步骤1: 初始状态验证通过 - UNKNOWN");
+//
+// // 2. 从 UNKNOWN 同步到 EXITED(退出状态)
+// boolean syncResult = drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXITED);
+// assertTrue("同步到EXITED应该成功", syncResult);
+// assertEquals("当前状态应该是EXITED", DrcState.EXITED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 步骤2: UNKNOWN -> EXITED 转换成功");
+//
+// // 3. 进入DRC模式:EXITED -> ENTERING
+// boolean enterResult = drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.ENTER);
+// assertTrue("进入DRC模式应该成功", enterResult);
+// assertEquals("当前状态应该是ENTERING", DrcState.ENTERING,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 步骤3: EXITED -> ENTERING 转换成功");
+//
+// // 4. 进入完成:ENTERING -> ENTERED
+// boolean enteredResult = drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.ENTERED);
+// assertTrue("进入完成应该成功", enteredResult);
+// assertEquals("当前状态应该是ENTERED", DrcState.ENTERED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 步骤4: ENTERING -> ENTERED 转换成功");
+//
+// // 5. 退出DRC模式:ENTERED -> EXITING
+// boolean exitResult = drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXIT);
+// assertTrue("退出DRC模式应该成功", exitResult);
+// assertEquals("当前状态应该是EXITING", DrcState.EXITING,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 步骤5: ENTERED -> EXITING 转换成功");
+//
+// // 6. 退出完成:EXITING -> EXITED
+// boolean exitedResult = drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXITED);
+// assertTrue("退出完成应该成功", exitedResult);
+// assertEquals("当前状态应该是EXITED", DrcState.EXITED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 步骤6: EXITING -> EXITED 转换成功");
+//
+// System.out.println("\n========== DRC完整流程测试通过 ✓ ==========\n");
+// }
+//
+// /**
+// * 测试DRC状态机的循环流程:
+// * 可以多次进入和退出DRC模式
+// */
+// @Test
+// public void testDrcCycleFlow() {
+// System.out.println("\n========== 测试DRC循环流程 ==========");
+//
+// // 初始化到EXITED状态
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXITED);
+// assertEquals("初始状态应该是EXITED", DrcState.EXITED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// // 第一次循环:进入 -> 退出
+// System.out.println("\n--- 第一次循环 ---");
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.ENTER);
+// assertEquals("应该进入ENTERING状态", DrcState.ENTERING,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.ENTERED);
+// assertEquals("应该进入ENTERED状态", DrcState.ENTERED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXIT);
+// assertEquals("应该进入EXITING状态", DrcState.EXITING,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXITED);
+// assertEquals("应该回到EXITED状态", DrcState.EXITED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 第一次循环完成");
+//
+// // 第二次循环:再次进入 -> 退出
+// System.out.println("\n--- 第二次循环 ---");
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.ENTER);
+// assertEquals("应该再次进入ENTERING状态", DrcState.ENTERING,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.ENTERED);
+// assertEquals("应该再次进入ENTERED状态", DrcState.ENTERED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXIT);
+// assertEquals("应该再次进入EXITING状态", DrcState.EXITING,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXITED);
+// assertEquals("应该再次回到EXITED状态", DrcState.EXITED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 第二次循环完成");
+//
+// System.out.println("\n========== DRC循环流程测试通过 ✓ ==========\n");
+// }
+//
+// /**
+// * 测试非法状态转换
+// * 验证状态机会拒绝不合法的状态转换
+// */
+// @Test
+// public void testInvalidStateTransitions() {
+// System.out.println("\n========== 测试非法状态转换 ==========");
+//
+// // 初始化到EXITED状态
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXITED);
+// assertEquals("初始状态应该是EXITED", DrcState.EXITED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// // 尝试从EXITED直接到ENTERED(应该失败)
+// boolean invalidResult = drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.ENTERED);
+// assertFalse("从EXITED直接到ENTERED应该失败", invalidResult);
+// assertEquals("状态应该保持EXITED", DrcState.EXITED,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 非法转换被正确拒绝: EXITED -X-> ENTERED");
+//
+// // 进入ENTERING状态
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.ENTER);
+// assertEquals("应该进入ENTERING状态", DrcState.ENTERING,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+//
+// // 尝试从ENTERING直接到EXITING(应该失败)
+// invalidResult = drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXIT);
+// assertFalse("从ENTERING直接到EXITING应该失败", invalidResult);
+// assertEquals("状态应该保持ENTERING", DrcState.ENTERING,
+// drcMachineService.getCurrentState(TEST_AIRPORT_SN));
+// System.out.println("✓ 非法转换被正确拒绝: ENTERING -X-> EXITING");
+//
+// System.out.println("\n========== 非法状态转换测试通过 ✓ ==========\n");
+// }
+//
+// /**
+// * 测试状态机的状态查询功能
+// */
+// @Test
+// public void testStateQuery() {
+// System.out.println("\n========== 测试状态查询功能 ==========");
+//
+// // 初始化到EXITED状态
+// drcMachineService.sendEvent(TEST_AIRPORT_SN, DrcEvent.EXITED);
+//
+// // 测试getCurrentState
+// DrcState currentState = drcMachineService.getCurrentState(TEST_AIRPORT_SN);
+// assertNotNull("当前状态不应该为null", currentState);
+// assertEquals("当前状态应该是EXITED", DrcState.EXITED, currentState);
+// System.out.println("✓ getCurrentState() 工作正常");
+//
+// // 测试getCurrentStates(获取状态字符串)
+// String statesString = drcMachineService.getCurrentStates(TEST_AIRPORT_SN);
+// assertNotNull("状态字符串不应该为null", statesString);
+// assertTrue("状态字符串应该包含EXITED", statesString.contains("EXITED"));
+// System.out.println("✓ getCurrentStates() 工作正常: " + statesString);
+//
+// // 测试isInState
+// boolean isInExited = drcMachineService.isInState(TEST_AIRPORT_SN, DrcState.EXITED);
+// assertTrue("应该处于EXITED状态", isInExited);
+// System.out.println("✓ isInState() 工作正常");
+//
+// boolean isInEntered = drcMachineService.isInState(TEST_AIRPORT_SN, DrcState.ENTERED);
+// assertFalse("不应该处于ENTERED状态", isInEntered);
+// System.out.println("✓ isInState() 负面测试通过");
+//
+// System.out.println("\n========== 状态查询功能测试通过 ✓ ==========\n");
+// }
+//
+// /**
+// * 测试状态机管理功能
+// */
+// @Test
+// public void testStateMachineManagement() {
+// System.out.println("\n========== 测试状态机管理功能 ==========");
+//
+// String testAirport = "test-airport-mgmt";
+//
+// // 测试状态机创建
+// assertFalse("状态机应该不存在", drcMachineService.hasStateMachine(testAirport));
+// drcMachineService.getOrCreateStateMachine(testAirport);
+// assertTrue("状态机应该已创建", drcMachineService.hasStateMachine(testAirport));
+// System.out.println("✓ 状态机创建成功");
+//
+// // 测试状态机计数
+// int count = drcMachineService.getStateMachineCount();
+// assertTrue("状态机数量应该大于0", count > 0);
+// System.out.println("✓ 状态机计数: " + count);
+//
+// // 测试状态机重启
+// drcMachineService.sendEvent(testAirport, DrcEvent.EXITED);
+// assertEquals("状态应该是EXITED", DrcState.EXITED,
+// drcMachineService.getCurrentState(testAirport));
+//
+// drcMachineService.restartStateMachine(testAirport);
+// assertEquals("重启后状态应该回到UNKNOWN", DrcState.UNKNOWN,
+// drcMachineService.getCurrentState(testAirport));
+// System.out.println("✓ 状态机重启成功");
+//
+// // 测试状态机移除
+// drcMachineService.removeStateMachine(testAirport);
+// assertFalse("状态机应该已移除", drcMachineService.hasStateMachine(testAirport));
+// System.out.println("✓ 状态机移除成功");
+//
+// System.out.println("\n========== 状态机管理功能测试通过 ✓ ==========\n");
+// }
+}