|
|
|
@ -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
|
|
|
|
|