From 2cd08ebfa438de28261f35f13527d23e8e469dee Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 05 九月 2025 10:45:43 +0800
Subject: [PATCH] 1. 修复获取的设备名称带符号导致创建表失败的问题
---
SourceCode/Bond/Servo/PageRecipe.cpp | 30 +++++++++++++++++++++++++++---
1 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/SourceCode/Bond/Servo/PageRecipe.cpp b/SourceCode/Bond/Servo/PageRecipe.cpp
index f19cae0..864ea5a 100644
--- a/SourceCode/Bond/Servo/PageRecipe.cpp
+++ b/SourceCode/Bond/Servo/PageRecipe.cpp
@@ -196,7 +196,7 @@
m_listPPID.SetItemText(index, 1, std::to_string(item.first).c_str());
m_listPPID.SetItemText(index, 2, std::to_string(item.second).c_str());
- std::string strRecipeName = mgr.getDeviceRecipeName(pEq->getName(), item.second);
+ std::string strRecipeName = mgr.getDeviceRecipeName(SanitizeName(pEq->getName()), item.second);
m_listPPID.SetItemText(index, 3, strRecipeName.c_str());
std::string strDescription;
@@ -208,7 +208,7 @@
if (strRecipeName.empty()) {
strRecipeName = std::to_string(item.second);
- mgr.addDeviceRecipe(pEq->getName(), item.second, strRecipeName, strDescription);
+ mgr.addDeviceRecipe(SanitizeName(pEq->getName()), item.second, strRecipeName, strDescription);
}
}
@@ -483,7 +483,7 @@
return;
}
- if (RecipeManager::getInstance().updateDeviceRecipeName(pEq->getName(), _ttoi(strID), std::string(CT2A(strText)))) {
+ if (RecipeManager::getInstance().updateDeviceRecipeName(SanitizeName(pEq->getName()), _ttoi(strID), std::string(CT2A(strText)))) {
m_listPPID.SetItemText(nLine, 3, strText);
}
}
@@ -746,3 +746,27 @@
return 0;
}
+
+std::string CPageRecipe::SanitizeName(const std::string& name)
+{
+ std::string result;
+ result.reserve(name.size());
+
+ for (char c : name) {
+ if (c == '(' || c == '锛�') {
+ break;
+ }
+
+ unsigned char uc = static_cast<unsigned char>(c);
+ if (std::isalnum(uc) || c == '_') {
+ result.push_back(c);
+ }
+ else if (std::isspace(uc)) {
+ continue;
+ }
+ else {
+ result.push_back('_');
+ }
+ }
+ return result;
+}
\ No newline at end of file
--
Gitblit v1.9.3