ModuleDriver.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #pragma once
  2. #include "LogicDriver.h"
  3. #define CONTAINERDPC_API
  4. #define CONTAINERDPC_C_API extern "C"
  5. class ModuleConfig;
  6. class CONTAINERDPC_API ModuleDriver :
  7. public LogicDriver
  8. {
  9. protected:
  10. ModuleConfig *m_config;
  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. RET_STATUS GetUpdatableItems(string level, ResDataObject& resItems);
  25. //RET_STATUS SaveToConfigFile();
  26. RET_STATUS UpdateItem(const char* pszProperty, const char* pszValueUpdate, ResDataObject& resRespons);
  27. virtual RET_STATUS OnUpdate(const char* pszProperty, const char* pszValueUpdate, ResDataObject& resRespons);
  28. virtual RET_STATUS OnDel(const char* pszPropery, ResDataObject& resDelValue, ResDataObject& resResponse);
  29. virtual RET_STATUS OnAdd(const char* pszPropery, ResDataObject& reAddValue, ResDataObject& resResponse);
  30. virtual RET_STATUS SetItem(const char* pszPropery, ResDataObject& resSetValue, ResDataObject& resResponse);
  31. virtual RET_STATUS GetItem(const char* pszPropery, ResDataObject& resResponse);
  32. virtual RET_STATUS OnAction(const char* pszActionName, const char* pszParams, ResDataObject& resResponse);
  33. virtual RET_STATUS OnMessage(const char* pszTopic, const char* pszMessageValue, ResDataObject& resResponse);
  34. public:
  35. ModuleDriver();
  36. virtual ~ModuleDriver();
  37. bool DriverEntry(ResDataObject& PARAM_IN Configuration) override;
  38. //void SetHardwareInfo(ResDataObject& resHardwareInfo) { m_resHardwareInfo = resHardwareInfo; }
  39. RET_STATUS Request(ResDataObject PARAM_IN* pRequest, ResDataObject PARAM_OUT* pResponse) override;
  40. RET_STATUS CmdToLogicDev(ResDataObject PARAM_IN* pCmd) override;
  41. bool GetDeviceType(GUID& DevType) override;
  42. void SubscribeSelf() override;
  43. void OnSetClientID() override;
  44. RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject PARAM_OUT* pDeviceResource) override;
  45. RET_STATUS DevGet(const char* pszDevUri, const char* pszProperty, ResDataObject& resRespons) override;
  46. RET_STATUS DevSet(const char* pszDevUri, const char* pszProperty, const char* pszValueSet, ResDataObject& resRespons) override;
  47. RET_STATUS DevUpdate(const char* pszDevUri, const char* pszProperty, const char* pszValueUpdate, ResDataObject& resRespons) override;
  48. RET_STATUS DevAdd(const char* pszDevUri, const char* pszProperty, const char* pszValueAdd, ResDataObject& resRespons) override;
  49. RET_STATUS DevDel(const char* pszDevUri, const char* pszProperty, const char* pszValueDel, ResDataObject& resRespons) override;
  50. RET_STATUS DevAction(const char* pszDevUri, const char* pszActionName, const char* pszParams, ResDataObject& resRespons) override;
  51. RET_STATUS DevMessage(const char* pszDevUri, const char* pszTopic, const char* pszMessageValue, ResDataObject& resRespons) override;
  52. };