SourceCode/Bond/Servo/RecipeManager.h
@@ -6,12 +6,14 @@
#include <mutex>
#include <unordered_map>
#include "Database.h"
#include "CParam.h"
// 单个设备配方映射信息
struct DeviceRecipe {
    int nDeviceID;               // 设备ID
    int nRecipeID;               // 该设备对应的子配方ID
    std::string strPPID;         // 配方ID(主键)
    int nRecipeID;               // 子配方ID
   std::string strRecipeName;   // 子配方名称
    std::string strDeviceName;   // 设备名称 
};
@@ -21,6 +23,23 @@
    std::string strDescription;  // 配方描述
    std::string strCreateTime;   // 创建时间
    std::vector<DeviceRecipe> vecDeviceList;  // 关联的设备信息列表
    std::vector<CParam*> m_params;         // 出站时记录参数
    void RecipeInfo::addIntParam(const char* pszName, const char* pszId, const char* pszUnit, int value)
    {
        CParam* pParam = new CParam(pszName, pszId, pszUnit, value);
        m_params.push_back(pParam);
    }
    void RecipeInfo::addDoubleParam(const char* pszName, const char* pszId, const char* pszUnit, double value)
    {
        CParam* pParam = new CParam(pszName, pszId, pszUnit, value);
        m_params.push_back(pParam);
    }
    std::vector<CParam*>& RecipeInfo::getParams()
    {
        return m_params;
    }
};
using RecipeMap = std::unordered_map<std::string, RecipeInfo>; // 按 PPID 映射的配方表
@@ -58,6 +77,12 @@
    // 查询所有配方
    std::vector<RecipeInfo> getAllRecipes();
   // 根据 PPID 或描述查询配方
    std::vector<RecipeInfo> getRecipesByKeyword(const std::string& keyword);
   // 获取所有 PPID
    std::vector<std::string> getAllPPID() const;
    // 按 PPID 查询配方
    RecipeInfo getRecipeByPPID(const std::string& ppid);