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.
Software_Architecture/model/代码组织结构图.puml

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