#ifndef DIALOGALGOARG_H #define DIALOGALGOARG_H #include #include class QCheckBox; class QLineEdit; class QWidget; class ParkingSpaceGuidePresenter; namespace Ui { class DialogAlgoArg; } class DialogAlgoArg : public QDialog { Q_OBJECT public: enum class ConfigPage { Detection = 0, Camera = 1, Lidar = 2, Multicast = 3, Calibration = 4 }; explicit DialogAlgoArg(QWidget* parent = nullptr); ~DialogAlgoArg(); void SetPresenter(ParkingSpaceGuidePresenter* presenter); void SetCurrentPage(ConfigPage page); private slots: void on_btnOK_clicked(); void on_btnCancel_clicked(); void on_btnApply_clicked(); void on_btnReset_clicked(); private: void BuildUi(); void ApplyUiFont(); void ShowTabGroup(ConfigPage page); void UpdateTitle(ConfigPage page); void LoadParams(); bool SaveParams(); void ResetParams(); void HideDetachedTabs(); QLineEdit* AddDoubleEditor(QWidget* parent, const QString& label, int row, double min, double max); QLineEdit* AddIntEditor(QWidget* parent, const QString& label, int row, int min, int max); QLineEdit* AddTextEditor(QWidget* parent, const QString& label, int row, bool password = false); QCheckBox* AddCheckBox(QWidget* parent, const QString& label, int row); void SetDouble(QLineEdit* edit, double value); void SetInt(QLineEdit* edit, int value); bool GetDouble(QLineEdit* edit, const QString& label, double& value); bool GetFloat(QLineEdit* edit, const QString& label, float& value); bool GetInt(QLineEdit* edit, const QString& label, int& value); void SetMatrix(QLineEdit* const edits[9], const double values[9]); bool GetMatrix(QLineEdit* const edits[9], const QString& label, double values[9]); private: Ui::DialogAlgoArg* ui = nullptr; ParkingSpaceGuidePresenter* m_presenter = nullptr; QVector m_visiblePages; QWidget* m_planeParkingTab = nullptr; QWidget* m_groundCalibrationTab = nullptr; QWidget* m_treeGrowTab = nullptr; QWidget* m_guideDecisionTab = nullptr; QWidget* m_processTab = nullptr; QWidget* m_modelRecognitionTab = nullptr; QWidget* m_personDetectionTab = nullptr; QWidget* m_cameraTab = nullptr; QWidget* m_lidarTab = nullptr; QWidget* m_multicastTab = nullptr; QLineEdit* m_parkingPointX = nullptr; QLineEdit* m_parkingPointY = nullptr; QLineEdit* m_parkingPointZ = nullptr; QLineEdit* m_guideLinePointX = nullptr; QLineEdit* m_guideLinePointY = nullptr; QLineEdit* m_guideLinePointZ = nullptr; QLineEdit* m_guidingRange = nullptr; QLineEdit* m_parkingRange = nullptr; QLineEdit* m_distFromNoseToWheel = nullptr; QLineEdit* m_planeCalib[9] = {}; QLineEdit* m_planeHeight = nullptr; QLineEdit* m_invRMatrix[9] = {}; QLineEdit* m_yDeviationMax = nullptr; QLineEdit* m_zDeviationMax = nullptr; QLineEdit* m_maxLineSkipNum = nullptr; QLineEdit* m_maxSkipDistance = nullptr; QLineEdit* m_minLTypeTreeLen = nullptr; QLineEdit* m_minVTypeTreeLen = nullptr; QLineEdit* m_lateralTolerance = nullptr; QLineEdit* m_angleTolerance = nullptr; QLineEdit* m_dockingStartDistance = nullptr; QLineEdit* m_captureStartDistance = nullptr; QLineEdit* m_approachStartDistance = nullptr; QLineEdit* m_slowDistance = nullptr; QLineEdit* m_stopDistanceTolerance = nullptr; QLineEdit* m_overshootDistance = nullptr; QLineEdit* m_stoppedShortMinDistance = nullptr; QLineEdit* m_maxApproachSpeed = nullptr; QLineEdit* m_stoppedSpeedThreshold = nullptr; QLineEdit* m_speedFilterAlpha = nullptr; QLineEdit* m_distanceChangeThreshold = nullptr; QLineEdit* m_lateralOffsetChangeThreshold = nullptr; QLineEdit* m_stopStableFrames = nullptr; QLineEdit* m_stoppedShortStableFrames = nullptr; QLineEdit* m_errorFrameThreshold = nullptr; QLineEdit* m_lostFrameThreshold = nullptr; QLineEdit* m_completedHoldFrames = nullptr; QLineEdit* m_modelVerifyDistance = nullptr; QLineEdit* m_modelRoiX = nullptr; QLineEdit* m_modelRoiY = nullptr; QLineEdit* m_modelRoiWidth = nullptr; QLineEdit* m_modelRoiHeight = nullptr; QLineEdit* m_confidenceThreshold = nullptr; QLineEdit* m_maxRecognitionAttempts = nullptr; QCheckBox* m_personDetectionEnabled = nullptr; QLineEdit* m_personRoiX = nullptr; QLineEdit* m_personRoiY = nullptr; QLineEdit* m_personRoiWidth = nullptr; QLineEdit* m_personRoiHeight = nullptr; QLineEdit* m_personConfidenceThreshold = nullptr; QLineEdit* m_personStableFrames = nullptr; QLineEdit* m_personDetectionIntervalMs = nullptr; QLineEdit* m_mvsSerialNumber = nullptr; QLineEdit* m_mvsDeviceIndex = nullptr; QCheckBox* m_mvsEnabled = nullptr; QLineEdit* m_lidarType = nullptr; QLineEdit* m_lidarHost = nullptr; QLineEdit* m_lidarMsopPort = nullptr; QLineEdit* m_lidarDifopPort = nullptr; QLineEdit* m_lidarMinDistance = nullptr; QLineEdit* m_lidarMaxDistance = nullptr; QLineEdit* m_lidarStartAngle = nullptr; QLineEdit* m_lidarEndAngle = nullptr; QLineEdit* m_udpAddress = nullptr; QLineEdit* m_udpPort = nullptr; QLineEdit* m_udpTargetId = nullptr; QLineEdit* m_udpParkId = nullptr; QCheckBox* m_udpEnabled = nullptr; }; #endif // DIALOGALGOARG_H