From 02a406fb7e3d635dca0ef87914fee54c7fd6bd3c Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 14 一月 2026 11:36:58 +0800
Subject: [PATCH] 1.DVID的界面操作。新增,编辑,删除等

---
 SourceCode/Bond/Servo/Servo.vcxproj            |    4 
 SourceCode/Bond/Servo/HsmsPassive.h            |    4 
 SourceCode/Bond/Servo/Servo.vcxproj.filters    |    4 
 SourceCode/Bond/x64/Debug/DataVariableList.txt |    6 
 SourceCode/Bond/Servo/CPageDataVarialbles.h    |   37 +++++
 SourceCode/Bond/Servo/HsmsPassive.cpp          |   90 ++++++++++++
 SourceCode/Bond/Servo/ServoDlg.cpp             |    4 
 SourceCode/Bond/Servo/CPageDataVarialbles.cpp  |  220 +++++++++++++++++++++++++++++++
 SourceCode/Bond/Servo/ServoDlg.h               |    2 
 9 files changed, 366 insertions(+), 5 deletions(-)

diff --git a/SourceCode/Bond/Servo/CPageDataVarialbles.cpp b/SourceCode/Bond/Servo/CPageDataVarialbles.cpp
new file mode 100644
index 0000000..cd68a1b
--- /dev/null
+++ b/SourceCode/Bond/Servo/CPageDataVarialbles.cpp
@@ -0,0 +1,220 @@
+锘�// CPageDataVarialbles.cpp: 瀹炵幇鏂囦欢
+//
+
+#include "stdafx.h"
+#include "Servo.h"
+#include "CPageDataVarialbles.h"
+#include "afxdialogex.h"
+#include "CVariableEditDlg2.h"
+
+IMPLEMENT_DYNAMIC(CPageDataVarialbles, CHMPropertyPage)
+
+CPageDataVarialbles::CPageDataVarialbles(CWnd* pParent /*=nullptr*/)
+	: CHMPropertyPage(IDD_PAGE_VARIABLE, pParent)
+{
+}
+
+CPageDataVarialbles::~CPageDataVarialbles()
+{
+}
+
+void CPageDataVarialbles::DoDataExchange(CDataExchange* pDX)
+{
+	CHMPropertyPage::DoDataExchange(pDX);
+	DDX_Control(pDX, IDC_LIST1, m_listCtrl);
+}
+
+BEGIN_MESSAGE_MAP(CPageDataVarialbles, CHMPropertyPage)
+	ON_WM_CTLCOLOR()
+	ON_WM_DESTROY()
+	ON_WM_SIZE()
+	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, &CPageDataVarialbles::OnLvnItemchangedList1)
+END_MESSAGE_MAP()
+
+BOOL CPageDataVarialbles::OnInitDialog()
+{
+	CHMPropertyPage::OnInitDialog();
+
+	// 璇诲嚭鍒楀锛堢嫭绔嬬殑 ini 鍒嗚妭锛岄伩鍏嶄笌 SVID 椤甸潰鍐茬獊锛�
+	CString strIniFile, strItem;
+	strIniFile.Format(_T("%s\\configuration.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir);
+	int width[8] = { 0, 218, 180, 180, 180, 180, 180, 180 };
+	for (int i = 0; i < 8; i++) {
+		strItem.Format(_T("Col_%d_Width"), i);
+		width[i] = GetPrivateProfileInt("PageDataVariableListCtrl", strItem, width[i], strIniFile);
+	}
+
+	DWORD dwStyle = m_listCtrl.GetExtendedStyle();
+	dwStyle |= LVS_EX_FULLROWSELECT;
+	dwStyle |= LVS_EX_GRIDLINES;
+	m_listCtrl.SetExtendedStyle(dwStyle);
+
+	HIMAGELIST imageList = ImageList_Create(24, 24, ILC_COLOR24, 1, 1);
+	ListView_SetImageList(m_listCtrl.GetSafeHwnd(), imageList, LVSIL_SMALL);
+	m_listCtrl.InsertColumn(0, _T(""), LVCFMT_RIGHT, width[0]);
+	m_listCtrl.InsertColumn(1, _T("DV ID"), LVCFMT_LEFT, width[1]);
+	m_listCtrl.InsertColumn(2, _T("DV Name"), LVCFMT_LEFT, width[2]);
+	m_listCtrl.InsertColumn(3, _T("DV Format"), LVCFMT_LEFT, width[3]);
+	m_listCtrl.InsertColumn(4, _T("DV Remark"), LVCFMT_LEFT, width[4]);
+
+	loadDataVariables();
+
+	return TRUE;
+}
+
+HBRUSH CPageDataVarialbles::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
+{
+	return CHMPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
+}
+
+void CPageDataVarialbles::OnDestroy()
+{
+	CHMPropertyPage::OnDestroy();
+
+	// 淇濆瓨鍒楀
+	CString strIniFile, strItem, strTemp;
+	strIniFile.Format(_T("%s\\configuration.ini"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir);
+	CHeaderCtrl* pHeader = m_listCtrl.GetHeaderCtrl();
+	for (int i = 0; i < pHeader->GetItemCount(); i++) {
+		RECT rect;
+		pHeader->GetItemRect(i, &rect);
+		strItem.Format(_T("Col_%d_Width"), i);
+		strTemp.Format(_T("%d"), rect.right - rect.left);
+		WritePrivateProfileString("PageDataVariableListCtrl", strItem, strTemp, strIniFile);
+	}
+}
+
+void CPageDataVarialbles::OnSize(UINT nType, int cx, int cy)
+{
+	CHMPropertyPage::OnSize(nType, cx, cy);
+	if (GetDlgItem(IDC_LIST1) == nullptr) return;
+
+	CRect rcClient;
+	GetClientRect(&rcClient);
+	m_listCtrl.MoveWindow(12, 12, rcClient.Width() - 24, rcClient.Height() - 24);
+}
+
+void CPageDataVarialbles::OnApply()
+{
+	__super::OnApply();
+}
+
+void CPageDataVarialbles::loadDataVariables()
+{
+	auto& dvars = theApp.m_model.m_hsmsPassive.getDataVariables();
+	for (auto item : dvars) {
+		int index = m_listCtrl.InsertItem(m_listCtrl.GetItemCount(), _T(""));
+		m_listCtrl.SetItemData(index, (DWORD_PTR)item);
+		m_listCtrl.SetItemText(index, 1, std::to_string(item->getVarialbleId()).c_str());
+		m_listCtrl.SetItemText(index, 2, item->getName().c_str());
+		m_listCtrl.SetItemText(index, 3, SERVO::CVariable::formatToString(item->getFormat()).c_str());
+		m_listCtrl.SetItemText(index, 4, item->getRemark().c_str());
+	}
+}
+
+void CPageDataVarialbles::OnCreateBtns()
+{
+	const int BTN_W = 80;
+	const int BTN_H = 28;
+	CreateBtn(_T("鏂板"), BTN_W, BTN_H, 1001);
+	CreateBtn(_T("鍒犻櫎"), BTN_W, BTN_H, 1002)->EnableWindow(FALSE);
+	CreateBtn(_T("缂栬緫"), BTN_W, BTN_H, 1003)->EnableWindow(FALSE);
+}
+
+void CPageDataVarialbles::OnLvnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
+{
+	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
+	int nSelCount = m_listCtrl.GetSelectedCount();
+
+	if (CButton* pDel = GetBtnByName("鍒犻櫎")) {
+		pDel->EnableWindow(nSelCount > 0);
+	}
+	if (CButton* pEdit = GetBtnByName("缂栬緫")) {
+		pEdit->EnableWindow(nSelCount > 0);
+	}
+
+	*pResult = 0;
+}
+
+void CPageDataVarialbles::OnClickedBtn(const char* btnName)
+{
+	ASSERT(btnName);
+	if (_strcmpi(btnName, "鏂板") == 0) {
+		int rc = UX_CanExecute(L"addVarialbles");
+		if (rc != 1) {
+			AfxMessageBox("鎿嶄綔鏉冮檺涓嶈冻锛岃鑱旂郴绠$悊浜哄憳锛�");
+			return;
+		}
+		unsigned int newId = theApp.m_model.m_hsmsPassive.getMaxDataVariableId();
+		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.addDataVariable(CT2A(name), CT2A(fmt), CT2A(remark), newIdInt);
+		if (ret == 0) {
+			UX_RecordAction(L"addVarialbles");
+			m_listCtrl.DeleteAllItems();
+			loadDataVariables();
+		}
+		else {
+			AfxMessageBox(_T("鏂板鏁版嵁鍙橀噺澶辫触锛屾牸寮忔槸鍚︽纭紵(U1/U2/I2/A20/A50/L)"));
+		}
+	}
+	else if (_strcmpi(btnName, "鍒犻櫎") == 0) {
+		POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
+		if (pos == nullptr) return;
+		int nItem = m_listCtrl.GetNextSelectedItem(pos);
+		auto pVar = reinterpret_cast<SERVO::CDataVariable*>(m_listCtrl.GetItemData(nItem));
+		if (pVar == nullptr) return;
+
+		int rc = UX_CanExecute(L"delVarialbles");
+		if (rc != 1) {
+			AfxMessageBox("鎿嶄綔鏉冮檺涓嶈冻锛岃鑱旂郴绠$悊浜哄憳锛�");
+			return;
+		}
+		int ret = theApp.m_model.m_hsmsPassive.deleteDataVariable(static_cast<int>(pVar->getVarialbleId()));
+		if (ret == 0) {
+			UX_RecordAction(L"delVarialbles");
+			m_listCtrl.DeleteAllItems();
+			loadDataVariables();
+			if (CButton* pDel = GetBtnByName("鍒犻櫎")) pDel->EnableWindow(FALSE);
+			if (CButton* pEdit = GetBtnByName("缂栬緫")) pEdit->EnableWindow(FALSE);
+		}
+	}
+	else if (_strcmpi(btnName, "缂栬緫") == 0) {
+		POSITION pos = m_listCtrl.GetFirstSelectedItemPosition();
+		if (pos == nullptr) return;
+		int nItem = m_listCtrl.GetNextSelectedItem(pos);
+		auto pVar = reinterpret_cast<SERVO::CDataVariable*>(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.updateDataVariable(static_cast<int>(pVar->getVarialbleId()), CT2A(name), CT2A(fmt), CT2A(remark));
+		if (ret == 0) {
+			UX_RecordAction(L"editVarialbles");
+			m_listCtrl.DeleteAllItems();
+			loadDataVariables();
+		}
+		else {
+			AfxMessageBox(_T("缂栬緫鏁版嵁鍙橀噺澶辫触锛屾牸寮忔槸鍚︽纭紵(U1/U2/I2/A20/A50/L)"));
+		}
+	}
+}
diff --git a/SourceCode/Bond/Servo/CPageDataVarialbles.h b/SourceCode/Bond/Servo/CPageDataVarialbles.h
new file mode 100644
index 0000000..9abcac4
--- /dev/null
+++ b/SourceCode/Bond/Servo/CPageDataVarialbles.h
@@ -0,0 +1,37 @@
+锘�#pragma once
+#include "CHMPropertyPage.h"
+#include "ListCtrlEx.h"
+
+// CPageDataVarialbles 瀵硅瘽妗嗭紙DVID 缂栬緫/鏌ョ湅锛�
+class CPageDataVarialbles : public CHMPropertyPage
+{
+	DECLARE_DYNAMIC(CPageDataVarialbles)
+
+public:
+	CPageDataVarialbles(CWnd* pParent = nullptr);
+	virtual ~CPageDataVarialbles();
+	virtual void OnApply();
+	void loadDataVariables();
+	virtual void OnCreateBtns();
+
+private:
+	CListCtrlEx m_listCtrl;
+
+protected:
+	virtual void OnClickedBtn(const char* btnName) override;
+
+#ifdef AFX_DESIGN_TIME
+	enum { IDD = IDD_PAGE_VARIABLE };
+#endif
+
+protected:
+	virtual void DoDataExchange(CDataExchange* pDX);
+
+	DECLARE_MESSAGE_MAP()
+public:
+	virtual BOOL OnInitDialog();
+	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
+	afx_msg void OnDestroy();
+	afx_msg void OnSize(UINT nType, int cx, int cy);
+	afx_msg void OnLvnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult);
+};
diff --git a/SourceCode/Bond/Servo/HsmsPassive.cpp b/SourceCode/Bond/Servo/HsmsPassive.cpp
index df2aaeb..28c382c 100644
--- a/SourceCode/Bond/Servo/HsmsPassive.cpp
+++ b/SourceCode/Bond/Servo/HsmsPassive.cpp
@@ -665,6 +665,27 @@
 			maxId = item->getVarialbleId();
 		}
 	}
+	for (auto item : m_dataVariabels) {
+		if (item && item->getVarialbleId() > maxId) {
+			maxId = item->getVarialbleId();
+		}
+	}
+	return maxId;
+}
+
+unsigned int CHsmsPassive::getMaxDataVariableId() const
+{
+	unsigned int maxId = 0;
+	for (auto item : m_variabels) {
+		if (item && item->getVarialbleId() > maxId) {
+			maxId = item->getVarialbleId();
+		}
+	}
+	for (auto item : m_dataVariabels) {
+		if (item && item->getVarialbleId() > maxId) {
+			maxId = item->getVarialbleId();
+		}
+	}
 	return maxId;
 }
 
