123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- #pragma once
- #include <QWidget>
- #include "ui_BondMatrixProgramPage.h"
- #include "CViewInterface.h"
- #include "CModule.h"
- #include <QGroupBox>
- #include <QLineEdit>
- #include <QLabel>
- #include <QPushButton>
- #include <QHBoxLayout>
- #include <QVBoxLayout>
- #include <algorithm>
- class BondMatrixProgramPage : public QWidget
- {
- Q_OBJECT
- public:
- BondMatrixProgramPage(QWidget* parent = nullptr);
- ~BondMatrixProgramPage();
- private:
- //新增矩阵界面
- //void AddMatrixPage(int bondMatrixVectorIndex, int vectorIndex, PROGRAM_POINT_MATRIX_STRUCT matrixData);
- void AddMatrixPage(int vectorIndex, int subVectorIndex, PROGRAM_POINT_MATRIX_STRUCT matrixData, QGridLayout* layout);
- void AddOutMatrixPage(int vectorIndex, PROGRAM_BOND_MATRIX_STRUCT matrixData, std::vector<PROGRAM_POINT_MATRIX_STRUCT> vecSubMatrix);
- //void AddOutMatrixPage(int vectorIndex, PROGRAM_BOND_MATRIX_STRUCT matrixData);
- XY_DOUBLE_STRUCT BondGetAxisPosition(std::string ModuleType, XY_DOUBLE_STRUCT& pos);
- XY_DOUBLE_STRUCT BondMoveToXYAxisPosition(std::string ModuleType, XY_DOUBLE_STRUCT& pos);
- //往后端新增矩阵数据
- void AddMatrixParam();
- //更新参数,根据选择的点更新界面参数显示
- void UpdatePageParam();
- //更新取/固晶参数,根据选择的点更新界面参数显示
- void UpdatePagePickPlaceParam();
- //参数被修改后发送给后端
- void ParamChangeEvent();
- int BondInfoParamSaveAsEvent();
- int ParamSaveAsEvent(ns_db::PICKBOND_PARAM_STRUCT &m_curWaferPickParam);
- //参数被修改后发送给后端
- void MatrixChangeEvent();
- //更新取晶参数
- void UpdatePagePickParam();
- //更新固晶参数
- void UpdatePageBondParam();
- void initPage();
- // 初始化取晶控件连接
- void connectWaferPickControls(); // 华夫盒取晶
- void connectCalibPickControls(); // 中转台取晶
- // 初始化放晶控件连接
- void connectCalibPlaceControls();
- void connectBondControls();
- void ShowCurrentMatrix(int bondMatrixId);
- protected:
- bool eventFilter(QObject* watched, QEvent* event) override;
- private slots:
- void onNoBondPtsClicked(QLineEdit* lineEdit, int index, int parentIndex);
- void UpdateShowBondInfoData(UINT iInfoId);
- void onComboBoxCurrentMatrixChanged(int index); // 切换矩阵
- void onComboBoxIndexChangedForMatrixParam(int index);
- void onComboBoxIndexChangedForParam(int index);
- void onComboBoxPopup(QComboBox* comboBox);
- //ModifyParam
- void onSetParamPickTempClicked();
- void onSetParamPreBondClicked();
- void onSetParamPostBondClicked();
- void onSetParamBondClicked();
- void onSetParamLookUpClicked();
- void onSetParamCalibPickClicked();
- //CreateParam
- void onCreateParamPickTempClicked();
- void onCreateParamPreBondClicked();
- void onCreateParamPostBondClicked();
- void onCreateParamBondClicked();
- void onCreateParamLookUpClicked();
- void onCreateParamCalibPickClicked();
- // ——— 取晶槽函数 ———
- // 取晶头取晶
- void onCheckBoxPickBlockCheckClicked(bool);
- void onCheckBoxPickLoseCheckClicked(bool);
- void onCheckBoxPickFindForceCheckClicked(bool);
- void onDoubleSpinBoxPrePickZEditingFinished();
- void onDoubleSpinBoxPickForceEditingFinished();
- void onDoubleSpinBoxPickPosZEditingFinished();
- void onSpinBoxPickGrabDelayEditingFinished();
- void onSpinBoxPickDelayEditingFinished();
- void onSpinBoxPickBlockCheckDelayEditingFinished();
- void onSpinBoxPickVacDelayEditingFinished();
- void onSpinBoxPickBlowDelayEditingFinished();
- // 中转台取晶
- void onCheckBoxPickBlockCheck_2Clicked(bool);
- void onCheckBoxPickLoseCheck_2Clicked(bool);
- void onCheckBoxPickFindForceCheck_2Clicked(bool);
- void onDoubleSpinBoxPrePickZ_2EditingFinished();
- void onDoubleSpinBoxPickForce_2EditingFinished();
- void onDoubleSpinBoxPickPosZ_2EditingFinished();
- void onSpinBoxPickGrabDelay_2EditingFinished();
- void onSpinBoxPickDelay_2EditingFinished();
- void onSpinBoxPickBlockCheckDelay_2EditingFinished();
- void onSpinBoxPickVacDelay_2EditingFinished();
- void onSpinBoxPickBlowDelay_2EditingFinished();
- // "中转台放晶" 控件的槽函数
- void onCheckBoxBondBlockCheckClicked(bool isChecked);
- void onCheckBoxBondLoseCheckClicked(bool isChecked);
- void onCheckBoxBondFindForceClicked(bool isChecked);
- void onDoubleSpinBoxPreBondPosZEditingFinished();
- void onDoubleSpinBoxBondForceEditingFinished();
- void onDoubleSpinBoxBondPosZEditingFinished();
- void onSpinBoxBondGrabDelayEditingFinished();
- void onSpinBoxBondBlockCheckDelayEditingFinished();
- void onSpinBoxBondDelayEditingFinished();
- void onSpinBoxBondVacDelayEditingFinished();
- void onSpinBoxBondBlowDelayEditingFinished();
- // "固晶台固晶" 控件的槽函数
- void onCheckBoxBondBlockCheck_2Clicked(bool isChecked);
- void onCheckBoxBondLoseCheck_2Clicked(bool isChecked);
- void onCheckBoxBondFindForce_2Clicked(bool isChecked);
- void onDoubleSpinBoxPreBondPosZ_2EditingFinished();
- void onDoubleSpinBoxBondForce_2EditingFinished();
- void onDoubleSpinBoxBondPosZ_2EditingFinished();
- void onSpinBoxBondGrabDelay_2EditingFinished();
- void onSpinBoxBondBlockCheckDelay_2EditingFinished();
- void onSpinBoxBondDelay_2EditingFinished();
- void onSpinBoxBondVacDelay_2EditingFinished();
- void onSpinBoxBondBlowDelay_2EditingFinished();
- private:
- Ui::BondMatrixProgramPageClass ui;
- CManageDB* m_manageDB = nullptr;
- CProduct* m_pProduct = nullptr;
- std::vector<ns_db::PR_STRATEGY> m_vecPrStrategy;
- std::vector<ns_db::PR_TEMPLATE> m_vecPrTemplate;
- std::vector<ns_db::PR_BONDINSP> m_vecPrBondInsp;
- //当前界面显示的参数
- ns_db::BOND_INFO_STRUCT m_curBondInfo;
- ns_db::PICKBOND_PARAM_STRUCT m_curWaferPickParam;//取晶头取晶
- ns_db::PICKBOND_PARAM_STRUCT m_curCalibPlaceParam;//中转台固晶
- ns_db::PICKBOND_PARAM_STRUCT m_curCalibPickParam;//中转台取晶
- ns_db::PICKBOND_PARAM_STRUCT m_curBondParam;//固晶台固晶
- ns_mat::POINT_INFO_STRUCT m_curPointInfo;
- ns_module::CViewInterface* m_pProgramCViewInterface = nullptr;
- std::vector<ns_db::PICKBOND_PARAM_STRUCT> m_vecParam;
- std::vector<ns_db::PROGRAM_BOND_MATRIX_STRUCT> m_vectBondMatrixs;
- std::vector<ns_db::PROGRAM_POINT_MATRIX_STRUCT> m_vecSubMatrixs;
- std::vector<BOND_INFO_STRUCT> m_vecBondInfoData;
- //子矩阵控件,ID从1开始
- QMap<int, QVector<QObject*>> m_mapSubMatrixControls;
- int m_curPtIndex = 0;
- // 新增字段: 用于管理大矩阵与子矩阵的关系
- //QMap<int, std::vector<int>> m_mapBondMatrixToSubMatrices; // 大矩阵ID和对应子矩阵ID的映射
- QMap<int, std::vector<ns_db::PROGRAM_POINT_MATRIX_STRUCT>> m_mapBondMatrixToSubMatrices; // 大矩阵ID和对应子矩阵ID的映射
- // 用于标识当前矩阵类型(如大矩阵或子矩阵)
- bool m_isSubMatrix = false; // 标记是否为子矩阵
- QMap<QWidget*, int> m_mapSubWidgetIndex;
- QMap<QWidget*, int> m_mapOutWidgetIndex;
- //QComboBox* comboBoxParagramSet;
- QMap<QComboBox*, int> m_mapParagramSetComboBox;
- QVBoxLayout* verticalLayout_tem = new QVBoxLayout();
- bool m_assss = false;
- };
|