From 74401edd0fb47294538d7253ad15e6a8d3d1fc5a Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 27 六月 2025 09:00:43 +0800
Subject: [PATCH] 1. 防止定时器重复刷新手臂的状态 2. 手臂显示的位置通过配置文件读取

---
 SourceCode/Bond/Servo/RecipeManager.cpp |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/RecipeManager.cpp b/SourceCode/Bond/Servo/RecipeManager.cpp
index 6e58418..48cbb56 100644
--- a/SourceCode/Bond/Servo/RecipeManager.cpp
+++ b/SourceCode/Bond/Servo/RecipeManager.cpp
@@ -238,6 +238,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 + "';");

--
Gitblit v1.9.3