ModuleConfig.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include "CcosLock.h"
  3. #include "Definitions.h"
  4. #include <functional>
  5. class ModuleDevice;
  6. #define CONTAINERDPC_API
  7. #define CONTAINERDPC_C_API extern "C"
  8. class CONTAINERDPC_API ModuleConfig :
  9. public CcosLock
  10. {
  11. protected:
  12. string m_strModuleFileName;
  13. string m_strModuleFilePath;
  14. string m_strConfigFilePath;
  15. ResDataObject m_resHardwareInfo; //硬件信息
  16. ResDataObject m_resModuleConfig; //模型配置文件 是从磁盘上读取的初始内容,包含该设备模型的配置项
  17. ResDataObject m_resProperties; //当前对象的属性值,通过set/get/add/del 操作的属性可以直接访问
  18. ResDataObject m_resGets;
  19. ResDataObject m_resSets;
  20. ResDataObject m_resAdds;
  21. ResDataObject m_resDels;
  22. ResDataObject m_resActions;
  23. ResDataObject m_resUpdates;
  24. ResDataObject m_resWebConfig; //web配置项
  25. public:
  26. ModuleConfig();
  27. virtual ~ModuleConfig();
  28. ResDataObject& GetPropties() {
  29. return m_resProperties;
  30. }
  31. bool CheckAndInitConfig(string ccosDevicePath);
  32. RET_STATUS GetUpdatableItems(string level, ResDataObject& resItems);
  33. string UpdateItem(const char* pszProperty, const char* pszValueUpdate);
  34. RET_STATUS SaveToConfigFile();
  35. bool CanDo(const char* pszProperty, int packetCmd);
  36. RET_STATUS GetDeviceResource(ResDataObject PARAM_OUT* pDeviceResource, const char* pszClientType);
  37. RET_STATUS GetAll(ResDataObject& resRespons, std::function<RET_STATUS (const char* , ResDataObject& )> getItem);
  38. void RestoreConfig();
  39. };