diff --git a/src/main/java/com/tuoheng/status/airport/demo/MultiPlatformDemo.java b/src/main/java/com/tuoheng/status/airport/demo/MultiPlatformDemo.java index a6b7c83..373f16f 100644 --- a/src/main/java/com/tuoheng/status/airport/demo/MultiPlatformDemo.java +++ b/src/main/java/com/tuoheng/status/airport/demo/MultiPlatformDemo.java @@ -6,8 +6,7 @@ import com.tuoheng.status.airport.platform.repository.AirportPlatformRepository; import org.springframework.context.annotation.AnnotationConfigApplicationContext; /** - * 多平台演示程序 - * 演示DJI、AUTEL、YUNEEC等多个平台同时运行的场景 + * 演示程序(当前仅接入 DJI 平台) */ public class MultiPlatformDemo { @@ -24,15 +23,13 @@ public class MultiPlatformDemo { PlatformStrategyFactory strategyFactory = context.getBean(PlatformStrategyFactory.class); AirportPlatformRepository repository = context.getBean(AirportPlatformRepository.class); - System.out.println("\n========== 多平台机巢系统演示开始 ==========\n"); + System.out.println("\n========== DJI 机巢系统演示开始 ==========\n"); - // ==================== 场景1: 多平台机巢上线 ==================== - System.out.println("【场景1】多平台机巢上线"); + // ==================== 场景1: DJI 机巢上线 ==================== + System.out.println("【场景1】DJI 机巢上线"); System.out.println("----------------------------------------"); String djiAirport = "airport-001"; // DJI平台 - String autelAirport = "airport-002"; // AUTEL平台 - String djiAirport2 = "airport-003"; // DJI平台 System.out.println("1. DJI机巢上线: " + djiAirport); System.out.println(" 平台类型: " + strategyFactory.getPlatformType(djiAirport).getName()); @@ -42,99 +39,46 @@ public class MultiPlatformDemo { System.out.println(); Thread.sleep(500); - System.out.println("2. AUTEL机巢上线: " + autelAirport); - System.out.println(" 平台类型: " + strategyFactory.getPlatformType(autelAirport).getName()); - AirportSystemManager autelManager = strategyFactory.getSystemManager(autelAirport); - autelManager.airportOnline(autelAirport); - System.out.println(" " + autelManager.getFullStatus(autelAirport)); - System.out.println(); - Thread.sleep(500); - - System.out.println("3. 另一个DJI机巢上线: " + djiAirport2); - System.out.println(" 平台类型: " + strategyFactory.getPlatformType(djiAirport2).getName()); - AirportSystemManager djiManager2 = strategyFactory.getSystemManager(djiAirport2); - djiManager2.airportOnline(djiAirport2); - System.out.println(" " + djiManager2.getFullStatus(djiAirport2)); - System.out.println(); - Thread.sleep(500); - - // ==================== 场景2: DJI平台开舱流程 ==================== - System.out.println("【场景2】DJI平台开舱流程"); + // ==================== 场景2: DJI 开舱流程 ==================== + System.out.println("【场景2】DJI 开舱流程"); System.out.println("----------------------------------------"); - System.out.println("4. DJI机巢开启调试模式: " + djiAirport); + System.out.println("2. 开启调试模式: " + djiAirport); djiManager.openDebugMode(djiAirport); System.out.println(" " + djiManager.getFullStatus(djiAirport)); System.out.println(); Thread.sleep(500); - System.out.println("5. DJI机巢开舱: " + djiAirport); + System.out.println("3. 开舱: " + djiAirport); djiManager.openCover(djiAirport); System.out.println(" " + djiManager.getFullStatus(djiAirport)); System.out.println(); Thread.sleep(500); - System.out.println("6. DJI机巢舱门打开完成: " + djiAirport); + System.out.println("4. 舱门打开完成: " + djiAirport); djiManager.coverOpened(djiAirport); System.out.println(" " + djiManager.getFullStatus(djiAirport)); System.out.println(); Thread.sleep(500); - // ==================== 场景3: AUTEL平台开舱流程(同时进行) ==================== - System.out.println("【场景3】AUTEL平台开舱流程(与DJI平台并行)"); + // ==================== 场景3: DJI 关舱流程 ==================== + System.out.println("【场景3】DJI 关舱流程"); System.out.println("----------------------------------------"); - System.out.println("7. AUTEL机巢开启调试模式: " + autelAirport); - autelManager.openDebugMode(autelAirport); - System.out.println(" " + autelManager.getFullStatus(autelAirport)); - System.out.println(); - Thread.sleep(500); - - System.out.println("8. AUTEL机巢开舱: " + autelAirport); - autelManager.openCover(autelAirport); - System.out.println(" " + autelManager.getFullStatus(autelAirport)); - System.out.println(); - Thread.sleep(500); - - // ==================== 场景4: 查看所有机巢状态 ==================== - System.out.println("【场景4】查看所有机巢当前状态"); - System.out.println("----------------------------------------"); - System.out.println("DJI机巢-001: " + djiManager.getFullStatus(djiAirport)); - System.out.println("AUTEL机巢-002: " + autelManager.getFullStatus(autelAirport)); - System.out.println("DJI机巢-003: " + djiManager2.getFullStatus(djiAirport2)); - System.out.println(); - Thread.sleep(500); - - // ==================== 场景5: DJI机巢关舱 ==================== - System.out.println("【场景5】DJI机巢关舱流程"); - System.out.println("----------------------------------------"); - - System.out.println("9. DJI机巢关舱: " + djiAirport); + System.out.println("5. 关舱: " + djiAirport); djiManager.closeCover(djiAirport); System.out.println(" " + djiManager.getFullStatus(djiAirport)); System.out.println(); Thread.sleep(500); - System.out.println("10. DJI机巢舱门关闭完成: " + djiAirport); + System.out.println("6. 舱门关闭完成: " + djiAirport); djiManager.coverClosed(djiAirport); System.out.println(" " + djiManager.getFullStatus(djiAirport)); System.out.println(); Thread.sleep(500); - // ==================== 场景6: 动态注册新平台机巢 ==================== - System.out.println("【场景6】动态注册新平台机巢"); - System.out.println("----------------------------------------"); - - String yuneecAirport = "airport-004"; - System.out.println("11. 注册YUNEEC平台机巢: " + yuneecAirport); - System.out.println(" 平台类型: " + strategyFactory.getPlatformType(yuneecAirport).getName()); - AirportSystemManager yuneecManager = strategyFactory.getSystemManager(yuneecAirport); - yuneecManager.airportOnline(yuneecAirport); - System.out.println(" " + yuneecManager.getFullStatus(yuneecAirport)); - System.out.println(); - - // ==================== 场景7: 最终状态汇总 ==================== - System.out.println("【场景7】所有机巢最终状态汇总"); + // ==================== 场景4: 当前状态汇总 ==================== + System.out.println("【场景4】当前状态汇总"); System.out.println("----------------------------------------"); System.out.println(String.format("%-20s %-15s %s", "机巢SN", "平台类型", "状态")); System.out.println("------------------------------------------------------------"); @@ -142,29 +86,9 @@ public class MultiPlatformDemo { djiAirport, strategyFactory.getPlatformType(djiAirport).getName(), djiManager.getFullStatus(djiAirport))); - System.out.println(String.format("%-20s %-15s %s", - autelAirport, - strategyFactory.getPlatformType(autelAirport).getName(), - autelManager.getFullStatus(autelAirport))); - System.out.println(String.format("%-20s %-15s %s", - djiAirport2, - strategyFactory.getPlatformType(djiAirport2).getName(), - djiManager2.getFullStatus(djiAirport2))); - System.out.println(String.format("%-20s %-15s %s", - yuneecAirport, - strategyFactory.getPlatformType(yuneecAirport).getName(), - yuneecManager.getFullStatus(yuneecAirport))); System.out.println(); - System.out.println("\n========== 多平台机巢系统演示结束 ==========\n"); - - System.out.println("✅ 多平台架构优势:"); - System.out.println(" 1. 支持多个无人机平台(DJI、AUTEL、YUNEEC等)"); - System.out.println(" 2. 各平台独立实现Guard、Action和Listener"); - System.out.println(" 3. 通过数据库配置平台映射关系"); - System.out.println(" 4. 多个平台可以同时运行,互不干扰"); - System.out.println(" 5. 易于扩展新平台,只需实现对应的Strategy接口"); - System.out.println(" 6. 默认Listener提供基础功能,各平台可定制"); + System.out.println("\n========== DJI 机巢系统演示结束 ==========\n"); context.close(); }