69 lines
2.1 KiB
C
Raw Normal View History

2026-03-11 23:40:06 +08:00
#ifndef DIALOGALGOARG_H
#define DIALOGALGOARG_H
#include <QWidget>
#include <QDialog>
#include <QString>
#include <QLineEdit>
#include "ConfigManager.h"
namespace Ui {
class DialogAlgoarg;
}
class DialogAlgoarg : public QDialog
{
Q_OBJECT
public:
explicit DialogAlgoarg(ConfigManager* configManager, QWidget *parent = nullptr);
~DialogAlgoarg();
private slots:
void on_btn_camer_ok_clicked();
void on_btn_camer_cancel_clicked();
void on_btn_loadCalibMatrix_clicked();
void onCalibCameraChanged(int index);
private:
void LoadConfigToUI();
bool SaveConfigFromUI();
// 加载各个参数组到 UI
void LoadDetectionParamToUI(const VrHoleDetectionParam& param);
void LoadFilterParamToUI(const VrHoleFilterParam& param);
void LoadSortModeToUI(int sortMode);
// 从 UI 保存各个参数组
bool SaveDetectionParamFromUI(VrHoleDetectionParam& param);
bool SaveFilterParamFromUI(VrHoleFilterParam& param);
bool SaveSortModeFromUI(int& sortMode);
// 网络配置TCP协议和坐标输出
void LoadPlcRobotServerConfigToUI(const VrPlcRobotServerConfig& config);
bool SavePlcRobotServerConfigFromUI(VrPlcRobotServerConfig& config);
void InitPoseOutputOrderComboBox();
void InitDirVectorInvertComboBox();
void InitSortModeComboBox();
// 手眼标定矩阵(多相机)
void InitCalibCameraComboBox();
void LoadCalibMatrixToUI();
void LoadCalibMatrixForCamera(int cameraIndex);
void LoadIdentityMatrixToUI(); // 加载单位矩阵到UI
2026-03-11 23:40:06 +08:00
void LoadCalibMatrixFromFile(const QString& filePath);
bool SaveCalibMatrixToConfig(std::vector<VrHandEyeCalibMatrix>& calibMatrixList);
bool SaveCurrentCalibMatrixToCache();
QLineEdit* GetCalibLineEdit(int row, int col);
void InitEulerOrderComboBox();
private:
Ui::DialogAlgoarg *ui;
ConfigManager* m_pConfigManager;
QString m_configFilePath;
int m_currentCalibCameraIndex = 0; // 当前选中的标定相机索引0-based
std::vector<VrHandEyeCalibMatrix> m_calibMatrixCache; // 标定矩阵缓存
};
#endif // DIALOGALGOARG_H