拍照version

This commit is contained in:
flower
2026-02-02 17:06:20 +08:00
parent 47016c00a6
commit d2b7b833b6
111 changed files with 19371 additions and 997 deletions

View File

@@ -17,6 +17,8 @@
#include <QUdpSocket>
#include <QTimer>
#include <QImage>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include "DeviceInfo.h"
#include "DeviceInfoReceiver.h"
#include <memory>
@@ -47,7 +49,7 @@ private slots:
/**
* @brief 处理接收到的完整帧
*/
void on_frame_received(const QImage& img, double lat, double lon, double alt);
void on_frame_received(const QImage& img, double lat, double lon, double alt, uint32_t photo_number);
/**
* @brief 处理统计信息更新
@@ -68,6 +70,11 @@ private slots:
* @brief 设置按钮点击
*/
void on_settings_clicked();
/**
* @brief 触发拍照按钮点击
*/
void on_trigger_capture_clicked();
/**
* @brief 收到设备信息
@@ -87,6 +94,7 @@ private:
QPushButton* save_frame_btn_; ///< 保存帧按钮
QPushButton* record_btn_; ///< 录制按钮
QPushButton* settings_btn_; ///< 设置按钮
QPushButton* trigger_capture_btn_; ///< 触发拍照按钮
// ========================================================================
// 业务逻辑对象
@@ -95,6 +103,7 @@ private:
std::shared_ptr<GroundReceiver> receiver_; ///< UDP 接收器
std::shared_ptr<DeviceInfoReceiver> device_info_receiver_; ///< 设备信息接收器
std::shared_ptr<DataLogger> logger_; ///< 数据记录器
QNetworkAccessManager* network_manager_; ///< HTTP 网络管理器
// ========================================================================
// 状态变量
@@ -105,6 +114,10 @@ private:
double current_lon_ = 0.0; ///< 当前经度
double current_alt_ = 0.0; ///< 当前海拔
bool is_recording_ = false; ///< 是否正在录制
uint32_t total_photos_received_ = 0; ///< 接收到的总照片数
uint32_t current_photo_number_ = 0; ///< 当前照片编号
QString ros2_node_ip_ = "localhost"; ///< ROS2 节点 IP 地址
int ros2_http_port_ = 8080; ///< ROS2 HTTP API 端口
// ========================================================================
// 初始化函数
@@ -124,4 +137,19 @@ private:
* @brief 创建菜单栏
*/
void create_menus();
/**
* @brief 通过 HTTP 触发拍照
* @param duration 总时间(秒)
* @param count 拍照数量
* @param interval 时间间隔(秒)
* @param mode 传输模式0=原图1=缩略图)
*/
void triggerCaptureViaHttp(double duration, int count, double interval, int mode);
/**
* @brief HTTP 请求响应处理
* @param reply 网络响应
*/
void onHttpReply(QNetworkReply* reply);
};