BondMatrixProgramPage.h 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. #pragma once
  2. #include <QWidget>
  3. #include "ui_BondMatrixProgramPage.h"
  4. #include "CViewInterface.h"
  5. #include "CModule.h"
  6. #include <QGroupBox>
  7. #include <QLineEdit>
  8. #include <QLabel>
  9. #include <QPushButton>
  10. #include <QHBoxLayout>
  11. #include <QVBoxLayout>
  12. #include <algorithm>
  13. class BondMatrixProgramPage : public QWidget
  14. {
  15. Q_OBJECT
  16. public:
  17. BondMatrixProgramPage(QWidget* parent = nullptr);
  18. ~BondMatrixProgramPage();
  19. private:
  20. //新增矩阵界面
  21. //void AddMatrixPage(int bondMatrixVectorIndex, int vectorIndex, PROGRAM_POINT_MATRIX_STRUCT matrixData);
  22. void AddMatrixPage(int vectorIndex, int subVectorIndex, PROGRAM_POINT_MATRIX_STRUCT matrixData, QGridLayout* layout);
  23. void AddOutMatrixPage(int vectorIndex, PROGRAM_BOND_MATRIX_STRUCT matrixData, std::vector<PROGRAM_POINT_MATRIX_STRUCT> vecSubMatrix);
  24. //void AddOutMatrixPage(int vectorIndex, PROGRAM_BOND_MATRIX_STRUCT matrixData);
  25. XY_DOUBLE_STRUCT BondGetAxisPosition(std::string ModuleType, XY_DOUBLE_STRUCT& pos);
  26. XY_DOUBLE_STRUCT BondMoveToXYAxisPosition(std::string ModuleType, XY_DOUBLE_STRUCT& pos);
  27. //往后端新增矩阵数据
  28. void AddMatrixParam();
  29. //更新参数,根据选择的点更新界面参数显示
  30. void UpdatePageParam();
  31. //更新取/固晶参数,根据选择的点更新界面参数显示
  32. void UpdatePagePickPlaceParam();
  33. //参数被修改后发送给后端
  34. void ParamChangeEvent();
  35. int BondInfoParamSaveAsEvent();
  36. int ParamSaveAsEvent(ns_db::PICKBOND_PARAM_STRUCT &m_curWaferPickParam);
  37. //参数被修改后发送给后端
  38. void MatrixChangeEvent();
  39. //更新取晶参数
  40. void UpdatePagePickParam();
  41. //更新固晶参数
  42. void UpdatePageBondParam();
  43. void initPage();
  44. // 初始化取晶控件连接
  45. void connectWaferPickControls(); // 华夫盒取晶
  46. void connectCalibPickControls(); // 中转台取晶
  47. // 初始化放晶控件连接
  48. void connectCalibPlaceControls();
  49. void connectBondControls();
  50. void ShowCurrentMatrix(int bondMatrixId);
  51. protected:
  52. bool eventFilter(QObject* watched, QEvent* event) override;
  53. private slots:
  54. void onNoBondPtsClicked(QLineEdit* lineEdit, int index, int parentIndex);
  55. void UpdateShowBondInfoData(UINT iInfoId);
  56. void onComboBoxCurrentMatrixChanged(int index); // 切换矩阵
  57. void onComboBoxIndexChangedForMatrixParam(int index);
  58. void onComboBoxIndexChangedForParam(int index);
  59. void onComboBoxPopup(QComboBox* comboBox);
  60. //ModifyParam
  61. void onSetParamPickTempClicked();
  62. void onSetParamPreBondClicked();
  63. void onSetParamPostBondClicked();
  64. void onSetParamBondClicked();
  65. void onSetParamLookUpClicked();
  66. void onSetParamCalibPickClicked();
  67. //CreateParam
  68. void onCreateParamPickTempClicked();
  69. void onCreateParamPreBondClicked();
  70. void onCreateParamPostBondClicked();
  71. void onCreateParamBondClicked();
  72. void onCreateParamLookUpClicked();
  73. void onCreateParamCalibPickClicked();
  74. // ——— 取晶槽函数 ———
  75. // 取晶头取晶
  76. void onCheckBoxPickBlockCheckClicked(bool);
  77. void onCheckBoxPickLoseCheckClicked(bool);
  78. void onCheckBoxPickFindForceCheckClicked(bool);
  79. void onDoubleSpinBoxPrePickZEditingFinished();
  80. void onDoubleSpinBoxPickForceEditingFinished();
  81. void onDoubleSpinBoxPickPosZEditingFinished();
  82. void onSpinBoxPickGrabDelayEditingFinished();
  83. void onSpinBoxPickDelayEditingFinished();
  84. void onSpinBoxPickBlockCheckDelayEditingFinished();
  85. void onSpinBoxPickVacDelayEditingFinished();
  86. void onSpinBoxPickBlowDelayEditingFinished();
  87. // 中转台取晶
  88. void onCheckBoxPickBlockCheck_2Clicked(bool);
  89. void onCheckBoxPickLoseCheck_2Clicked(bool);
  90. void onCheckBoxPickFindForceCheck_2Clicked(bool);
  91. void onDoubleSpinBoxPrePickZ_2EditingFinished();
  92. void onDoubleSpinBoxPickForce_2EditingFinished();
  93. void onDoubleSpinBoxPickPosZ_2EditingFinished();
  94. void onSpinBoxPickGrabDelay_2EditingFinished();
  95. void onSpinBoxPickDelay_2EditingFinished();
  96. void onSpinBoxPickBlockCheckDelay_2EditingFinished();
  97. void onSpinBoxPickVacDelay_2EditingFinished();
  98. void onSpinBoxPickBlowDelay_2EditingFinished();
  99. // "中转台放晶" 控件的槽函数
  100. void onCheckBoxBondBlockCheckClicked(bool isChecked);
  101. void onCheckBoxBondLoseCheckClicked(bool isChecked);
  102. void onCheckBoxBondFindForceClicked(bool isChecked);
  103. void onDoubleSpinBoxPreBondPosZEditingFinished();
  104. void onDoubleSpinBoxBondForceEditingFinished();
  105. void onDoubleSpinBoxBondPosZEditingFinished();
  106. void onSpinBoxBondGrabDelayEditingFinished();
  107. void onSpinBoxBondBlockCheckDelayEditingFinished();
  108. void onSpinBoxBondDelayEditingFinished();
  109. void onSpinBoxBondVacDelayEditingFinished();
  110. void onSpinBoxBondBlowDelayEditingFinished();
  111. // "固晶台固晶" 控件的槽函数
  112. void onCheckBoxBondBlockCheck_2Clicked(bool isChecked);
  113. void onCheckBoxBondLoseCheck_2Clicked(bool isChecked);
  114. void onCheckBoxBondFindForce_2Clicked(bool isChecked);
  115. void onDoubleSpinBoxPreBondPosZ_2EditingFinished();
  116. void onDoubleSpinBoxBondForce_2EditingFinished();
  117. void onDoubleSpinBoxBondPosZ_2EditingFinished();
  118. void onSpinBoxBondGrabDelay_2EditingFinished();
  119. void onSpinBoxBondBlockCheckDelay_2EditingFinished();
  120. void onSpinBoxBondDelay_2EditingFinished();
  121. void onSpinBoxBondVacDelay_2EditingFinished();
  122. void onSpinBoxBondBlowDelay_2EditingFinished();
  123. private:
  124. Ui::BondMatrixProgramPageClass ui;
  125. CManageDB* m_manageDB = nullptr;
  126. CProduct* m_pProduct = nullptr;
  127. std::vector<ns_db::PR_STRATEGY> m_vecPrStrategy;
  128. std::vector<ns_db::PR_TEMPLATE> m_vecPrTemplate;
  129. std::vector<ns_db::PR_BONDINSP> m_vecPrBondInsp;
  130. //当前界面显示的参数
  131. ns_db::BOND_INFO_STRUCT m_curBondInfo;
  132. ns_db::PICKBOND_PARAM_STRUCT m_curWaferPickParam;//取晶头取晶
  133. ns_db::PICKBOND_PARAM_STRUCT m_curCalibPlaceParam;//中转台固晶
  134. ns_db::PICKBOND_PARAM_STRUCT m_curCalibPickParam;//中转台取晶
  135. ns_db::PICKBOND_PARAM_STRUCT m_curBondParam;//固晶台固晶
  136. ns_mat::POINT_INFO_STRUCT m_curPointInfo;
  137. ns_module::CViewInterface* m_pProgramCViewInterface = nullptr;
  138. std::vector<ns_db::PICKBOND_PARAM_STRUCT> m_vecParam;
  139. std::vector<ns_db::PROGRAM_BOND_MATRIX_STRUCT> m_vectBondMatrixs;
  140. std::vector<ns_db::PROGRAM_POINT_MATRIX_STRUCT> m_vecSubMatrixs;
  141. std::vector<BOND_INFO_STRUCT> m_vecBondInfoData;
  142. //子矩阵控件,ID从1开始
  143. QMap<int, QVector<QObject*>> m_mapSubMatrixControls;
  144. int m_curPtIndex = 0;
  145. // 新增字段: 用于管理大矩阵与子矩阵的关系
  146. //QMap<int, std::vector<int>> m_mapBondMatrixToSubMatrices; // 大矩阵ID和对应子矩阵ID的映射
  147. QMap<int, std::vector<ns_db::PROGRAM_POINT_MATRIX_STRUCT>> m_mapBondMatrixToSubMatrices; // 大矩阵ID和对应子矩阵ID的映射
  148. // 用于标识当前矩阵类型(如大矩阵或子矩阵)
  149. bool m_isSubMatrix = false; // 标记是否为子矩阵
  150. QMap<QWidget*, int> m_mapSubWidgetIndex;
  151. QMap<QWidget*, int> m_mapOutWidgetIndex;
  152. //QComboBox* comboBoxParagramSet;
  153. QMap<QComboBox*, int> m_mapParagramSetComboBox;
  154. QVBoxLayout* verticalLayout_tem = new QVBoxLayout();
  155. bool m_assss = false;
  156. };