@@ -897,6 +918,75 @@
 	return writeVariablesToFile(filepath);
 }
 
+int CHsmsPassive::deleteDataVariable(int dvid)
+{
+	Lock();
+	auto it = std::find_if(m_dataVariabels.begin(), m_dataVariabels.end(), [=](SERVO::CDataVariable* v) {
+		return v != nullptr && v->getVarialbleId() == (unsigned int)dvid;
+		});
+	if (it == m_dataVariabels.end()) {
+		Unlock();
+		return -1;
+	}
+	delete *it;
+	m_dataVariabels.erase(it);
+	auto filepath = m_strDataVariableFilepath;
+	Unlock();
+
+	if (filepath.empty()) return -2;
+	return writeDataVariablesToFile(filepath);
+}
+
+int CHsmsPassive::addDataVariable(const char* pszName, const char* pszFormat, const char* pszRemark, int& outId)
+{
+	if (pszName == nullptr || pszFormat == nullptr) return -1;
+	std::string fmt = pszFormat;
+	std::transform(fmt.begin(), fmt.end(), fmt.begin(), ::toupper);
+	if (!isValidFormat(fmt)) return -2;
+
+	Lock();
+	int maxId = 0;
+	for (auto v : m_dataVariabels) {
+		if (v != nullptr && static_cast<int>(v->getVarialbleId()) > maxId) {
+			maxId = static_cast<int>(v->getVarialbleId());
+		}
+	}
+	outId = maxId + 1;
+
+	SERVO::CDataVariable* pNew = new SERVO::CDataVariable(std::to_string(outId).c_str(), pszName, fmt.c_str(), pszRemark ? pszRemark : "");
+	m_dataVariabels.push_back(pNew);
+	auto filepath = m_strDataVariableFilepath;
+	Unlock();
+
+	if (filepath.empty()) return -3;
+	return writeDataVariablesToFile(filepath);
+}
+
+int CHsmsPassive::updateDataVariable(int dvid, const char* pszName, const char* pszFormat, const char* pszRemark)
+{
+	if (pszName == nullptr || pszFormat == nullptr) return -1;
+	std::string fmt = pszFormat;
+	std::transform(fmt.begin(), fmt.end(), fmt.begin(), ::toupper);
+	if (!isValidFormat(fmt)) return -2;
+
+	Lock();
+	auto it = std::find_if(m_dataVariabels.begin(), m_dataVariabels.end(), [=](SERVO::CDataVariable* v) {
+		return v != nullptr && v->getVarialbleId() == (unsigned int)dvid;
+		});
+	if (it == m_dataVariabels.end()) {
+		Unlock();
+		return -4;
+	}
+	(*it)->setName(pszName);
+	(*it)->setFormat(fmt.c_str());
+	(*it)->setRemark(pszRemark ? pszRemark : "");
+	auto filepath = m_strDataVariableFilepath;
+	Unlock();
+
+	if (filepath.empty()) return -3;
+	return writeDataVariablesToFile(filepath);
+}
+
 int CHsmsPassive::writeVariablesToFile(const std::string& filepath)
 {
 	if (filepath.empty()) return -3;
diff --git a/SourceCode/Bond/Servo/HsmsPassive.h b/SourceCode/Bond/Servo/HsmsPassive.h
index 24815d7..abbe05e 100644
--- a/SourceCode/Bond/Servo/HsmsPassive.h
+++ b/SourceCode/Bond/Servo/HsmsPassive.h
@@ -153,6 +153,7 @@
 	std::vector<SERVO::CVariable*>& getVariables();
 	unsigned int getMaxVariableId() const;
 	std::vector<SERVO::CDataVariable*>& getDataVariables();
+	unsigned int getMaxDataVariableId() const;
 
 	// 鍙栧緱鎸囧畾Variable
 	SERVO::CVariable* getVariable(int variableId);
@@ -164,6 +165,9 @@
 	int deleteVariable(int variableId);
 	int addVariable(const char* pszName, const char* pszFormat, const char* pszRemark, int& outId);
 	int updateVariable(int variableId, const char* pszName, const char* pszFormat, const char* pszRemark);
+	int deleteDataVariable(int dvid);
+	int addDataVariable(const char* pszName, const char* pszFormat, const char* pszRemark, int& outId);
+	int updateDataVariable(int dvid, const char* pszName, const char* pszFormat, const char* pszRemark);
 
 	// 璁剧疆鍙橀噺鍊�
 	void setVariableValue(const char* pszName, __int64 value);
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj b/SourceCode/Bond/Servo/Servo.vcxproj
index 8926423..3f876a1 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj
+++ b/SourceCode/Bond/Servo/Servo.vcxproj
@@ -248,6 +248,7 @@
     <ClInclude Include="CPageProdOverview.h" />
     <ClInclude Include="CPageReport.h" />
     <ClInclude Include="CPageVarialbles.h" />
+    <ClInclude Include="CPageDataVarialbles.h" />
     <ClInclude Include="CPanelProduction.h" />
     <ClInclude Include="HmLabel.h" />
     <ClInclude Include="ProductionStats.h" />
@@ -475,6 +476,7 @@
     <ClCompile Include="CPageProdOverview.cpp" />
     <ClCompile Include="CPageReport.cpp" />
     <ClCompile Include="CPageVarialbles.cpp" />
+    <ClCompile Include="CPageDataVarialbles.cpp" />
     <ClCompile Include="ConfigurationProduction.cpp" />
     <ClCompile Include="CPanelProduction.cpp" />
     <ClCompile Include="HmLabel.cpp" />
@@ -670,4 +672,4 @@
     <Error Condition="!Exists('..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets'))" />
     <Error Condition="!Exists('..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240803.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240803.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
   </Target>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/SourceCode/Bond/Servo/Servo.vcxproj.filters b/SourceCode/Bond/Servo/Servo.vcxproj.filters
index ece83fa..dd0ee29 100644
--- a/SourceCode/Bond/Servo/Servo.vcxproj.filters
+++ b/SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -174,6 +174,7 @@
     <ClCompile Include="CReport.cpp" />
     <ClCompile Include="CVariable.cpp" />
     <ClCompile Include="CPageVarialbles.cpp" />
+    <ClCompile Include="CPageDataVarialbles.cpp" />
     <ClCompile Include="CPageReport.cpp" />
     <ClCompile Include="CPageCollectionEvent.cpp" />
     <ClCompile Include="ProcessJob.cpp" />
@@ -423,6 +424,7 @@
     <ClInclude Include="CReport.h" />
     <ClInclude Include="CVariable.h" />
     <ClInclude Include="CPageVarialbles.h" />
+    <ClInclude Include="CPageDataVarialbles.h" />
     <ClInclude Include="CPageReport.h" />
     <ClInclude Include="CPageCollectionEvent.h" />
     <ClInclude Include="ProcessJob.h" />
@@ -571,4 +573,4 @@
       <UniqueIdentifier>{885738f6-3122-4bb9-8308-46b7f692fb13}</UniqueIdentifier>
     </Filter>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/SourceCode/Bond/Servo/ServoDlg.cpp b/SourceCode/Bond/Servo/ServoDlg.cpp
index 89aaf91..cdc423f 100644
--- a/SourceCode/Bond/Servo/ServoDlg.cpp
+++ b/SourceCode/Bond/Servo/ServoDlg.cpp
@@ -653,6 +653,10 @@
 	pPage3->Create(IDD_PAGE_VARIABLE);
 	dlg.addPage(pPage3, "Variable");
 
+	CPageDataVarialbles* pPage4 = new CPageDataVarialbles();
+	pPage4->Create(IDD_PAGE_VARIABLE);
+	dlg.addPage(pPage4, "DataVariable");
+
 	dlg.DoModal();
 }
 
