Compare commits

..

No commits in common. 'main' and 'huaijin' have entirely different histories.

Binary file not shown.

Binary file not shown.

@ -31,7 +31,6 @@ SOURCES += \
src/ui/main/MainWindow.cpp \
src/ui/dialogs/DeviceDialog.cpp \
src/ui/dialogs/EnemyStatsDialog.cpp \
src/ui/dialogs/RobotDogControlDialog.cpp \
src/ui/components/DeviceCard.cpp \
src/ui/components/DeviceListPanel.cpp \
src/ui/components/SystemLogPanel.cpp \
@ -52,7 +51,6 @@ HEADERS += \
include/ui/main/MainWindow.h \
include/ui/dialogs/DeviceDialog.h \
include/ui/dialogs/EnemyStatsDialog.h \
include/ui/dialogs/RobotDogControlDialog.h \
include/ui/components/DeviceCard.h \
include/ui/components/DeviceListPanel.h \
include/ui/components/SystemLogPanel.h \

@ -34,11 +34,6 @@
#include <QCheckBox>
#include <QTimer>
#include <QFrame>
#include <QProcess>
#include <QWidget>
#include <QWindow>
#include <QApplication>
#include <QStackedLayout>
/**
* @class RobotDogControlDialog
@ -64,34 +59,44 @@ public:
signals:
/**
* @brief
* @brief
*/
void startSlamRadar();
void startMapping();
/**
* @brief
* @brief
*/
void stopSlamRadar();
void stopMapping();
/**
* @brief
* @brief
*/
void startRadarMapping();
void startNavigation();
/**
* @brief
* @brief
*/
void stopRadarMapping();
void stopNavigation();
/**
* @brief
* @brief
*/
void startAutoNavMapping();
void startPhotoTransmission();
/**
* @brief
* @brief
*/
void stopAutoNavMapping();
void stopPhotoTransmission();
/**
* @brief
*/
void startPersonRecognition();
/**
* @brief
*/
void stopPersonRecognition();
public slots:
/**
@ -144,24 +149,29 @@ private slots:
void onJumpClicked();
/**
* @brief
* @brief
*/
void onEmergencyStop();
void onMappingToggle();
/**
* @brief
* @brief
*/
void onSlamRadarToggle();
void onNavigationToggle();
/**
* @brief
* @brief
*/
void onRadarMappingToggle();
void onPhotoTransmissionToggle();
/**
* @brief
* @brief
*/
void onAutoNavMappingToggle();
void onPersonRecognitionToggle();
/**
* @brief
*/
void onEmergencyStop();
private:
/**
@ -214,14 +224,12 @@ private:
// 任务控制模块
QGroupBox *m_missionControlGroup;
QPushButton *m_slamRadarBtn;
QPushButton *m_radarMappingBtn;
QPushButton *m_autoNavMappingBtn;
QPushButton *m_mappingBtn;
QPushButton *m_navigationBtn;
QPushButton *m_photoBtn;
QPushButton *m_recognitionBtn;
QComboBox *m_missionModeCombo;
// 雷达显示组件
QLabel *m_radarDisplayLabel;
// 状态监控模块
QGroupBox *m_statusGroup;
QLabel *m_batteryLabel;
@ -233,46 +241,15 @@ private:
QTextEdit *m_logTextEdit;
// 状态变量
bool m_isMappingActive;
bool m_isNavigationActive;
bool m_isPhotoTransmissionActive;
bool m_isPersonRecognitionActive;
bool m_isMoving;
QString m_currentPosture;
// 雷达状态变量
bool m_isSlamRadarActive;
bool m_isRadarMappingActive;
bool m_isAutoNavMappingActive;
// 定时器
QTimer *m_statusUpdateTimer;
// SSH连接和命令执行
QProcess *m_sshProcess;
QString m_radarHost;
QString m_radarUser;
QString m_radarPassword;
// 雷达建图进程(本地执行)
QProcess *m_radarMappingProcess;
// 自动导航建图进程(本地执行)
QProcess *m_autoNavMappingProcess;
// 私有方法
void executeSlamRadarCommands();
void stopSlamRadarProcess();
void onSshProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
void onSshProcessError(QProcess::ProcessError error);
// 雷达建图相关方法
void executeRadarMappingCommands();
void stopRadarMappingProcess();
void onRadarMappingProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
void onRadarMappingProcessError(QProcess::ProcessError error);
// 自动导航建图相关方法
void executeAutoNavMappingCommands();
void stopAutoNavMappingProcess();
void onAutoNavMappingProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
void onAutoNavMappingProcessError(QProcess::ProcessError error);
};
#endif // ROBOTDOGCONTROLDIALOG_H

@ -46,7 +46,7 @@
#include "ui/components/RightFunctionPanel.h"
#include "ui/dialogs/EnemyStatsDialog.h"
// #include "ui/dialogs/DroneControlDialog.h"
#include "ui/dialogs/RobotDogControlDialog.h"
// #include "ui/dialogs/RobotDogControlDialog.h"
// 标准库头文件
#include <string>
@ -352,7 +352,7 @@ private:
// 控制对话框(暂时注释掉以避免编译问题)
// DroneControlDialog *m_droneControlDialog; ///< 无人机控制对话框
RobotDogControlDialog *m_robotDogControlDialog; ///< 机器狗控制对话框
// RobotDogControlDialog *m_robotDogControlDialog; ///< 机器狗控制对话框
// 敌情统计对话框
EnemyStatsDialog *m_enemyStatsDialog; ///< 敌情统计对话框

@ -214,7 +214,7 @@ void RightFunctionPanel::setupBattlefieldExplorationModule()
m_explorationCard = new ModuleCard("🎯 战场探索", "🎯", this);
m_explorationCard->setObjectName("ModuleCard");
m_explorationCard->setProperty("data-module", "battlefield");
// 简化设计:只显示两个主要功能入口按钮
QWidget *mainControlWidget = new QWidget();
mainControlWidget->setObjectName("main-control-widget");
@ -930,21 +930,21 @@ void RightFunctionPanel::updateDeviceStatus(const QString &deviceName, bool onli
} else {
deviceType = "未知设备";
}
QString statusMsg;
if (online) {
if (battery > 80) {
if (online) {
if (battery > 80) {
statusMsg = QString("%1 %2: 📶 连接质量 %3% (优秀)").arg(deviceType).arg(deviceName).arg(battery);
} else if (battery > 50) {
} else if (battery > 50) {
statusMsg = QString("%1 %2: 📶 连接质量 %3% (良好)").arg(deviceType).arg(deviceName).arg(battery);
} else if (battery > 20) {
} else if (battery > 20) {
statusMsg = QString("%1 %2: ⚠️ 连接质量 %3% (一般)").arg(deviceType).arg(deviceName).arg(battery);
} else {
statusMsg = QString("%1 %2: ⚠️ 连接质量 %3% (较差)").arg(deviceType).arg(deviceName).arg(battery);
}
} else {
statusMsg = QString("%1 %2: ❌ 设备离线").arg(deviceType).arg(deviceName);
statusMsg = QString("%1 %2: ⚠️ 连接质量 %3% (较差)").arg(deviceType).arg(deviceName).arg(battery);
}
} else {
statusMsg = QString("%1 %2: ❌ 设备离线").arg(deviceType).arg(deviceName);
}
SystemLogger::getInstance()->logInfo(statusMsg);
}

File diff suppressed because it is too large Load Diff

@ -61,7 +61,7 @@ MainWindow::MainWindow(QWidget *parent)
, m_enemyStatsDialog(nullptr)
, m_visionProcess(nullptr)
// , m_droneControlDialog(nullptr)
, m_robotDogControlDialog(nullptr)
// , m_robotDogControlDialog(nullptr)
{
m_ui->setupUi(this);
@ -71,7 +71,7 @@ MainWindow::MainWindow(QWidget *parent)
// 初始化现代样式管理器
initializeModernStyles();
// 初始化默认数据
m_robotList.append(qMakePair(QString("Alice"), QString("192.168.0.1")));
m_robotList.append(qMakePair(QString("Bob"), QString("192.168.0.2")));
@ -91,10 +91,10 @@ MainWindow::~MainWindow()
// delete m_droneControlDialog;
// m_droneControlDialog = nullptr;
// }
if (m_robotDogControlDialog) {
delete m_robotDogControlDialog;
m_robotDogControlDialog = nullptr;
}
// if (m_robotDogControlDialog) {
// delete m_robotDogControlDialog;
// m_robotDogControlDialog = nullptr;
// }
// 停止并清理视觉识别进程
if (m_visionProcess) {
@ -1207,7 +1207,7 @@ void MainWindow::onEnemyStatsRequested()
// 连接敌情数据更新信号
connect(m_enemyStatsDialog, &EnemyStatsDialog::enemyDataUpdated,
[this](int totalCount, int highThreatCount) {
SystemLogger::getInstance()->logInfo(
SystemLogger::getInstance()->logInfo(
QString("敌情数据更新:总数 %1高威胁 %2")
.arg(totalCount).arg(highThreatCount)
);
@ -1382,23 +1382,17 @@ void MainWindow::onRobotDogControlRequested()
{
SystemLogger::getInstance()->logInfo("机器狗控制请求");
// 创建机器狗控制对话框(如果还没有创建)
if (!m_robotDogControlDialog) {
m_robotDogControlDialog = new RobotDogControlDialog(this);
// 连接信号(如果需要的话)
// connect(m_robotDogControlDialog, &RobotDogControlDialog::someSignal,
// this, &MainWindow::someSlot);
}
// 显示对话框
m_robotDogControlDialog->show();
m_robotDogControlDialog->raise();
m_robotDogControlDialog->activateWindow();
// 暂时使用简单的消息框来测试功能
QMessageBox::information(this, "机器狗控制",
"机器狗控制界面功能正在开发中...\n"
"将包含以下功能:\n"
"• 运动控制(前进、后退、转向)\n"
"• 姿态控制(站立、趴下、跳跃)\n"
"• 地图建构和导航\n"
"• 视觉识别和跟踪\n"
"• 设备状态监控");
}
void MainWindow::startVisionWebService()
{
SystemLogger::getInstance()->logInfo("启动视觉识别系统Web服务");

@ -136,7 +136,7 @@ Visualization Manager:
Shaft Length: 0.8
Shaft Radius: 0.05000000074505806
Value: Arrow
Topic: /robot_pose
Topic: /robot_odom
Unreliable: false
Value: true
@ -144,7 +144,7 @@ Visualization Manager:
- Alpha: 1
Axes Length: 0.8
Axes Radius: 0.08
Class: rviz/Pose
Class: rviz/PoseWithCovariance
Color: 255; 25; 0
Enabled: true
Head Length: 0.30000001192092896
@ -154,7 +154,7 @@ Visualization Manager:
Shaft Length: 1.2
Shaft Radius: 0.08
Shape: Arrow
Topic: /robot_pose_arrow
Topic: /robot_pose
Unreliable: false
Value: true

Loading…
Cancel
Save