From e48a55eb3cc807fa5a45cf398b6f523e96aa5312 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期二, 15 七月 2025 15:10:31 +0800
Subject: [PATCH] 1.Variable列表显示到界面; 2.从文件中加载CReport列表;
---
SourceCode/Bond/Servo/CPagePortProperty.cpp | 232 ++++++++++++++++++++++++++++++++-------------------------
1 files changed, 129 insertions(+), 103 deletions(-)
diff --git a/SourceCode/Bond/Servo/CPagePortProperty.cpp b/SourceCode/Bond/Servo/CPagePortProperty.cpp
index 2ce463e..380e35d 100644
--- a/SourceCode/Bond/Servo/CPagePortProperty.cpp
+++ b/SourceCode/Bond/Servo/CPagePortProperty.cpp
@@ -9,6 +9,9 @@
#include "MsgDlg.h"
+#define DELAY_CLOSE 2000
+
+
// CPagePortProperty 瀵硅瘽妗�
IMPLEMENT_DYNAMIC(CPagePortProperty, CHMPropertyPage)
@@ -57,7 +60,7 @@
CComboBox* pComboBox;
std::string strTemp;
-
+ ((CButton*)GetDlgItem(IDC_CHECK_ENABLE))->SetCheck(m_pPort->isEnable() ? BST_CHECKED : BST_UNCHECKED);
pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_PORT_TYPE);
for (int i = 1; i <= 7; i++) {
pComboBox->InsertString(i - 1, SERVO::CLoadPort::getPortTypeDescription((SERVO::PortType)i, strTemp).c_str());
@@ -69,7 +72,7 @@
pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_PORT_MODE);
for (int i = 0; i <= 5; i++) {
- pComboBox->InsertString(i - 1, SERVO::CLoadPort::getPortModeDescription((SERVO::PortMode)i, strTemp).c_str());
+ pComboBox->InsertString(i, SERVO::CLoadPort::getPortModeDescription((SERVO::PortMode)i, strTemp).c_str());
}
int portMode = (int)m_pPort->getPortMode();
if (0 <= portMode && portMode <= 5) {
@@ -130,6 +133,7 @@
// TODO: 鍦ㄦ澶勬坊鍔犳秷鎭鐞嗙▼搴忎唬鐮�
}
+int g_nMsgDlgShow = 0;
void CPagePortProperty::OnBnClickedCheckEnable()
{
BOOL bCheck = ((CButton*)GetDlgItem(IDC_CHECK_ENABLE))->GetCheck() == BST_CHECKED;
@@ -137,6 +141,7 @@
// enable port
+ g_nMsgDlgShow = 0;
CMsgDlg msgDlg("璇风瓑寰�", "姝e湪鎿嶄綔锛岃绛夊緟...");
ASSERT(m_pPort != nullptr);
@@ -146,28 +151,29 @@
if (code == WOK) {
LOGI("%s Port 鎴愬姛.", bCheck ? _T("enable") : _T("disable"));
-
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("%s Port 鎴愬姛."), bCheck ? _T("enable") : _T("disable"));
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_SUCCEED);
- msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(0);
+
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("%s Port 鎴愬姛."), bCheck ? _T("enable") : _T("disable"));
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_SUCCEED);
+ msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(0);
+ }
}
else {
LOGI("%s Port 澶辫触锛宑ode:%d", bCheck ? _T("enable") : _T("disable"), code);
-
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("%s Port 澶辫触锛宑ode:%d"), bCheck ? _T("enable") : _T("disable"), code);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_ERROR);
- msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(-1);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("%s Port 澶辫触锛宑ode:%d"), bCheck ? _T("enable") : _T("disable"), code);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_ERROR);
+ msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(-1);
+ }
// 杩樺師鎺т欢鐘舵��
EnableCtrls(!bCheck);
((CButton*)GetDlgItem(IDC_CHECK_ENABLE))->SetCheck(!bCheck ? BST_CHECKED : BST_UNCHECKED);
@@ -177,10 +183,12 @@
});
msgDlg.DoModal();
+ g_nMsgDlgShow = 1;
}
void CPagePortProperty::OnCbnSelchangeComboPortType()
{
+ g_nMsgDlgShow = 0;
CMsgDlg msgDlg("璇风瓑寰�", "姝e湪鎿嶄綔锛岃绛夊緟...");
msgDlg.SetData((DWORD_PTR)this);
@@ -193,36 +201,40 @@
if (code == WOK) {
LOGI("璁剧疆Port Type(%d)鎴愬姛.", index + 1);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("璁剧疆Port Type(%d)鎴愬姛"), index + 1);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_SUCCEED);
- msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(0);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("璁剧疆Port Type(%d)鎴愬姛"), index + 1);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_SUCCEED);
+ msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(0);
+ }
}
else {
LOGI("璁剧疆Port Type(%d)澶辫触锛宑ode:%d", index + 1, code);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("璁剧疆Port Type(%d)澶辫触锛宑ode:%d"), index + 1, code);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_ERROR);
- msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(-1);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("璁剧疆Port Type(%d)澶辫触锛宑ode:%d"), index + 1, code);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_ERROR);
+ msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(-1);
+ }
}
return 0;
});
msgDlg.DoModal();
+ g_nMsgDlgShow = 1;
}
void CPagePortProperty::OnCbnSelchangeComboPortMode()
{
+ g_nMsgDlgShow = 0;
CMsgDlg msgDlg("璇风瓑寰�", "姝e湪鎿嶄綔锛岃绛夊緟...");
msgDlg.SetData((DWORD_PTR)this);
@@ -235,126 +247,137 @@
if (code == WOK) {
LOGI("璁剧疆Port Mode(%d)鎴愬姛.", index);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("璁剧疆Port Mode(%d)鎴愬姛"), index);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_SUCCEED);
- msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(0);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("璁剧疆Port Mode(%d)鎴愬姛"), index);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_SUCCEED);
+ msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(0);
+ }
}
else {
LOGI("璁剧疆Port Mode(%d)澶辫触锛宑ode:%d", index, code);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("璁剧疆Port Mode(%d)澶辫触锛宑ode:%d"), index, code);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_ERROR);
- msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(-1);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("璁剧疆Port Mode(%d)澶辫触锛宑ode:%d"), index, code);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_ERROR);
+ msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(-1);
+ }
}
return 0;
});
msgDlg.DoModal();
+ g_nMsgDlgShow = 1;
}
void CPagePortProperty::OnCbnSelchangeComboPortCassertType()
{
+ g_nMsgDlgShow = 0;
CMsgDlg msgDlg("璇风瓑寰�", "姝e湪鎿嶄綔锛岃绛夊緟...");
msgDlg.SetData((DWORD_PTR)this);
ASSERT(m_pPort != nullptr);
int index = ((CComboBox*)GetDlgItem(IDC_COMBO_PORT_CASSERT_TYPE))->GetCurSel();
- m_pPort->setPortMode(SERVO::PortMode(index + 1), [&](int code) -> int {
+ m_pPort->setCassetteType(SERVO::CassetteType(index + 1), [&](int code) -> int {
Sleep(100);
CString strMsg;
if (code == WOK) {
LOGI("璁剧疆Cassette type(%d)鎴愬姛.", index + 1);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("璁剧疆Cassette type(%d)鎴愬姛"), index + 1);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_SUCCEED);
- msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(0);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("璁剧疆Cassette type(%d)鎴愬姛"), index + 1);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_SUCCEED);
+ msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(0);
+ }
}
else {
LOGI("璁剧疆Cassette type(%d)澶辫触锛宑ode:%d", index + 1, code);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("璁剧疆Cassette type(%d)澶辫触锛宑ode:%d"), index + 1, code);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_ERROR);
- msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(-1);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("璁剧疆Cassette type(%d)澶辫触锛宑ode:%d"), index + 1, code);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_ERROR);
+ msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(-1);
+ }
}
return 0;
});
msgDlg.DoModal();
+ g_nMsgDlgShow = 1;
}
void CPagePortProperty::OnCbnSelchangeComboPortTransferMode()
{
// TODO: 鍦ㄦ娣诲姞鎺т欢閫氱煡澶勭悊绋嬪簭浠g爜
+ g_nMsgDlgShow = 0;
CMsgDlg msgDlg("璇风瓑寰�", "姝e湪鎿嶄綔锛岃绛夊緟...");
msgDlg.SetData((DWORD_PTR)this);
ASSERT(m_pPort != nullptr);
int index = ((CComboBox*)GetDlgItem(IDC_COMBO_PORT_TRANSFER_MODE))->GetCurSel();
- m_pPort->setPortMode(SERVO::PortMode(index + 1), [&](int code) -> int {
+ m_pPort->setTransferMode(SERVO::TransferMode(index + 1), [&](int code) -> int {
Sleep(100);
CString strMsg;
if (code == WOK) {
LOGI("璁剧疆Transfer mode(%d)鎴愬姛.", index + 1);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("璁剧疆Transfer mode(%d)鎴愬姛"), index + 1);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_SUCCEED);
- msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(0);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("璁剧疆Transfer mode(%d)鎴愬姛"), index + 1);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_SUCCEED);
+ msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(0);
+ }
}
else {
LOGI("璁剧疆Transfer mode(%d)澶辫触锛宑ode:%d", index + 1, code);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("璁剧疆Transfer mode(%d)澶辫触锛宑ode:%d"), index + 1, code);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_ERROR);
- msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(-1);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("璁剧疆Transfer mode(%d)澶辫触锛宑ode:%d"), index + 1, code);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_ERROR);
+ msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(-1);
+ }
}
return 0;
});
msgDlg.DoModal();
+ g_nMsgDlgShow = 1;
}
void CPagePortProperty::OnBnClickedCheckAutoChange()
{
BOOL bCheck = ((CButton*)GetDlgItem(IDC_CHECK_AUTO_CHANGE))->GetCheck() == BST_CHECKED;
- EnableCtrls(bCheck);
// enable port
+ g_nMsgDlgShow = 0;
CMsgDlg msgDlg("璇风瓑寰�", "姝e湪鎿嶄綔锛岃绛夊緟...");
ASSERT(m_pPort != nullptr);
@@ -365,26 +388,28 @@
if (code == WOK) {
LOGI("%s Auto Change 鎴愬姛.", bCheck ? _T("enable") : _T("disable"));
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("%s Auto Change 鎴愬姛."), bCheck ? _T("enable") : _T("disable"));
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_SUCCEED);
- msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(0);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("%s Auto Change 鎴愬姛."), bCheck ? _T("enable") : _T("disable"));
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_SUCCEED);
+ msgDlg.SetTitle(_T("鎿嶄綔鎴愬姛"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(0);
+ }
}
else {
LOGI("%s Auto Change 澶辫触锛宑ode:%d", bCheck ? _T("enable") : _T("disable"), code);
- msgDlg.DelayClose(3000);
- strMsg.Format(_T("%s Auto Change 澶辫触锛宑ode:%d"), bCheck ? _T("enable") : _T("disable"), code);
- msgDlg.DelayClose(3000);
- msgDlg.SetIcon(MSG_BOX_ERROR);
- msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
- msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
- msgDlg.SetMarquee(FALSE, 0);
- msgDlg.SetCompleteCode(-1);
+ if (g_nMsgDlgShow == 0 && ::IsWindow(msgDlg.GetSafeHwnd())) {
+ strMsg.Format(_T("%s Auto Change 澶辫触锛宑ode:%d"), bCheck ? _T("enable") : _T("disable"), code);
+ msgDlg.DelayClose(DELAY_CLOSE);
+ msgDlg.SetIcon(MSG_BOX_ERROR);
+ msgDlg.SetTitle(_T("鎿嶄綔澶辫触"));
+ msgDlg.SetMessage((LPTSTR)(LPCTSTR)strMsg);
+ msgDlg.SetMarquee(FALSE, 0);
+ msgDlg.SetCompleteCode(-1);
+ }
// 杩樺師鎺т欢鐘舵��
((CButton*)GetDlgItem(IDC_CHECK_AUTO_CHANGE))->SetCheck(!bCheck ? BST_CHECKED : BST_UNCHECKED);
@@ -394,6 +419,7 @@
});
msgDlg.DoModal();
+ g_nMsgDlgShow = 1;
}
void CPagePortProperty::EnableCtrls(BOOL bEnable)
--
Gitblit v1.9.3