diff --git a/SourceCode/Bond/Servo/ServoDlg.h b/SourceCode/Bond/Servo/ServoDlg.h
index 81c5a5f..df4b01d 100644
--- a/SourceCode/Bond/Servo/ServoDlg.h
+++ b/SourceCode/Bond/Servo/ServoDlg.h
@@ -19,6 +19,8 @@
 #include "CMyStatusbar.h"
 #include "CRobotTaskDlg.h"
 #include "CPageGlassList.h"
+#include "CPageVarialbles.h"
+#include "CPageDataVarialbles.h"
 
 
 // CServoDlg 瀵硅瘽妗�
diff --git a/SourceCode/Bond/x64/Debug/DataVariableList.txt b/SourceCode/Bond/x64/Debug/DataVariableList.txt
index a874466..db4f8a2 100644
--- a/SourceCode/Bond/x64/Debug/DataVariableList.txt
+++ b/SourceCode/Bond/x64/Debug/DataVariableList.txt
@@ -93,6 +93,6 @@
 6701,Measurement_PD_Time,A20,Measurement PD: 鏃堕棿
 6702,Measurement_PD_Value1,A20,Measurement PD: 娴嬮噺鍊�1
 6703,Measurement_PD_Value2,A20,Measurement PD: 娴嬮噺鍊�2
-10200,SlotMap,U2,SlotMap(Scan)
-10201,SlotMapScan,U2,SlotMap(Scan)
-10202,SlotMapDownload,U2,SlotMap(Download)
+10200,SlotMap,U1,SlotMap(Scan)
+10201,SlotMapScan,U1,SlotMap(Scan)
+10202,SlotMapDownload,U1,SlotMap(Download)

--
Gitblit v1.9.3