#ifndef DIALOGALGOARG_H #define DIALOGALGOARG_H #include #include #include #include "ConfigManager.h" class HandEyeCalibWidget; class ToolExtrinsicWidget; class NetworkConfigWidget; class PointCloudFilterWidget; 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 onCalibMatrixLoaded(int cameraIndex, const double* matrix); void onSaveCalibRequested(int cameraIndex, const double* matrix); private: void LoadConfigToUI(); bool SaveConfigFromUI(); void InitToolExtrinsicTab(); void InitHandEyeCalibTab(); void InitNetworkConfigTab(); void initWorkpieceSizesTab(); void addWorkpieceSizeRow(const VrRotorWorkpieceSize& size); void refreshWorkpieceRows(int defaultRow); void moveWorkpieceRow(int row, int offset); void removeWorkpieceRow(int row); void updateWorkpieceActions(); void loadWorkpieceSizes(const VrRotorCoreParam& rotorParam); bool saveWorkpieceSizes(VrRotorCoreParam& rotorParam); void loadPointCloudFilterConfig(const ConfigResult& configResult); bool savePointCloudFilterConfig(ConfigResult& configResult); void LoadModelDetectionParamsToUI(const VrAlgorithmParams& algorithmParams); bool SaveModelDetectionParamsFromUI(VrAlgorithmParams& algorithmParams); void initModelParamsTab(); void addModelParamRow(const VrWorkpieceModelParam& modelParam); void refreshModelParamRows(); void moveModelParamRow(int row, int offset); void removeModelParamRow(int row); void updateModelParamActions(); void LoadBinDetectionParamsToUI(const VrBinParam& binParam); bool SaveBinDetectionParamsFromUI(VrBinParam& binParam); void LoadRotorCoreParamsToUI(const VrRotorCoreParam& rotorParam); bool SaveRotorCoreParamsFromUI(VrRotorCoreParam& rotorParam); // 网络配置(JSON TCP 端口 + Modbus 寄存器地址) void LoadPlcRobotServerConfigToUI(const VrPlcRobotServerConfig& config); bool SavePlcRobotServerConfigFromUI(VrPlcRobotServerConfig& config); void LoadHandEyeCalibConfig(); bool SaveCalibMatrixToConfig(VrHandEyeCalibMatrix& calibMatrix); private: Ui::DialogAlgoarg *ui; ConfigManager* m_pConfigManager; QString m_configFilePath; HandEyeCalibWidget* m_handEyeCalibWidget; ToolExtrinsicWidget* m_toolExtrinsicWidget; NetworkConfigWidget* m_networkConfigWidget = nullptr; PointCloudFilterWidget* m_pointCloudFilterWidget = nullptr; }; #endif // DIALOGALGOARG_H