You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
7.6 KiB
206 lines
7.6 KiB
@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 |