69 lines
2.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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