From e693f57ec7079cc8bfee498720b7cf87a67165ed Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 27 八月 2025 18:18:30 +0800
Subject: [PATCH] 1.修复手臂状态显示序号不正确的问题;
---
SourceCode/Bond/Servo/RecipeManager.cpp | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 44 insertions(+), 5 deletions(-)
diff --git a/SourceCode/Bond/Servo/RecipeManager.cpp b/SourceCode/Bond/Servo/RecipeManager.cpp
index 6e58418..e0a186b 100644
--- a/SourceCode/Bond/Servo/RecipeManager.cpp
+++ b/SourceCode/Bond/Servo/RecipeManager.cpp
@@ -220,7 +220,6 @@
for (const auto& dev : devs) {
DeviceRecipe dr;
- dr.strPPID = info.strPPID;
try {
dr.nDeviceID = std::stoi(dev[0]);
dr.strDeviceName = dev[1];
@@ -238,6 +237,48 @@
return recipes;
}
+std::vector<RecipeInfo> RecipeManager::getRecipesByKeyword(const std::string& keyword) {
+ std::vector<RecipeInfo> recipes;
+ if (!m_pDB || keyword.empty()) {
+ return recipes;
+ }
+
+ std::ostringstream query;
+ query << "SELECT ppid, description, create_time FROM recipes "
+ << "WHERE ppid LIKE '%" << keyword << "%' OR description LIKE '%" << keyword << "%';";
+
+ auto rows = m_pDB->fetchResults(query.str());
+ for (const auto& row : rows) {
+ if (row.size() >= 3) {
+ RecipeInfo info;
+ info.strPPID = row[0];
+ info.strDescription = row[1];
+ info.strCreateTime = row[2];
+ recipes.push_back(info);
+ }
+ }
+ return recipes;
+}
+
+std::vector<std::string> RecipeManager::getAllPPID() const {
+ std::vector<std::string> vecPPID;
+
+ if (!m_pDB) {
+ return vecPPID;
+ }
+
+ const std::string query = "SELECT ppid FROM recipes ORDER BY ppid;";
+ auto result = m_pDB->fetchResults(query);
+
+ for (const auto& row : result) {
+ if (!row.empty()) {
+ vecPPID.push_back(row[0]);
+ }
+ }
+
+ return vecPPID;
+}
+
RecipeInfo RecipeManager::getRecipeByPPID(const std::string& ppid) {
RecipeInfo info;
auto rows = m_pDB->fetchResults("SELECT ppid, description, create_time FROM recipes WHERE ppid = '" + ppid + "';");
@@ -252,7 +293,6 @@
auto devs = m_pDB->fetchResults("SELECT device_id, device_name, recipe_id FROM recipe_devices WHERE ppid = '" + ppid + "';");
for (const auto& dev : devs) {
DeviceRecipe dr;
- dr.strPPID = ppid;
try {
dr.nDeviceID = std::stoi(dev[0]);
dr.strDeviceName = dev[1];
@@ -406,8 +446,8 @@
recipe.strDescription = "Main Board Burn-in";
recipe.vecDeviceList = {
- {1, 101, "P1001","Burner A"},
- {2, 102, "P1001", "Burner B"}
+ {1, 101, "Burner A"},
+ {2, 102, "Burner B"}
};
addRecipe(recipe);
@@ -444,7 +484,6 @@
std::getline(ss, description, ',');
std::getline(ss, createTime, ',');
- dev.strPPID = ppid;
auto& recipe = recipeMap[ppid];
recipe.strPPID = ppid;
recipe.strDescription = description;
--
Gitblit v1.9.3