123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #pragma once
- #define CONTAINERDPC_API
- #define CONTAINERDPC_C_API extern "C"
- #include "LogicDriver.h"
- //#include "CCOS.Dev.IODevice.hpp"
- #include "DriverDefine.h"
- #include "common_api.h"
- CONTAINERDPC_C_API DriverDPC* GetDriverDPC();
- CONTAINERDPC_C_API void ReleaseDriverDPC(DriverDPC *p);
- /// <summary>
- /// 记录日志到平台
- /// </summary>
- /// <param name="LogLevel"></param>
- /// <param name="Context"></param>
- /// <returns></returns>
- CONTAINERDPC_C_API void DeviceLog(int LogLevel, string Context);
- /// <summary>
- /// 系统事件日志记录
- /// </summary>
- /// <param name="cmd"></param>
- /// <param name="Code"></param>
- /// <param name="Context"></param>
- /// <param name="SenderId"></param>
- /// <returns></returns>
- CONTAINERDPC_C_API void CCOSSystemLog(int cmd, string Code, string Context, string SenderId = "");
- /// <summary>
- /// 属性通知
- /// </summary>
- /// <param name="cmdType"></param>
- /// <param name="keyType"></param>
- /// <param name="Context"></param>
- /// <returns></returns>
- CONTAINERDPC_C_API void CCOSNotifyCallBackEntry(int cmdType, string keyType, string Context);
- /// <summary>
- /// 图像数据回调通知
- /// </summary>
- /// <param name="cmdType"></param>
- /// <param name="keyType"></param>
- /// <param name="Context"></param>
- /// <param name="Head"></param>
- /// <param name="pRawData"></param>
- /// <param name="DataLength"></param>
- /// <returns></returns>
- CONTAINERDPC_C_API void RawDataNotifyCallBackEntry(int cmdType, string keyType, string Context, string Head, char* pRawData, int DataLength);
- /// <summary>
- /// 设置图像缓冲区的大小
- /// </summary>
- /// <param name="QueName"></param>
- /// <param name="BlockSize"></param>
- /// <param name="FulBlockCount"></param>
- /// <param name="PrevBlockSize"></param>
- /// <param name="PrevBlockCount"></param>
- /// <returns></returns>
- CONTAINERDPC_C_API void NotifyCallBackSetBlockSize(string QueName, DWORD BlockSize, DWORD FulBlockCount, DWORD PrevBlockSize, DWORD PrevBlockCount);
- //namespace nsDEV = CCOS::Dev;
- class CONTAINERDPC_API ContainerDPC : public LogicDriver
- {
- std::string *m_pWorkpath;
- //std::unique_ptr <nsDEV::IODriver> m_NewDevManager; //IODriver对象
- std::vector<export_functions> m_DriverFunctions;
- CCOS_DRIVER_OBJ m_ContainerManager;
- CCOS_DEVICE_OBJ m_ContainerDeviceManager;
- void* m_Module;
- bool InitDeviceMgr(const char *pDriverpath);
- public:
- ContainerDPC(void);
- virtual ~ContainerDPC(void);
- virtual bool DriverEntry(ResDataObject &Configuration);
- virtual bool GetDeviceType(GUID &DevType);
- //virtual void SubscribeSelf() override;
- virtual bool SetDriverWorkPath(const char *pWorkPath);
- RET_STATUS SYSTEM_CALL GetDeviceResource(ResDataObject *pDeviceResource);
- virtual bool SYSTEM_CALL Driver_Probe(ResDataObject& PARAM_OUT HardwareInfo);
- virtual bool SYSTEM_CALL Device_Probe(ResDataObject& PARAM_OUT HardwareInfo);
- virtual bool SYSTEM_CALL SetDeviceWorkPath(const char * PARAM_IN pWorkPath);
- virtual bool Connect();
- virtual bool SYSTEM_CALL GetConnectionStatus();
- virtual void DisConnect();
- virtual bool SYSTEM_CALL OnHeartBeat();
- virtual PVOID LoadLogicDevices();
- virtual void UnloadLogicDevices();
- virtual RET_STATUS DATA_ACTION GetDeviceConfig(ResDataObject PARAM_OUT* pDeviceConfig);
- virtual RET_STATUS DATA_ACTION SetDeviceConfig(ResDataObject PARAM_IN* DeviceConfig);
- protected:
- bool CheckDriver();
- ResDataObject m_Config; //配置项
- std::string m_strConfigFilePath; //配置文件路径
- };
|