chenluhua1980
2026-01-19 44360bc2cdeee16be72f9cc4bfb42e0ac26b5b44
SourceCode/Bond/Servo/CRecipesManager.h
@@ -1,15 +1,19 @@
#pragma once
#include <map>
#include "CRecipeList.h"
#include <functional>
#define SS_NONE               0
#define SS_SYNCING            1
#define SS_COMPLETE            2
#define SS_TIMEOUT            3
#define SS_FAILED            4
#define SS_LIST_COMPLETE      2
#define SS_PARAMS_COMPLETE      3
#define SS_TIMEOUT            4
#define SS_FAILED            5
namespace SERVO {
   typedef std::function<void(int state)> ONSYNCINGSTATECHANGED;
   class CRecipesManager
   {
   public:
@@ -17,11 +21,17 @@
      virtual ~CRecipesManager();
   public:
      void setOnSyncingStateChanged(ONSYNCINGSTATECHANGED block);
      unsigned TimeoutCheckWorkingProc();
      int syncing();
      void syncFailed();
      int decodeRecipeListReport(const char* pszData, size_t size);
      void syncTimeout();
      short decodeRecipeListReport(const char* pszData, size_t size);
      short decodeRecipeParameterReport(const char* pszData, size_t size);
      CRecipeList* getRecipeListFromTemp(int unitNo);
      CRecipeList* getRecipeList(int unitNo);
      bool saveRecipeList(int unitNo, std::string& strFilepath);
      bool readRecipeList(int unitNo, std::string& strFilepath);
   public:
      inline void lock() { ::EnterCriticalSection(&m_cs); };
@@ -35,8 +45,10 @@
      CRITICAL_SECTION m_cs;      // 同步锁
      int m_nSyncStatus;
      int m_nTotalMasterRecipeCount;
      int m_nTotalParameterCount;
      std::map<int, CRecipeList*> m_mapRecipes;
      std::map<int, CRecipeList*> m_mapRecipesTemp;
      ONSYNCINGSTATECHANGED m_onSyncingStateChanged;
   };
}