#pragma once #include "CcosLock.h" #include "Definitions.h" class ModuleDevice; #define CONTAINERDPC_API #define CONTAINERDPC_C_API extern "C" class CONTAINERDPC_API ModuleConfig : public CcosLock { protected: string m_strModuleFileName; string m_strModuleFilePath; string m_strConfigFilePath; ResDataObject m_resHardwareInfo; //硬件信息 ResDataObject m_resModuleConfig; //模型配置文件 是从磁盘上读取的初始内容,包含该设备模型的配置项 ResDataObject m_resProperties; //当前对象的属性值,通过set/get/add/del 操作的属性可以直接访问 ResDataObject m_resGets; ResDataObject m_resSets; ResDataObject m_resAdds; ResDataObject m_resDels; ResDataObject m_resActions; ResDataObject m_resUpdates; ResDataObject m_resWebConfig; //web配置项 public: ModuleConfig(); virtual ~ModuleConfig(); ResDataObject& GetPropties() { return m_resProperties; } bool CheckAndInitConfig(string ccosDevicePath); RET_STATUS GetUpdatableItems(string level, ResDataObject& resItems); string UpdateItem(const char* pszProperty, const char* pszValueUpdate); RET_STATUS SaveToConfigFile(); bool CanDo(const char* pszProperty, int packetCmd); RET_STATUS GetDeviceResource(ResDataObject PARAM_OUT* pDeviceResource, const char* pszClientType); RET_STATUS GetAll(ResDataObject& resRespons, std::function getItem); void RestoreConfig(); };