SourceCode/Bond/Servo/CRecipeList.cpp
@@ -77,10 +77,47 @@
      return m_ids;
   }
   std::unordered_map<short, std::vector<uint8_t>>& CRecipeList::getParamsRawData()
   {
      return m_paramsRawData;
   }
   void CRecipeList::reset()
   {
      m_nToatlGroupCount = 0;
      m_nCurrentGroupCount = 0;
      m_ids.clear();
      m_paramsRawData.clear();
   }
   int CRecipeList::addParamsPacket(int totalCount, int totalGroup, int currentGroup,
      short unitId, short recipeId,
      const char* pszData, size_t size)
   {
      if (m_nToatlGroupCount == 0) m_nToatlGroupCount = totalGroup;
      if (m_nToatlGroupCount != totalGroup) {
         reset();
         return MRLRC_GROUP_COUNT_NG;
      }
      if (currentGroup == 0) {
         reset();
      }
      if (m_nCurrentGroupCount + 1 > currentGroup) {
         return MRLRC_DUPLICATION_GROUP_COUNT_NG;
      }
      if (m_nCurrentGroupCount + 1 < currentGroup) {
         return ORDER_BY_GROUP_COUNT_NG;
      }
      m_nCurrentGroupCount++;
      m_paramsRawData[recipeId].insert(m_paramsRawData[recipeId].end(), (uint8_t*)(pszData), (uint8_t*)(pszData) + size);
      if (m_nCurrentGroupCount == m_nToatlGroupCount) {
         // 解释数据就交给应用层吧
         return MRLRC_CURRENT_RECIPE_COMPLETE;
      }
      return MRLRC_CONTINUE;
   }
}