From 6fc65c5cf54432d1044fbe9799aca76f7273798c Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期五, 23 五月 2025 18:02:27 +0800
Subject: [PATCH] Merge branch 'clh'
---
SourceCode/Bond/Servo/CPagePortStatus.cpp | 148 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 148 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/CPagePortStatus.cpp b/SourceCode/Bond/Servo/CPagePortStatus.cpp
new file mode 100644
index 0000000..ff38c73
--- /dev/null
+++ b/SourceCode/Bond/Servo/CPagePortStatus.cpp
@@ -0,0 +1,148 @@
+锘�// CPagePortStatus.cpp: 瀹炵幇鏂囦欢
+//
+
+#include "stdafx.h"
+#include "Servo.h"
+#include "CPagePortStatus.h"
+#include "afxdialogex.h"
+
+
+// CPagePortStatus 瀵硅瘽妗�
+
+IMPLEMENT_DYNAMIC(CPagePortStatus, CHMPropertyPage)
+
+CPagePortStatus::CPagePortStatus(CWnd* pParent /*=nullptr*/)
+ : CHMPropertyPage(IDD_PAGE_PORT_STATUS, pParent)
+{
+ m_pPort = nullptr;
+}
+
+CPagePortStatus::~CPagePortStatus()
+{
+}
+
+void CPagePortStatus::DoDataExchange(CDataExchange* pDX)
+{
+ CHMPropertyPage::DoDataExchange(pDX);
+}
+
+
+BEGIN_MESSAGE_MAP(CPagePortStatus, CHMPropertyPage)
+ ON_WM_CTLCOLOR()
+ ON_WM_DESTROY()
+ ON_WM_SIZE()
+END_MESSAGE_MAP()
+
+
+// CPagePortStatus 娑堟伅澶勭悊绋嬪簭
+void CPagePortStatus::setLoadPort(SERVO::CLoadPort* pPort)
+{
+ m_pPort = pPort;
+}
+
+BOOL CPagePortStatus::OnInitDialog()
+{
+ CHMPropertyPage::OnInitDialog();
+
+
+ ASSERT(m_pPort);
+ CComboBox* pComboBox;
+ std::string strTemp;
+
+ pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_PORT_STATUS);
+ for (int i = 1; i <= 6; i++) {
+ pComboBox->InsertString(i - 1, SERVO::CLoadPort::getPortStatusDescription(i, strTemp).c_str());
+ }
+ int portStatus = m_pPort->getPortStatus();
+ if (1 <= portStatus && portStatus <= 6) {
+ pComboBox->SetCurSel(portStatus - 1);
+ }
+
+ SetDlgItemInt(IDC_EDIT_CASSETTE_NO, m_pPort->getCassetteSequenceNo());
+ SetDlgItemText(IDC_EDIT_CASSETTE_ID, m_pPort->getCassetteId().c_str());
+
+ pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_LOADING_CASSETTE_TYPE);
+ for (int i = 1; i <= 4; i++) {
+ pComboBox->InsertString(i - 1, SERVO::CLoadPort::getLoadingCassetteTypeDescription(i, strTemp).c_str());
+ }
+ int loadingCassetteType = m_pPort->getLoadingCassetteType();
+ if (1 <= loadingCassetteType && loadingCassetteType <= 4) {
+ pComboBox->SetCurSel(loadingCassetteType - 1);
+ }
+
+ pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_QTIME_FLAG);
+ for (int i = 1; i <= 2; i++) {
+ pComboBox->InsertString(i - 1, SERVO::CLoadPort::getQTimeFlagDescription(i, strTemp).c_str());
+ }
+ int qTimeFlag = m_pPort->getQTimeFlag();
+ if (1 <= qTimeFlag && qTimeFlag <= 2) {
+ pComboBox->SetCurSel(qTimeFlag - 1);
+ }
+
+ pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_CASSETTE_MAPPING_STATE);
+ for (int i = 1; i <= 2; i++) {
+ pComboBox->InsertString(i - 1, SERVO::CLoadPort::getCassetteMappingStateDescription(i, strTemp).c_str());
+ }
+ int mappingState = m_pPort->getCassetteMappingState();
+ if (1 <= mappingState && mappingState <= 2) {
+ pComboBox->SetCurSel(mappingState - 1);
+ }
+
+ pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_CASSETTE_STATUS);
+ for (int i = 1; i <= 7; i++) {
+ pComboBox->InsertString(i - 1, SERVO::CLoadPort::getCassetteStatusDescription(i, strTemp).c_str());
+ }
+ int cassetteStatus = m_pPort->getCassetteStatus();
+ if (1 <= cassetteStatus && cassetteStatus <= 7) {
+ pComboBox->SetCurSel(cassetteStatus - 1);
+ }
+
+ // 鍒涘缓Job Existence Slots鎺т欢
+ m_ctrlJobSlotGrid.Create(AfxRegisterWndClass(0), _T("JobSlotGrid"),
+ WS_CHILD | WS_VISIBLE, CRect(0, 0, 100, 100), this, 1001);
+ m_ctrlJobSlotGrid.SetGridSize(12, 16);
+ m_ctrlJobSlotGrid.SetColors(RGB(34, 177, 76), RGB(200, 200, 200));
+
+ m_ctrlJobSlotGrid.SetSlotStatus(0, 1, true);
+ m_ctrlJobSlotGrid.SetSlotStatus(1, 9, true);
+ m_ctrlJobSlotGrid.SetSlotStatus(4, 9, false);
+ m_ctrlJobSlotGrid.SetSlotStatus(4, 10, true, TRUE);
+
+ return TRUE; // return TRUE unless you set the focus to a control
+ // 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
+}
+
+HBRUSH CPagePortStatus::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
+{
+ HBRUSH hbr = CHMPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
+
+ // TODO: 鍦ㄦ鏇存敼 DC 鐨勪换浣曠壒鎬�
+
+ // TODO: 濡傛灉榛樿鐨勪笉鏄墍闇�鐢荤瑪锛屽垯杩斿洖鍙︿竴涓敾绗�
+ return hbr;
+}
+
+void CPagePortStatus::OnDestroy()
+{
+ CHMPropertyPage::OnDestroy();
+
+ // TODO: 鍦ㄦ澶勬坊鍔犳秷鎭鐞嗙▼搴忎唬鐮�
+}
+
+void CPagePortStatus::OnSize(UINT nType, int cx, int cy)
+{
+ CHMPropertyPage::OnSize(nType, cx, cy);
+ if (GetDlgItem(IDC_COMBO_PORT_STATUS) == nullptr) return;
+
+
+ // 鍒涘缓Job Existence Slots鎺т欢
+ CRect rcLabel, rcComboBox, rcClient;
+ GetDlgItem(IDC_LABEL_JOB_EXISTENCE_SLOTS)->GetWindowRect(&rcLabel);
+ ScreenToClient(rcLabel);
+ GetDlgItem(IDC_COMBO_CASSETTE_STATUS)->GetWindowRect(&rcComboBox);
+ ScreenToClient(rcComboBox);
+ GetClientRect(rcClient);
+
+ m_ctrlJobSlotGrid.MoveWindow(rcComboBox.left, rcLabel.top,
+ rcClient.right - 22 - rcComboBox.left, rcClient.bottom - 12 - rcLabel.top);
+}
\ No newline at end of file
--
Gitblit v1.9.3