ModuleConfig.h 1.4 KB

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