From 829fe6c6bc33d53fda9c31fd45a37e1df87befff Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 30 一月 2026 11:16:24 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/Servo/CPageVarialbles.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 54 insertions(+), 2 deletions(-)
diff --git a/SourceCode/Bond/Servo/CPageVarialbles.cpp b/SourceCode/Bond/Servo/CPageVarialbles.cpp
index 4f854d8..f2c2587 100644
--- a/SourceCode/Bond/Servo/CPageVarialbles.cpp
+++ b/SourceCode/Bond/Servo/CPageVarialbles.cpp
@@ -5,6 +5,7 @@
#include "Servo.h"
#include "CPageVarialbles.h"
#include "afxdialogex.h"
+#include "CVariableEditDlg2.h"
// CPageVarialbles 瀵硅瘽妗�
@@ -161,7 +162,28 @@
{
ASSERT(btnName);
if (_strcmpi(btnName, "鏂板") == 0) {
- // TODO: 鏂板閫昏緫
+ int rc = UX_CanExecute(L"addVarialbles");
+ if (rc != 1) {
+ AfxMessageBox("鎿嶄綔鏉冮檺涓嶈冻锛岃鑱旂郴绠$悊浜哄憳锛�");
+ return;
+ }
+ unsigned int newId = theApp.m_model.m_hsmsPassive.getMaxVariableId();
+ int newIdInt = static_cast<int>(newId + 1);
+ CVariableEditDlg2 dlg(_T("鏂板鍙橀噺"), newIdInt, _T("U1"), _T(""), _T(""), this);
+ if (dlg.DoModal() != IDOK) return;
+ CString name = dlg.GetNameText();
+ CString fmt = dlg.GetTypeText();
+ CString remark = dlg.GetRemark();
+
+ int ret = theApp.m_model.m_hsmsPassive.addVariable(CT2A(name), CT2A(fmt), CT2A(remark), newIdInt);
+ if (ret == 0) {
+ UX_RecordAction(L"addVarialbles");
+ m_listCtrl.DeleteAllItems();
+ loadVariables();
+ }
+ else {
+ AfxMessageBox(_T("鏂板鍙橀噺澶辫触锛屾牸寮忔槸鍚︽纭紵(U1/U2/I2/A20/A50/L)"));
+ }
}
else if (_strcmpi(btnName, "鍒犻櫎") == 0) {
POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
@@ -186,6 +208,36 @@
}
}
else if (_strcmpi(btnName, "缂栬緫") == 0) {
- // TODO: 缂栬緫閫昏緫
+ POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
+ if (pos == nullptr) return;
+ int nItem = m_listCtrl.GetNextSelectedItem(pos);
+ auto pVar = reinterpret_cast<SERVO::CVariable*>(m_listCtrl.GetItemData(nItem));
+ if (pVar == nullptr) return;
+
+ int rc = UX_CanExecute(L"editVarialbles");
+ if (rc != 1) {
+ AfxMessageBox("鎿嶄綔鏉冮檺涓嶈冻锛岃鑱旂郴绠$悊浜哄憳锛�");
+ return;
+ }
+ CVariableEditDlg2 dlg(_T("缂栬緫鍙橀噺"),
+ pVar->getVarialbleId(),
+ CString(CA2T(SERVO::CVariable::formatToString(pVar->getFormat()).c_str())),
+ CString(CA2T(pVar->getName().c_str())),
+ CString(CA2T(pVar->getRemark().c_str())),
+ this);
+ if (dlg.DoModal() != IDOK) return;
+ CString name = dlg.GetNameText();
+ CString fmt = dlg.GetTypeText();
+ CString remark = dlg.GetRemark();
+
+ int ret = theApp.m_model.m_hsmsPassive.updateVariable(pVar->getVarialbleId(), CT2A(name), CT2A(fmt), CT2A(remark));
+ if (ret == 0) {
+ UX_RecordAction(L"editVarialbles");
+ m_listCtrl.DeleteAllItems();
+ loadVariables();
+ }
+ else {
+ AfxMessageBox(_T("缂栬緫鍙橀噺澶辫触锛屾牸寮忔槸鍚︽纭紵(U1/U2/I2/A20/A50/L)"));
+ }
}
}
--
Gitblit v1.9.3