@startuml 代码组织结构图 title 基于空地协同的战场环境探索系统 - 代码组织结构图 skinparam packageStyle rectangle skinparam packageFontSize 10 skinparam packageFontStyle bold skinparam classFontSize 8 skinparam classFontStyle normal package "src/" { package "Client/ (Qt客户端应用)" { package "核心应用层" { file "main.cpp" as main file "BattlefieldExplorationSystem.pro" as proj file "Makefile" as make } package "include/ (头文件)" { package "ui/ (用户界面)" { package "main/" { file "MainWindow.h" as mainH } package "components/ (组件)" { file "RightFunctionPanel.h" as rightPanelH file "DeviceListPanel.h" as deviceListH file "DeviceCard.h" as deviceCardH file "SystemLogPanel.h" as logPanelH } package "dialogs/ (对话框)" { file "RobotDogControlDialog.h" as dogDialogH file "EnemyStatsDialog.h" as enemyDialogH file "DroneControlDialog.h" as droneDialogH file "DeviceDialog.h" as deviceDialogH } file "UIInitializationManager.h" as uiInitH } package "utils/ (工具类)" { file "ConfigManager.h" as configH file "SystemLogger.h" as loggerH } package "core/ (核心功能)" { package "database/ (数据库)" { file "DatabaseManager.h" as dbManagerH file "DatabaseHelper.h" as dbHelperH file "DatabaseConfig.h" as dbConfigH file "EnemyDatabase.h" as enemyDbH file "DogDatabase.h" as dogDbH file "UAVDatabase.h" as uavDbH } } } package "src/ (源文件)" { package "ui/ (用户界面实现)" { package "main/" { file "MainWindow.cpp" as mainCpp } package "components/ (组件实现)" { file "RightFunctionPanel.cpp" as rightPanelCpp file "DeviceListPanel.cpp" as deviceListCpp file "DeviceCard.cpp" as deviceCardCpp file "SystemLogPanel.cpp" as logPanelCpp } package "dialogs/ (对话框实现)" { file "RobotDogControlDialog.cpp" as dogDialogCpp file "EnemyStatsDialog.cpp" as enemyDialogCpp file "DroneControlDialog.cpp" as droneDialogCpp file "DeviceDialog.cpp" as deviceDialogCpp } file "UIInitializationManager.cpp" as uiInitCpp } package "utils/ (工具类实现)" { file "ConfigManager.cpp" as configCpp file "SystemLogger.cpp" as loggerCpp } package "core/ (核心功能实现)" { package "database/ (数据库实现)" { file "DatabaseManager.cpp" as dbManagerCpp file "DatabaseHelper.cpp" as dbHelperCpp file "DatabaseConfig.cpp" as dbConfigCpp file "EnemyDatabase.cpp" as enemyDbCpp file "DogDatabase.cpp" as dogDbCpp file "UAVDatabase.cpp" as uavDbCpp } } } package "forms/ (UI设计文件)" { package "main/" { file "MainWindow.ui" as mainUi } package "dialogs/" { file "DeviceDialog.ui" as deviceUi } } package "AudioModule/ (音频模块)" { file "IntelligenceUI.h" as audioH file "IntelligenceUI.cpp" as audioCpp file "IntelligenceUI.ui" as audioUi } package "FaceLightModule/ (面部识别模块)" { file "FaceLightControl.h" as faceH file "FaceLightControl.cpp" as faceCpp file "FaceLightControl.ui" as faceUi } package "config/ (配置文件)" { file "database.ini" as dbIni file "database.ini.example" as dbIniEx file "README.md" as configReadme } package "database/ (数据库脚本)" { file "enemy_database_schema.sql" as enemySchema file "insert_additional_enemy_data.sql" as enemyData file "test_enemy_database.sql" as enemyTest file "update_enemy_locations.sql" as enemyUpdate } package "其他资源" { file "res.qrc" as res file "代码规范.md" as codeStandard file "BUTTON_LAYOUT_OPTIMIZATION_REPORT.md" as layoutReport } } package "catkin_dog/ (ROS机器人控制)" { package "unitree_ros_to_real/" { package "unitree_legged_real/" { package "src/exe/" as exe package "include/" as realInclude package "launch/" as launch package "scripts/" as scripts package "rviz/" as rviz file "CMakeLists.txt" as realCmake file "package.xml" as realPackage } } package "unitree_legged_sdk/" { package "include/" as sdkInclude package "lib/" as lib package "example/" as example package "example_py/" as examplePy package "python_wrapper/" as pyWrapper file "CMakeLists.txt" as sdkCmake file "package.xml" as sdkPackage file "README.md" as sdkReadme } package "unitree_legged_msgs/" { package "msg/ (ROS消息定义)" { file "HighCmd.msg" as highCmd file "HighState.msg" as highState file "LowCmd.msg" as lowCmd file "LowState.msg" as lowState file "MotorCmd.msg" as motorCmd file "MotorState.msg" as motorState file "IMU.msg" as imu file "BmsState.msg" as bmsState file "LED.msg" as led file "Cartesian.msg" as cartesian } file "CMakeLists.txt" as msgCmake file "package.xml" as msgPackage } package "slamware_ros_sdk_linux-x86_64-gcc9/" as slamware file "CMakeLists.txt" as catkinCmake } } ' 主要模块关系 package "系统架构层次" { note top of Client : "Qt客户端应用\n- 用户界面\n- 数据库管理\n- 设备控制\n- 音频处理\n- 面部识别" note top of catkin_dog : "ROS机器人控制\n- 机器狗SDK\n- 消息通信\n- 导航控制\n- SLAM建图" } ' 核心功能模块 package "核心功能模块" { note as N1 : "1. 空地协同控制\n- 无人机控制\n- 机器狗控制\n- 协同调度" note as N2 : "2. 智能识别系统\n- YOLO目标检测\n- 面部识别\n- 音频处理" note as N3 : "3. 数据管理系统\n- 敌方数据库\n- 设备数据库\n- 情报数据" note as N4 : "4. 可视化界面\n- 3D战场地图\n- 实时视频显示\n- 态势分析" } Client --> N1 : 控制指令 Client --> N2 : 识别结果 Client --> N3 : 数据存储 Client --> N4 : 界面展示 catkin_dog --> N1 : 执行控制 catkin_dog --> N2 : 传感器数据 catkin_dog --> N3 : 位置信息 catkin_dog --> N4 : 状态反馈 @enduml