From 44360bc2cdeee16be72f9cc4bfb42e0ac26b5b44 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期一, 19 一月 2026 14:47:19 +0800
Subject: [PATCH] 1.修改优化
---
SourceCode/Bond/BondEq/CProjectPageMain.cpp | 188 +++++++++++++++++++++++++++++-----------------
1 files changed, 119 insertions(+), 69 deletions(-)
diff --git a/SourceCode/Bond/BondEq/CProjectPageMain.cpp b/SourceCode/Bond/BondEq/CProjectPageMain.cpp
index 9a0693c..53f1689 100644
--- a/SourceCode/Bond/BondEq/CProjectPageMain.cpp
+++ b/SourceCode/Bond/BondEq/CProjectPageMain.cpp
@@ -22,15 +22,16 @@
m_crBkgnd = PROPAGE_BACKGROUND_COLOR;
m_hbrBkgnd = nullptr;
m_pObserver = nullptr;
-
- nVelocityRatio = 0.0;
- dTactTime = 0.0;
- nDayShiftCapacity = 0;
- nNightShiftCapacity = 0;
+ for (int i = 0; i < BTN_MAX; i++) {
+ m_pBlBtns[i] = new CBlButton();
+ }
}
CProjectPageMain::~CProjectPageMain()
{
+ for (int i = 0; i < BTN_MAX; i++) {
+ delete m_pBlBtns[i];
+ }
}
void CProjectPageMain::SetPLC(CPLC* pPLC)
@@ -107,47 +108,6 @@
});
}
-void CProjectPageMain::ReadPLCDataToUI()
-{
- ASSERT(m_pPLC->isConnected());
-
- // 鎬讳换鍔℃暟
- int nPendingTasks = 5;
-
- auto createReadTask = [this, &nPendingTasks](MC::SOFT_COMPONENT type, int nAddr, auto onProcessData) {
- return [this, &nPendingTasks, onProcessData](IMcChannel* pChannel, int nAddr, char* pData, unsigned int nDataSize, int nFlag) {
- if (nDataSize == 2 && nFlag == 0 && ::IsWindow(m_hWnd)) {
- onProcessData(CToolUnits::toInt16(&pData[0]));
- }
-
- // 浠诲姟瀹屾垚锛屽噺灏戣鏁�
- if (--nPendingTasks == 0) {
- PostMessage(ID_MSG_UPDATA_DATA_TO_UI);
- }
- };
- };
-
- m_pPLC->readData(MC::M, 1003, 2, createReadTask(MC::M, 1003, [this](int nValue) {
- theApp.m_model.getBonder().setMute(nValue != 0);
- }));
-
- m_pPLC->readData(MC::D, 530, 2, createReadTask(MC::D, 530, [this](int nValue) {
- nVelocityRatio = static_cast<unsigned int>(nValue);
- }));
-
- m_pPLC->readData(MC::ZR, 1500, 2, createReadTask(MC::ZR, 1500, [this](int nValue) {
- dTactTime = nValue;
- }));
-
- m_pPLC->readData(MC::ZR, 2012, 2, createReadTask(MC::ZR, 2012, [this](int nValue) {
- nDayShiftCapacity = nValue;
- }));
-
- m_pPLC->readData(MC::ZR, 2027, 2, createReadTask(MC::ZR, 2027, [this](int nValue) {
- nNightShiftCapacity = nValue;
- }));
-}
-
BEGIN_MESSAGE_MAP(CProjectPageMain, CDialogEx)
ON_WM_CTLCOLOR()
ON_WM_DESTROY()
@@ -164,7 +124,6 @@
ON_MESSAGE(ID_MSG_UPDATA_DATA_TO_UI, &CProjectPageMain::OnUpdateDataToUI)
END_MESSAGE_MAP()
-
// CProjectPageMain 娑堟伅澶勭悊绋嬪簭
void CProjectPageMain::InitRxWindows()
@@ -178,9 +137,81 @@
// onNext
pAny->addRef();
int code = pAny->getCode();
- //if (true) {
-
- //}
+ if (RX_CODE_BONDER_BEEP == code) {
+ bool bMute = theApp.m_model.getBonder().isMute();
+ GetDlgItem(IDC_BUTTON_SOUND_OFF)->SetWindowText(bMute ? _T("闈欓煶") : _T("澹伴煶"));
+ }
+ else if (RX_CODE_BONDER_VELOCITY_RATIO == code) {
+ int nVelocityRatio;
+ if (pAny->getIntValue("exCode", nVelocityRatio)) {
+ CString strText;
+ strText.Format(_T("%d %s"), nVelocityRatio, _T("%"));
+ GetDlgItem(IDC_EDIT_VELOCITY_RATIO)->SetWindowText(strText);
+ }
+ }
+ else if (RX_CODE_BONDER_TACT_TIME == code) {
+ double dTactTime;
+ if (pAny->getDoubleValue("value", dTactTime)) {
+ CString strText;
+ strText.Format(_T("%.2f"), dTactTime);
+ GetDlgItem(IDC_EDIT_TACT_TIME)->SetWindowText(strText);
+ }
+ }
+ else if (RX_CODE_BONDER_DAY_SHIFT_CAPACTITY == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetDlgItemInt(IDC_EDIT_DAY_SHIFT_CAPACITY, capactity);
+ }
+ }
+ else if (RX_CODE_BONDER_NIGHT_SHIFT_CAPACTITY == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetDlgItemInt(IDC_EDIT_NIGHT_SHIFT_CAPACITY, capactity);
+ }
+ }
+ // 涓存椂娣诲姞
+ else if (RX_CODE_BONDER_STATES_BTN0 == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetButtonBackgroundColors(m_pBlBtns[BTN_RUN], capactity == 0);
+ }
+ }
+ else if (RX_CODE_BONDER_STATES_BTN1 == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetButtonBackgroundColors(m_pBlBtns[BTN_AUTO], capactity == 0);
+ }
+ }
+ else if (RX_CODE_BONDER_STATES_BTN2 == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetButtonBackgroundColors(m_pBlBtns[BTN_PUASE], capactity == 0);
+ }
+ }
+ else if (RX_CODE_BONDER_STATES_BTN3 == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetButtonBackgroundColors(m_pBlBtns[BTN_MANUAL], capactity == 0);
+ }
+ }
+ else if (RX_CODE_BONDER_STATES_BTN4 == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetButtonBackgroundColors(m_pBlBtns[BTN_MUTE], capactity == 0);
+ }
+ }
+ else if (RX_CODE_BONDER_STATES_BTN5 == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetButtonBackgroundColors(m_pBlBtns[BTN_OPR], capactity == 0);
+ }
+ }
+ else if (RX_CODE_BONDER_STATES_BTN6 == code) {
+ int capactity;
+ if (pAny->getIntValue("exCode", capactity)) {
+ SetButtonBackgroundColors(m_pBlBtns[BTN_STOP], capactity == 0);
+ }
+ }
pAny->release();
}, [&]() -> void {
// onComplete
@@ -194,12 +225,49 @@
}
}
+void CProjectPageMain::SetButtonBackgroundColors(CBlButton* btn, bool bOff)
+{
+ if (bOff) {
+ btn->SetBkgndColor(BS_NORMAL, BTN_SOUND_OFF_BKGND_NORMAL);
+ btn->SetBkgndColor(BS_HOVER, BTN_SOUND_OFF_BKGND_HOVER);
+ btn->SetBkgndColor(BS_PRESS, BTN_SOUND_OFF_BKGND_PRESS);
+ btn->Invalidate();
+ }
+ else {
+ btn->SetBkgndColor(BS_NORMAL, BTN_SOUND_ON_BKGND_NORMAL);
+ btn->SetBkgndColor(BS_HOVER, BTN_SOUND_ON_BKGND_HOVER);
+ btn->SetBkgndColor(BS_PRESS, BTN_SOUND_ON_BKGND_PRESS);
+ btn->Invalidate();
+ }
+}
+
BOOL CProjectPageMain::OnInitDialog()
{
CDialogEx::OnInitDialog();
InitRxWindows();
- SetTimer(TIMER_READ_PLC_DATA, 500, nullptr);
+
+ // 鎸夐挳鍒濆鍖�
+ m_pBlBtns[BTN_RUN]->SubclassDlgItem(IDC_BUTTON_ACTIVATE, this);
+ m_pBlBtns[BTN_AUTO]->SubclassDlgItem(IDC_BUTTON_AUTO, this);
+ m_pBlBtns[BTN_PUASE]->SubclassDlgItem(IDC_BUTTON_PUASE, this);
+ m_pBlBtns[BTN_MANUAL]->SubclassDlgItem(IDC_BUTTON_MANUAL_OPERATION, this);
+ m_pBlBtns[BTN_MUTE]->SubclassDlgItem(IDC_BUTTON_SOUND_OFF, this);
+ m_pBlBtns[BTN_OPR]->SubclassDlgItem(IDC_BUTTON_RESETTING, this);
+ m_pBlBtns[BTN_STOP]->SubclassDlgItem(IDC_BUTTON_STOP, this);
+
+ for (int i = 0; i < BTN_MAX; i++) {
+ m_pBlBtns[i]->SetFrameColor(BS_NORMAL, BTN_SOUND_OFF_FRAME_NORMAL);
+ m_pBlBtns[i]->SetFrameColor(BS_HOVER, BTN_SOUND_OFF_FRAME_HOVER);
+ m_pBlBtns[i]->SetFrameColor(BS_PRESS, BTN_SOUND_OFF_FRAME_PRESS);
+ }
+
+ // 鍒濆鍊�
+ SetDlgItemText(IDC_EDIT_VELOCITY_RATIO, _T("0 %"));
+ SetDlgItemText(IDC_EDIT_TACT_TIME, _T("0.00"));
+ SetDlgItemText(IDC_EDIT_DAY_SHIFT_CAPACITY, _T("0"));
+ SetDlgItemText(IDC_EDIT_NIGHT_SHIFT_CAPACITY, _T("0"));
+
return TRUE; // return TRUE unless you set the focus to a control
// 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
}
@@ -242,14 +310,6 @@
void CProjectPageMain::OnTimer(UINT_PTR nIDEvent)
{
- if (TIMER_READ_PLC_DATA == nIDEvent) {
- ASSERT(m_pPLC);
-
- if (m_pPLC != nullptr && m_pPLC->isConnected()) {
- ReadPLCDataToUI();
- }
- }
-
CDialogEx::OnTimer(nIDEvent);
}
@@ -306,15 +366,5 @@
LRESULT CProjectPageMain::OnUpdateDataToUI(WPARAM wParam, LPARAM lParam)
{
- CString strText;
- strText.Format(_T("%d %s"), nVelocityRatio, _T("%"));
- GetDlgItem(IDC_EDIT_VELOCITY_RATIO)->SetWindowText(strText);
-
- strText.Format(_T("%.2f"), dTactTime);
- GetDlgItem(IDC_EDIT_TACT_TIME)->SetWindowText(strText);
-
- SetDlgItemInt(IDC_EDIT_DAY_SHIFT_CAPACITY, nDayShiftCapacity);
- SetDlgItemInt(IDC_EDIT_NIGHT_SHIFT_CAPACITY, nNightShiftCapacity);
-
return 0;
}
--
Gitblit v1.9.3