修改demo

This commit is contained in:
孙小云 2025-12-15 18:51:51 +08:00
parent 85b744b0f9
commit 6eeb2d3839
1 changed files with 16 additions and 92 deletions

View File

@ -6,8 +6,7 @@ import com.tuoheng.status.airport.platform.repository.AirportPlatformRepository;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
* 多平台演示程序
* 演示DJIAUTELYUNEEC等多个平台同时运行的场景
* 演示程序当前仅接入 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();
}