1. 修复获取的设备名称带符号导致创建表失败的问题
| | |
| | | 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; |
| | |
| | | |
| | | 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); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | DECLARE_MESSAGE_MAP() |
| | | |
| | | private: |
| | | std::string SanitizeName(const std::string& name); |
| | | |
| | | CListCtrlEx m_listPPID; |
| | | }; |
| | |
| | | for (const auto& pair : mapRecipeIds) { |
| | | int nRecipeID = pair.second; |
| | | |
| | | std::string strRecipeName = RecipeManager::getInstance().getDeviceRecipeName(pEq->getName(), nRecipeID); |
| | | std::string strDeviceName; |
| | | for (const auto& dev : g_vecBindDevices) { |
| | | if (dev.nDeviceID == pEq->getID()) { |
| | | strDeviceName = dev.strDeviceName; |
| | | } |
| | | } |
| | | |
| | | std::string strRecipeName = RecipeManager::getInstance().getDeviceRecipeName(strDeviceName, nRecipeID); |
| | | if (strRecipeName.empty()) { |
| | | strRecipeName = std::to_string(nRecipeID); |
| | | } |
| | |
| | | << "recipe_name TEXT NOT NULL," |
| | | << "recipe_para TEXT NOT NULL" |
| | | << ");"; |
| | | m_pDB->executeQuery(sql.str()); |
| | | bool bRet = m_pDB->executeQuery(sql.str()); |
| | | if (!bRet) { |
| | | return false; |
| | | } |
| | | |
| | | std::ostringstream ins; |
| | | ins << "INSERT OR REPLACE INTO " << strDeviceName |
| | |
| | | |
| | | addRecipe(recipe); |
| | | |
| | | addDeviceRecipe("Bonder1", 101, "标准工艺", ""); |
| | | addDeviceRecipe("Bonder1", 102, "改良工艺", ""); |
| | | addDeviceRecipe("Bonder1", 103, "高速模式", ""); |
| | | addDeviceRecipe("Bonder1", 101, "标准工艺", "00"); |
| | | addDeviceRecipe("Bonder1", 102, "改良工艺", "00"); |
| | | addDeviceRecipe("Bonder1", 103, "高速模式", "00"); |
| | | |
| | | addDeviceRecipe("Bonder2", 101, "标准工艺", ""); |
| | | addDeviceRecipe("Bonder2", 102, "改良工艺", ""); |
| | | addDeviceRecipe("Bonder2", 103, "高速模式", ""); |
| | | addDeviceRecipe("Bonder2", 101, "标准工艺", "00"); |
| | | addDeviceRecipe("Bonder2", 102, "改良工艺", "00"); |
| | | addDeviceRecipe("Bonder2", 103, "高速模式", "00"); |
| | | } |
| | | |
| | | bool RecipeManager::readRecipeFile(const std::string& filename) { |