From bfe14e41fa5b07771d78af4511ba18d706bc23cc Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 28 七月 2025 17:07:52 +0800
Subject: [PATCH] 1.Spooling Config功能EAP模拟测试;
---
SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp | 401 ++++++++++++++++++++++++--------------------------------
1 files changed, 171 insertions(+), 230 deletions(-)
diff --git a/SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp b/SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp
index 4b4027d..7cf9480 100644
--- a/SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp
+++ b/SourceCode/Bond/BondEq/View/AxisSettingsDlg.cpp
@@ -5,6 +5,7 @@
#include "BondEq.h"
#include "afxdialogex.h"
#include "AxisSettingsDlg.h"
+#include "AxisDetailSettingsDlg.h"
#include "ToolUnits.h"
#include <cctype>
#include <algorithm>
@@ -20,13 +21,11 @@
// CAxisSettingsDlg 瀵硅瘽妗�
-IMPLEMENT_DYNAMIC(CAxisSettingsDlg, CDialogEx)
+IMPLEMENT_DYNAMIC(CAxisSettingsDlg, CBaseDlg)
CAxisSettingsDlg::CAxisSettingsDlg(CWnd* pParent /*=nullptr*/)
- : CDialogEx(IDD_DIALOG_AXIS_SETTINGS, pParent)
+ : CBaseDlg(IDD_DIALOG_AXIS_SETTINGS, pParent)
{
- m_nInitialWidth = 0;
- m_nInitialHeight = 0;
m_pPLC = nullptr;
m_bSEV = FALSE;
@@ -43,8 +42,13 @@
m_bReady = FALSE;
m_bBusy = FALSE;
m_bErr = FALSE;
+
for (int i = 0; i < BTN_MAX; i++) {
m_pBlBtns[i] = new CBlButton();
+ }
+
+ for (int i = 0; i < EDIT_MAX; i++) {
+ m_pRegexEdit[i] = new CRegexEdit();
}
for (int i = 0; i < LABEL_MAX; i++) {
@@ -57,16 +61,12 @@
CAxisSettingsDlg::~CAxisSettingsDlg()
{
- for (auto& pair : m_mapFonts) {
- if (pair.second) {
- pair.second->DeleteObject();
- delete pair.second;
- }
- }
- m_mapFonts.clear();
-
for (int i = 0; i < BTN_MAX; i++) {
delete m_pBlBtns[i];
+ }
+
+ for (int i = 0; i < EDIT_MAX; i++) {
+ delete m_pRegexEdit[i];
}
for (int i = 0; i < LABEL_MAX; i++) {
@@ -87,16 +87,11 @@
void CAxisSettingsDlg::DoDataExchange(CDataExchange* pDX)
{
- CDialogEx::DoDataExchange(pDX);
+ CBaseDlg::DoDataExchange(pDX);
DDX_Control(pDX, IDC_COMBO_AXIS_NAME, m_comboAxisNO);
DDX_Control(pDX, IDC_STATIC_AXIS_NUMBER, m_staticAxisNO);
DDX_Control(pDX, IDC_STATIC_AXIS_DESCRIP, m_staticAxisDescription);
DDX_Control(pDX, IDC_STATIC_START_ADDRESS, m_staticStartAddress);
- DDX_Control(pDX, IDC_EDIT_AXIS_MODITFY_POS, m_editManualSpeed);
- DDX_Control(pDX, IDC_EDIT_AXIS_MODITFY_AUTO_SPEED, m_editAutoSpeed);
- DDX_Control(pDX, IDC_EDIT_AXIS_MODITFY_ACCE_TIME, m_editAccelerationTime);
- DDX_Control(pDX, IDC_EDIT_AXIS_MODITFY_DECE_TIME, m_editDecelerationTime);
- DDX_Control(pDX, IDC_EDIT_AXIS_MODITFY_MICROMENTUM, m_editJogDistance);
}
UINT CAxisSettingsDlg::FindIDByName(const CString& strControlID)
@@ -125,81 +120,12 @@
return 0;
}
-CFont* CAxisSettingsDlg::GetOrCreateFont(int nFontSize)
-{
- auto it = m_mapFonts.find(nFontSize);
- if (it != m_mapFonts.end()) {
- return it->second;
- }
-
- CFont* font = new CFont();
- LOGFONT logFont = { 0 };
- _tcscpy_s(logFont.lfFaceName, _T("Segoe UI"));
- logFont.lfHeight = -nFontSize;
- logFont.lfQuality = CLEARTYPE_QUALITY;
- font->CreateFontIndirect(&logFont);
- m_mapFonts[nFontSize] = font;
-
- return font;
-}
-
-void CAxisSettingsDlg::SetDefaultFont()
-{
- CFont* defaultFont = GetOrCreateFont(12);
-
- // 閬嶅巻鎵�鏈夋帶浠讹紝搴旂敤榛樿瀛椾綋
- CWnd* pWnd = GetWindow(GW_CHILD);
- while (pWnd) {
- pWnd->SetFont(defaultFont, TRUE);
- pWnd = pWnd->GetNextWindow();
- }
-}
-
-void CAxisSettingsDlg::AdjustControls(float dScaleX, float dScaleY)
-{
- CWnd* pWnd = GetWindow(GW_CHILD);
- while (pWnd) {
- int nCtrlID = pWnd->GetDlgCtrlID();
- if (nCtrlID != -1 && m_mapCtrlLayouts.find(nCtrlID) != m_mapCtrlLayouts.end())
- {
- CRect originalRect = m_mapCtrlLayouts[nCtrlID];
- CRect newRect(
- static_cast<int>(originalRect.left * dScaleX),
- static_cast<int>(originalRect.top * dScaleY),
- static_cast<int>(originalRect.right * dScaleX),
- static_cast<int>(originalRect.bottom * dScaleY));
-
- TCHAR szClassName[256];
- GetClassName(pWnd->m_hWnd, szClassName, sizeof(szClassName));
-
- if (_tcsicmp(szClassName, _T("ComboBox")) == 0) {
- CComboBox* pComboBox = (CComboBox*)pWnd;
- pComboBox->SetItemHeight(-1, newRect.Height()); // -1 琛ㄧず鎵�鏈夐」鐨勯珮搴�
- }
-
- pWnd->MoveWindow(&newRect);
- AdjustControlFont(pWnd, newRect.Width(), newRect.Height());
- }
- pWnd = pWnd->GetNextWindow();
- }
-}
-
-void CAxisSettingsDlg::AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight)
-{
- // 鏍规嵁鎺т欢楂樺害鍔ㄦ�佽皟鏁村瓧浣撳ぇ灏�
- int fontSize = nHeight / 2;
- if (fontSize < 8) fontSize = 8;
- if (fontSize > 24) fontSize = 24; // 鏈�澶у瓧浣撳ぇ灏�
-
- // 鑾峰彇鎴栧垱寤哄瓧浣�
- CFont* pFont = GetOrCreateFont(fontSize);
-
- pWnd->SetFont(pFont);
- pWnd->Invalidate(); // 鍒锋柊鎺т欢鏄剧ず
-}
-
void CAxisSettingsDlg::AdjustLabelFont(CBLLabel& label)
{
+ if (label.m_hWnd == nullptr) {
+ return;
+ }
+
// 鑾峰彇鎺т欢鐨勭煩褰㈠尯鍩�
CRect rect;
label.GetClientRect(&rect);
@@ -207,7 +133,7 @@
// 鍔ㄦ�佽绠楀瓧浣撳ぇ灏忥紝鍩轰簬鎺т欢鐨勯珮搴�
int fontSize = rect.Height() / 2; // 鎺т欢楂樺害鐨勪竴鍗婁綔涓哄瓧浣撳ぇ灏�
if (fontSize < 8) fontSize = 8; // 鏈�灏忓瓧浣撳ぇ灏�
- if (fontSize > 30) fontSize = 30; // 鏈�澶у瓧浣撳ぇ灏�
+ if (fontSize > 20) fontSize = 20; // 鏈�澶у瓧浣撳ぇ灏�
// 璁剧疆瀛椾綋澶у皬
label.SetFontSize(fontSize);
@@ -235,6 +161,24 @@
SetLabelColorBasedOnState(*m_pBlLabels[LABEL_READY], m_bReady, COLOR_GREEN_ON, COLOR_GREEN_OFF);
SetLabelColorBasedOnState(*m_pBlLabels[LABEL_BUSY], m_bBusy, COLOR_GREEN_ON, COLOR_GREEN_OFF);
SetLabelColorBasedOnState(*m_pBlLabels[LABEL_ERR], m_bErr, COLOR_RED, COLOR_GREEN_OFF);
+}
+
+void CAxisSettingsDlg::UpdateRegexEdit(CRegexEdit* pRegexEdit, const ValueRange& range, const CString& title)
+{
+ auto formatDouble = [](double value) -> CString {
+ CString str;
+ str.Format(_T("%.3f"), value);
+ return str;
+ };
+
+ pRegexEdit->SetWindowText(formatDouble(range.currentValue));
+ pRegexEdit->SetRegexType(RegexType::Decimal);
+ pRegexEdit->SetValueRange(range.minValue, range.maxValue);
+ pRegexEdit->SetInvalidInputCallback([title, range]() {
+ CString strError;
+ strError.Format(_T("%s鐨勫�煎繀椤诲湪 %.3f 鍜� %.3f 涔嬮棿锛�"), title, range.minValue, range.maxValue);
+ AfxMessageBox(strError);
+ });
}
void CAxisSettingsDlg::updatePageButtonStates()
@@ -311,14 +255,15 @@
};
// 鏇存柊鎺т欢鏄剧ず
- m_staticAxisNO.SetWindowText(CString(axisDetails.number.c_str())); // 杞寸紪鍙�
- m_staticAxisDescription.SetWindowText(CString(axisDetails.description.c_str())); // 杞存弿杩�
- m_staticStartAddress.SetWindowText(CString(axisDetails.startAddress.c_str())); // 璧峰鍦板潃
- m_editJogDistance.SetWindowText(formatDouble(axisDetails.jogDistance.currentValue)); // 寰姩閲�
- m_editManualSpeed.SetWindowText(formatDouble(axisDetails.manualSpeed.currentValue)); // 鎵嬪姩閫熷害
- m_editAutoSpeed.SetWindowText(formatDouble(axisDetails.autoSpeed.currentValue)); // 鑷姩閫熷害
- m_editAccelerationTime.SetWindowText(formatDouble(axisDetails.accelerationTime.currentValue)); // 鍔犻�熸椂闂�
- m_editDecelerationTime.SetWindowText(formatDouble(axisDetails.decelerationTime.currentValue)); // 鍑忛�熸椂闂�
+ m_staticAxisNO.SetWindowText(CString(axisDetails.number.c_str())); // 杞寸紪鍙�
+ m_staticAxisDescription.SetWindowText(CString(axisDetails.description.c_str())); // 杞存弿杩�
+ m_staticStartAddress.SetWindowText(CString(axisDetails.startAddress.c_str())); // 璧峰鍦板潃
+
+ UpdateRegexEdit(m_pRegexEdit[EDIT_MICROMENTUM], axisDetails.jogDistance, _T("寰姩閲�"));
+ UpdateRegexEdit(m_pRegexEdit[EDIT_MANUAL_SPEED], axisDetails.manualSpeed, _T("鎵嬪姩閫熷害"));
+ UpdateRegexEdit(m_pRegexEdit[EDIT_AUTO_SPEED], axisDetails.autoSpeed, _T("鑷姩閫熷害"));
+ UpdateRegexEdit(m_pRegexEdit[EDIT_ACCE_TIME], axisDetails.accelerationTime, _T("鍔犻�熸椂闂�"));
+ UpdateRegexEdit(m_pRegexEdit[EDIT_DECE_TIME], axisDetails.decelerationTime, _T("鍑忛�熸椂闂�"));
}
void CAxisSettingsDlg::refreshPositionDetails(int nAxisId, int pageNumber)
@@ -352,12 +297,28 @@
// 鏄剧ず瀹氫綅鐐圭殑褰撳墠浣嶇疆
CString value;
value.Format(_T("%.3f"), position.range.currentValue);
- if (pPositionCtrl) pPositionCtrl->SetWindowText(value);
+ if (pPositionCtrl) {
+ pPositionCtrl->SetWindowText(value);
+ pPositionCtrl->EnableWindow(position.isEnable);
+
+ if (position.isEnable) {
+ CString strError;
+ strError.Format(_T("瀹氫綅鐐�%d"), i + 1);
+ UpdateRegexEdit((CRegexEdit*)pPositionCtrl, position.range, strError);
+ }
+ }
}
else {
// 娓呯┖鎺т欢鍐呭
- if (pDescriptionCtrl) pDescriptionCtrl->SetWindowText(_T(""));
- if (pPositionCtrl) pPositionCtrl->SetWindowText(_T(""));
+ if (pDescriptionCtrl) {
+ pDescriptionCtrl->SetWindowText(_T(""));
+ pDescriptionCtrl->EnableWindow(FALSE);
+ }
+
+ if (pPositionCtrl) {
+ pPositionCtrl->SetWindowText(_T(""));
+ pPositionCtrl->EnableWindow(FALSE);
+ }
}
}
}
@@ -433,19 +394,19 @@
// 鑾峰彇鐣岄潰涓婄殑淇敼鍙傛暟
CString text;
- m_editManualSpeed.GetWindowText(text);
+ m_pRegexEdit[EDIT_MANUAL_SPEED]->GetWindowText(text);
axisData.manualSpeed.currentValue = _ttof(text);
- m_editAutoSpeed.GetWindowText(text);
+ m_pRegexEdit[EDIT_AUTO_SPEED]->GetWindowText(text);
axisData.autoSpeed.currentValue = _ttof(text);
- m_editAccelerationTime.GetWindowText(text);
+ m_pRegexEdit[EDIT_ACCE_TIME]->GetWindowText(text);
axisData.accelerationTime.currentValue = _ttof(text);
- m_editDecelerationTime.GetWindowText(text);
+ m_pRegexEdit[EDIT_DECE_TIME]->GetWindowText(text);
axisData.decelerationTime.currentValue = _ttof(text);
- m_editJogDistance.GetWindowText(text);
+ m_pRegexEdit[EDIT_MICROMENTUM]->GetWindowText(text);
axisData.jogDistance.currentValue = _ttof(text);
// 鏇存柊瀹氫綅鐐规暟鎹�
@@ -454,7 +415,7 @@
if (index < axisData.positions.size()) {
// 鏋勫缓鎺т欢鍚嶇О
- CString descriptionName, positionName, minValueName, maxValueName;
+ CString descriptionName, positionName;
descriptionName.Format(_T("IDC_EDIT_AXIS_ANCHOR_POINT_DESCRIP%d"), i + 1);
positionName.Format(_T("IDC_EDIT_AXIS_ANCHOR_POINT%d"), i + 1);
@@ -463,7 +424,7 @@
CEdit* pPositionEdit = (CEdit*)GetDlgItem(FindIDByName(positionName));
if (pDescriptionEdit && pPositionEdit) {
- CString description, positionValue, minValue, maxValue;
+ CString description, positionValue;
// 鑾峰彇鎺т欢涓殑鏂囨湰
pDescriptionEdit->GetWindowText(description);
@@ -769,17 +730,15 @@
m_nBtnsFlashState8 = ((BYTE)pData[b + 4] | (BYTE)pData[b + 5] << 8);
m_nBtnsFlashState8 |= ((BYTE)pData[b + 6] << 16 | (BYTE)pData[b + 7] << 24);
- AxisInfo axisInfo = RecipeManager::getInstance().getAxis(nAxisId);
- axisInfo.autoSpeed.currentValue = m_fAutoSpeed; // 鑷姩閫熷害
- axisInfo.manualSpeed.currentValue = m_fManualSpeed; // 鎵嬪姩閫熷害
- axisInfo.jogDistance.currentValue = CToolUnits::toInt32(&pData[81 * 2]) * 0.001; // 寰姩閲�
- axisInfo.accelerationTime.currentValue = CToolUnits::toInt32(&pData[62 * 2]) * 0.001; // 鍔犻�熸椂闂�
- axisInfo.decelerationTime.currentValue = CToolUnits::toInt32(&pData[64 * 2]) * 0.001; // 鍑忛�熸椂闂�
-
// 璇诲彇瀹氫綅鐐规暟鎹�
+ AxisInfo axisInfo = RecipeManager::getInstance().getAxis(nAxisId);
for (int i = 0; i < axisInfo.positions.size(); ++i) {
- unsigned int positionAddress = 100 + (i * 2);
- axisInfo.positions[i].range.currentValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001;
+ if (axisInfo.positions[i].isEnable == FALSE) {
+ unsigned int positionAddress = 100 + (i * 2);
+ //axisInfo.positions[i].range.minValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001;
+ axisInfo.positions[i].range.currentValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001;
+ //axisInfo.positions[i].range.maxValue = CToolUnits::toInt32(&pData[positionAddress * 2]) * 0.001;
+ }
}
RecipeManager::getInstance().updateAxis(axisInfo);
@@ -790,7 +749,7 @@
}
-BEGIN_MESSAGE_MAP(CAxisSettingsDlg, CDialogEx)
+BEGIN_MESSAGE_MAP(CAxisSettingsDlg, CBaseDlg)
ON_BN_CLICKED(IDC_BUTTON_AXIS_LAST, &CAxisSettingsDlg::OnBnClickedButtonAxisLast)
ON_BN_CLICKED(IDC_BUTTON_AXIS_NEXT, &CAxisSettingsDlg::OnBnClickedButtonAxisNext)
ON_BN_CLICKED(IDC_BUTTON_AXIS_ANCHOR_POINT_GROUP1, &CAxisSettingsDlg::OnBnClickedButtonAxisAnchorPointGroup1)
@@ -805,15 +764,15 @@
ON_BN_CLICKED(IDC_BUTTON_AXIS_ANCHOR_POINT5, &CAxisSettingsDlg::OnBnClickedButtonAxisAnchorPoint5)
ON_BN_CLICKED(IDC_BUTTON_AXIS_TEST_OPR, &CAxisSettingsDlg::OnBnClickedButtonAxisTestOpr)
ON_BN_CLICKED(IDC_BUTTON_AXIS_TEST_STOP, &CAxisSettingsDlg::OnBnClickedButtonAxisTestStop)
+ ON_BN_CLICKED(IDC_BUTTON_AXIS_SEV, &CAxisSettingsDlg::OnBnClickedButtonAxisSev)
ON_CBN_SELCHANGE(IDC_COMBO_AXIS_NAME, &CAxisSettingsDlg::OnSelchangeComboAxisName)
ON_BN_CLICKED(IDC_BUTTON_AXIS_SAVE, &CAxisSettingsDlg::OnBnClickedButtonAxisSave)
+ ON_BN_CLICKED(IDC_BUTTON_AXIS_UPDATE_UI, &CAxisSettingsDlg::OnBnClickedButtonAxisUpdateUi)
+ ON_BN_CLICKED(IDC_BUTTON_AXIS_DETAIL_SETTINGS, &CAxisSettingsDlg::OnBnClickedButtonAxisDetailSettings)
ON_MESSAGE(ID_MSG_UPDATA_DATA_TO_UI, &CAxisSettingsDlg::OnUpdateDataToUI)
ON_WM_SIZE()
- ON_WM_CTLCOLOR()
- ON_WM_SIZING()
ON_WM_TIMER()
ON_WM_CLOSE()
- ON_BN_CLICKED(IDC_BUTTON_AXIS_SEV, &CAxisSettingsDlg::OnBnClickedButtonAxisSev)
END_MESSAGE_MAP()
@@ -822,7 +781,7 @@
BOOL CAxisSettingsDlg::OnInitDialog()
{
- CDialogEx::OnInitDialog();
+ CBaseDlg::OnInitDialog();
// TODO: 鍦ㄦ娣诲姞棰濆鐨勫垵濮嬪寲
CString strTitle;
@@ -830,20 +789,13 @@
SetWindowText(strTitle);
// 闅愯棌鍏夋爣
- //HideEditCursor(IDC_EDIT_AXIS_CURR_POS);
+ HideEditCursor(IDC_EDIT_AXIS_CURR_POS);
HideEditCursor(IDC_EDIT_AXIS_CURR_MANUAL_SPEED);
HideEditCursor(IDC_EDIT_AXIS_CURR_AUTO_SPEED);
HideEditCursor(IDC_EDIT_AXIS_CURR_ROTA_SPEED);
HideEditCursor(IDC_EDIT_AXIS_CURR_LOAD);
HideEditCursor(IDC_EDIT_AXIS_CURR_ERROR_NUMBER);
HideEditCursor(IDC_EDIT_AXIS_CURR_ALARM_NUMBER);
-
- // 娴嬭瘯
- {
- CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_AXIS_CURR_POS);
- pEdit->EnableWindow(TRUE);
- pEdit->SetReadOnly(FALSE);
- }
// 璁剧疆娴嬭瘯鐘舵��
m_pBlLabels[LABEL_FLS]->SubclassDlgItem(IDC_STATIC_AXIS_TEST_FLS, this);
@@ -859,8 +811,22 @@
pLabel->SetTextColor(RGB(255, 255, 255));
pLabel->SetAlignment(AlignCenter);
pLabel->SetDynamicFont(TRUE);
+
+ AdjustLabelFont(*pLabel);
}
+ // 鍒濆鍖栫紪杈戞
+ m_pRegexEdit[EDIT_MANUAL_SPEED]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_MANUAL_SPEED, this);
+ m_pRegexEdit[EDIT_AUTO_SPEED]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_AUTO_SPEED, this);
+ m_pRegexEdit[EDIT_ACCE_TIME]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_ACCE_TIME, this);
+ m_pRegexEdit[EDIT_DECE_TIME]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_DECE_TIME, this);
+ m_pRegexEdit[EDIT_MICROMENTUM]->SubclassDlgItem(IDC_EDIT_AXIS_MODITFY_MICROMENTUM, this);
+ m_pRegexEdit[EDIT_ANCHOR_POINT1]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT1, this);
+ m_pRegexEdit[EDIT_ANCHOR_POINT2]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT2, this);
+ m_pRegexEdit[EDIT_ANCHOR_POINT3]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT3, this);
+ m_pRegexEdit[EDIT_ANCHOR_POINT4]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT4, this);
+ m_pRegexEdit[EDIT_ANCHOR_POINT5]->SubclassDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT5, this);
+
// 鎸夐挳鍒濆鍖�
m_pBlBtns[BTN_PAGE1]->SubclassDlgItem(IDC_BUTTON_AXIS_ANCHOR_POINT_GROUP1, this);
m_pBlBtns[BTN_PAGE2]->SubclassDlgItem(IDC_BUTTON_AXIS_ANCHOR_POINT_GROUP2, this);
@@ -921,47 +887,6 @@
initializeAxisIDCombo();
refreshAxisDetails(1);
refreshPositionDetails(1, m_currentPage);
-
- CRect screenRect, dlgRect, clientRect;
- GetClientRect(&clientRect);
- m_nInitialWidth = clientRect.Width();
- m_nInitialHeight = clientRect.Height();
-
- // 鍒濆鍖栭粯璁ゅ瓧浣�
- CFont* pDefaultFont = GetOrCreateFont(12);
-
- // 閬嶅巻鎵�鏈夊瓙鎺т欢锛岃褰曞垵濮嬩綅缃苟璁剧疆榛樿瀛椾綋
- CWnd* pWnd = GetWindow(GW_CHILD);
- while (pWnd) {
- int nCtrlID = pWnd->GetDlgCtrlID();
- if (nCtrlID != -1) {
- // 璁板綍鎺т欢鍒濆甯冨眬
- CRect ctrlRect;
- pWnd->GetWindowRect(&ctrlRect);
- ScreenToClient(&ctrlRect);
- m_mapCtrlLayouts[nCtrlID] = ctrlRect;
-
- // 璁剧疆榛樿瀛椾綋
- pWnd->SetFont(pDefaultFont);
- }
- pWnd = pWnd->GetNextWindow();
- }
-
- GetWindowRect(&dlgRect);
- int dlgWidth = dlgRect.Width() * 2;
- int dlgHeight = dlgRect.Height() * 2;
-
- SystemParametersInfo(SPI_GETWORKAREA, 0, &screenRect, 0);
- if (dlgWidth > screenRect.Width()) {
- dlgWidth = screenRect.Width();
- }
- if (dlgHeight > screenRect.Height()) {
- dlgHeight = screenRect.Height();
- }
-
- int centerX = screenRect.left + (screenRect.Width() - dlgWidth) / 2;
- int centerY = screenRect.top + (screenRect.Height() - dlgHeight) / 2;
- MoveWindow(centerX, centerY, dlgWidth, dlgHeight);
SetTimer(TIMER_READ_PLC_DATA, 500, nullptr);
@@ -975,6 +900,11 @@
CWnd* pWnd = CWnd::FromHandle(pMsg->hwnd);
if (pWnd) {
+ if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) {
+ // 闃绘鍥炶溅閿粯璁ゅ鐞嗭紝闃叉瀵硅瘽妗嗗叧闂�
+ return TRUE;
+ }
+
// 鍒ゆ柇榧犳爣鏄惁杩涘叆鎸囧畾鎺т欢鍖哄煙
if (pWnd->GetSafeHwnd() == GetDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT_DESCRIP1)->m_hWnd ||
pWnd->GetSafeHwnd() == GetDlgItem(IDC_EDIT_AXIS_ANCHOR_POINT_DESCRIP2)->m_hWnd ||
@@ -1002,7 +932,7 @@
}
if (currentIndex == -1) {
- return CDialogEx::PreTranslateMessage(pMsg);
+ return CBaseDlg::PreTranslateMessage(pMsg);
}
CString descriptionCtrlName, positionCtrlName;
@@ -1016,7 +946,7 @@
CWnd* pPositionCtrl = GetDlgItem(positionCtrlId);
if (pDescriptionCtrl == nullptr || pPositionCtrl == nullptr) {
- return CDialogEx::PreTranslateMessage(pMsg);
+ return CBaseDlg::PreTranslateMessage(pMsg);
}
PositionRange& position = recipeManager.getPositionByIndex(getCurrentSelectedAxisID(), m_currentPage, AXIS_PAGE_SIZE, currentIndex);
@@ -1028,7 +958,7 @@
CString strText;
GetDlgItem(IDC_EDIT_AXIS_CURR_POS)->GetWindowText(strText);
if (strText.IsEmpty()) {
- return CDialogEx::PreTranslateMessage(pMsg);;
+ return CBaseDlg::PreTranslateMessage(pMsg);;
}
double enteredValue = _ttof(strText);
@@ -1084,24 +1014,14 @@
}
}
- return CDialogEx::PreTranslateMessage(pMsg);
+ return CBaseDlg::PreTranslateMessage(pMsg);
}
void CAxisSettingsDlg::OnSize(UINT nType, int cx, int cy)
{
- CDialogEx::OnSize(nType, cx, cy);
+ CBaseDlg::OnSize(nType, cx, cy);
// TODO: 鍦ㄦ澶勬坊鍔犳秷鎭鐞嗙▼搴忎唬鐮�
- if (nType == SIZE_MINIMIZED || m_mapCtrlLayouts.empty()) {
- return;
- }
-
- float dScaleX = static_cast<float>(cx) / m_nInitialWidth;
- float dScaleY = static_cast<float>(cy) / m_nInitialHeight;
-
- // 閬嶅巻瀵硅瘽妗嗕腑鐨勬墍鏈夋帶浠�
- AdjustControls(dScaleX, dScaleY);
-
// 鍔ㄦ�佽皟鏁村悇涓� CBLLabel 鐨勫瓧浣撳ぇ灏�
for (auto pLabel : m_pBlLabels) {
AdjustLabelFont(*pLabel);
@@ -1128,30 +1048,6 @@
pComboBox->MoveWindow(&rectComboBox);
pComboBox->SetItemHeight(-1, rectButton.Height() - 6);
}
-}
-
-void CAxisSettingsDlg::OnSizing(UINT fwSide, LPRECT pRect)
-{
- if (fwSide == WMSZ_BOTTOMRIGHT) {
- if (pRect->right - pRect->left < 200) {
- pRect->right = pRect->left + 200;
- }
- if (pRect->bottom - pRect->top < 150) {
- pRect->bottom = pRect->top + 150;
- }
- }
-
- CDialogEx::OnSizing(fwSide, pRect);
-}
-
-HBRUSH CAxisSettingsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
-{
- HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
-
- // TODO: 鍦ㄦ鏇存敼 DC 鐨勪换浣曠壒鎬�
-
- // TODO: 濡傛灉榛樿鐨勪笉鏄墍闇�鐢荤瑪锛屽垯杩斿洖鍙︿竴涓敾绗�
- return hbr;
}
void CAxisSettingsDlg::OnBnClickedButtonAxisLast()
@@ -1202,7 +1098,7 @@
handleAxisOperation(AxisOperationType::POSITION_1, true);
Sleep(200);
handleAxisOperation(AxisOperationType::POSITION_1, false);
- m_pBlBtns[BTN_POINT1]->Flash(1000);
+ m_pBlBtns[BTN_POINT1]->Flash(500);
}
void CAxisSettingsDlg::OnBnClickedButtonAxisAnchorPoint2()
@@ -1294,24 +1190,50 @@
if (ret != IDOK) {
return;
}
- writeAxisDataToPLC(axisId);
- Sleep(2000);
-
- refreshAxisDetails(axisId);
- refreshPositionDetails(axisId, m_currentPage);
+ updateDataFromUI(axisId);
if (RecipeManager::getInstance().saveRecipe(std::string(CT2A(m_strRecipeName)))) {
- cstrMessage.Format(_T("淇濆瓨杞� [%d] 鍙傛暟鍒版枃浠舵垚鍔燂紒"), axisId);
- SystemLogManager::getInstance().log(SystemLogManager::LogType::Operation, std::string(CT2A(cstrMessage)));
+ writeAxisDataToPLC(axisId);
- updateDataFromUI(axisId);
+ cstrMessage.Format(_T("淇濆瓨杞� [%d] 鍙傛暟鎴愬姛锛�"), axisId);
+ SystemLogManager::getInstance().log(SystemLogManager::LogType::Operation, std::string(CT2A(cstrMessage)));
}
else {
- cstrMessage.Format(_T("淇濆瓨杞� [%d] 鍙傛暟鍒版枃浠跺け璐ワ紒"), axisId);
+ cstrMessage.Format(_T("淇濆瓨杞� [%d] 鍙傛暟澶辫触锛�"), axisId);
SystemLogManager::getInstance().log(SystemLogManager::LogType::Error, std::string(CT2A(cstrMessage)));
}
AfxMessageBox(cstrMessage);
+}
+
+void CAxisSettingsDlg::OnBnClickedButtonAxisUpdateUi()
+{
+ // TODO: 鍦ㄦ娣诲姞鎺т欢閫氱煡澶勭悊绋嬪簭浠g爜
+ int axisId = getCurrentSelectedAxisID();
+ if (axisId == -1) {
+ AfxMessageBox(_T("璇烽�夋嫨涓�涓湁鏁堢殑杞寸紪鍙凤紒"));
+ return;
+ }
+
+ refreshAxisDetails(axisId);
+ refreshPositionDetails(axisId, m_currentPage);
+}
+
+void CAxisSettingsDlg::OnBnClickedButtonAxisDetailSettings()
+{
+ // TODO: 鍦ㄦ娣诲姞鎺т欢閫氱煡澶勭悊绋嬪簭浠g爜
+ int nAxisId = getCurrentSelectedAxisID();
+ if (nAxisId == -1) {
+ AfxMessageBox(_T("璇烽�夋嫨涓�涓湁鏁堢殑杞寸紪鍙凤紒"));
+ return;
+ }
+
+ CAxisDetailSettingsDlg dlg(m_strRecipeName, nAxisId, this);
+ dlg.SetPLC(m_pPLC);
+ dlg.DoModal();
+
+ refreshAxisDetails(nAxisId);
+ refreshPositionDetails(nAxisId, m_currentPage);
}
LRESULT CAxisSettingsDlg::OnUpdateDataToUI(WPARAM wParam, LPARAM lParam)
@@ -1326,13 +1248,32 @@
// 鏇存柊Labels鐘舵��
UpdateLabels();
+
+ // 鏇存柊涓嶅彲鍐欑殑瀹氫綅鐐规暟鎹�
+ RecipeManager& recipeManager = RecipeManager::getInstance();
+ for (int i = 0; i < AXIS_PAGE_SIZE; ++i) {
+ PositionRange position = recipeManager.getPositionByIndex(getCurrentSelectedAxisID(), m_currentPage, AXIS_PAGE_SIZE, 0);
+ if (position.isEnable) {
+ continue;
+ }
+
+ CString positionName;
+ positionName.Format(_T("IDC_EDIT_AXIS_ANCHOR_POINT%d"), i + 1);
+
+ CEdit* pPositionEdit = (CEdit*)GetDlgItem(FindIDByName(positionName));
+ if (pPositionEdit) {
+ CString positionValue;
+ positionValue.Format(_T("%.3f"), position.range.currentValue);
+ pPositionEdit->GetWindowText(positionValue);
+ }
+ }
// OPR鎸夐挳鏄惁瑕侀棯鐑佹垨鍋滄闂儊
// 06.0鍜�08.0
if (m_nBtnsFlashState6 & 0x01) {
// 06.0
if (!m_pBlBtns[BTN_JOG_OPR]->IsFlash()) {
- m_pBlBtns[BTN_JOG_OPR]->Flash(1000);
+ m_pBlBtns[BTN_JOG_OPR]->Flash(500);
}
}
else if (m_nBtnsFlashState8 & 0x01) {
@@ -1348,7 +1289,7 @@
if (m_nBtnsFlashState6 & v) {
if (!m_pBlBtns[BTN_POINT1]->IsFlash()) {
- m_pBlBtns[BTN_POINT1]->Flash(1000);
+ m_pBlBtns[BTN_POINT1]->Flash(500);
}
}
else if (m_nBtnsFlashState8 & v) {
@@ -1359,7 +1300,7 @@
if (m_nBtnsFlashState6 & (v << 1)) {
if (!m_pBlBtns[BTN_POINT2]->IsFlash()) {
- m_pBlBtns[BTN_POINT2]->Flash(1000);
+ m_pBlBtns[BTN_POINT2]->Flash(500);
}
}
else if (m_nBtnsFlashState8 & (v << 1)) {
@@ -1370,7 +1311,7 @@
if (m_nBtnsFlashState6 & (v << 2)) {
if (!m_pBlBtns[BTN_POINT3]->IsFlash()) {
- m_pBlBtns[BTN_POINT3]->Flash(1000);
+ m_pBlBtns[BTN_POINT3]->Flash(500);
}
}
else if (m_nBtnsFlashState8 & (v << 2)) {
@@ -1381,7 +1322,7 @@
if (m_nBtnsFlashState6 & (v << 3)) {
if (!m_pBlBtns[BTN_POINT4]->IsFlash()) {
- m_pBlBtns[BTN_POINT4]->Flash(1000);
+ m_pBlBtns[BTN_POINT4]->Flash(500);
}
}
else if (m_nBtnsFlashState8 & (v << 3)) {
@@ -1392,7 +1333,7 @@
if (m_nBtnsFlashState6 & (v << 4)) {
if (!m_pBlBtns[BTN_POINT5]->IsFlash()) {
- m_pBlBtns[BTN_POINT5]->Flash(1000);
+ m_pBlBtns[BTN_POINT5]->Flash(500);
}
}
else if (m_nBtnsFlashState8 & (v << 4)) {
@@ -1417,7 +1358,7 @@
readPLCDataToUI(nAxisId);
}
- CDialogEx::OnTimer(nIDEvent);
+ CBaseDlg::OnTimer(nIDEvent);
}
void CAxisSettingsDlg::OnClose()
@@ -1425,5 +1366,5 @@
// TODO: 鍦ㄦ娣诲姞娑堟伅澶勭悊绋嬪簭浠g爜鍜�/鎴栬皟鐢ㄩ粯璁ゅ��
KillTimer(TIMER_READ_PLC_DATA);
- CDialogEx::OnClose();
+ CBaseDlg::OnClose();
}
--
Gitblit v1.9.3