ContainerDPC.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #pragma once
  2. #define CONTAINERDPC_API
  3. #define CONTAINERDPC_C_API extern "C"
  4. #include "LogicDriver.h"
  5. //#include "CCOS.Dev.IODevice.hpp"
  6. #include "DriverDefine.h"
  7. #include "common_api.h"
  8. CONTAINERDPC_C_API DriverDPC* GetDriverDPC();
  9. CONTAINERDPC_C_API void ReleaseDriverDPC(DriverDPC *p);
  10. /// <summary>
  11. /// 记录日志到平台
  12. /// </summary>
  13. /// <param name="LogLevel"></param>
  14. /// <param name="Context"></param>
  15. /// <returns></returns>
  16. CONTAINERDPC_C_API void DeviceLog(int LogLevel, string Context);
  17. /// <summary>
  18. /// 系统事件日志记录
  19. /// </summary>
  20. /// <param name="cmd"></param>
  21. /// <param name="Code"></param>
  22. /// <param name="Context"></param>
  23. /// <param name="SenderId"></param>
  24. /// <returns></returns>
  25. CONTAINERDPC_C_API void CCOSSystemLog(int cmd, string Code, string Context, string SenderId = "");
  26. /// <summary>
  27. /// 属性通知
  28. /// </summary>
  29. /// <param name="cmdType"></param>
  30. /// <param name="keyType"></param>
  31. /// <param name="Context"></param>
  32. /// <returns></returns>
  33. CONTAINERDPC_C_API void CCOSNotifyCallBackEntry(int cmdType, string keyType, string Context);
  34. /// <summary>
  35. /// 图像数据回调通知
  36. /// </summary>
  37. /// <param name="cmdType"></param>
  38. /// <param name="keyType"></param>
  39. /// <param name="Context"></param>
  40. /// <param name="Head"></param>
  41. /// <param name="pRawData"></param>
  42. /// <param name="DataLength"></param>
  43. /// <returns></returns>
  44. CONTAINERDPC_C_API void RawDataNotifyCallBackEntry(int cmdType, string keyType, string Context, string Head, char* pRawData, int DataLength);
  45. /// <summary>
  46. /// 设置图像缓冲区的大小
  47. /// </summary>
  48. /// <param name="QueName"></param>
  49. /// <param name="BlockSize"></param>
  50. /// <param name="FulBlockCount"></param>
  51. /// <param name="PrevBlockSize"></param>
  52. /// <param name="PrevBlockCount"></param>
  53. /// <returns></returns>
  54. CONTAINERDPC_C_API void NotifyCallBackSetBlockSize(string QueName, DWORD BlockSize, DWORD FulBlockCount, DWORD PrevBlockSize, DWORD PrevBlockCount);
  55. //namespace nsDEV = CCOS::Dev;
  56. class CONTAINERDPC_API ContainerDPC : public LogicDriver
  57. {
  58. std::string *m_pWorkpath;
  59. //std::unique_ptr <nsDEV::IODriver> m_NewDevManager; //IODriver对象
  60. std::vector<export_functions> m_DriverFunctions;
  61. CCOS_DRIVER_OBJ m_ContainerManager;
  62. CCOS_DEVICE_OBJ m_ContainerDeviceManager;
  63. void* m_Module;
  64. bool InitDeviceMgr(const char *pDriverpath);
  65. public:
  66. ContainerDPC(void);
  67. virtual ~ContainerDPC(void);
  68. virtual bool DriverEntry(ResDataObject &Configuration);
  69. virtual bool GetDeviceType(GUID &DevType);
  70. //virtual void SubscribeSelf() override;
  71. virtual bool SetDriverWorkPath(const char *pWorkPath);
  72. RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject *pDeviceResource);
  73. virtual bool SYSTEM_CALL Driver_Probe(ResDataObject& PARAM_OUT HardwareInfo);
  74. virtual bool SYSTEM_CALL Device_Probe(ResDataObject& PARAM_OUT HardwareInfo);
  75. virtual bool SYSTEM_CALL SetDeviceWorkPath(const char * PARAM_IN pWorkPath);
  76. virtual bool Connect();
  77. virtual bool SYSTEM_CALL GetConnectionStatus();
  78. virtual void DisConnect();
  79. virtual bool SYSTEM_CALL OnHeartBeat();
  80. virtual PVOID LoadLogicDevices();
  81. virtual void UnloadLogicDevices();
  82. virtual RET_STATUS DATA_ACTION GetDeviceConfig(ResDataObject PARAM_OUT* pDeviceConfig);
  83. virtual RET_STATUS DATA_ACTION SetDeviceConfig(ResDataObject PARAM_IN* DeviceConfig);
  84. protected:
  85. bool CheckDriver();
  86. ResDataObject m_Config; //配置项
  87. std::string m_strConfigFilePath; //配置文件路径
  88. };