CDI.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #pragma once
  2. #include "Definitions.h"
  3. #include "CcosFileHandle.h"
  4. #include "CcosLock.h"
  5. #include "ResDataObject.h"
  6. #include "CDInterface.h"
  7. #include "LinuxEvent.h"
  8. #include "LocalConfig.h"
  9. #define CDI_API
  10. #define CDI_C_API extern "C"
  11. class CDI_API CDI :public CcosLock, public CDInterface {
  12. //HANDLE m_Mutex;
  13. UINT64 m_MasterProcId;
  14. std::shared_ptr<LinuxEvent> m_ExitHandle;
  15. void *m_prootClient;
  16. //PVOID m_DCSMap;
  17. //INT LoadAllDCS();//used by system
  18. //INT UnLoadAllDCS();//used by system
  19. bool InitBusUnit();
  20. void Ex_ResponseClientReq(ResDataObject &Req, RET_STATUS status, const char *pInfo = NULL);
  21. void Ex_ResponseRemoteClientReq(ResDataObject &Req, RET_STATUS status, const char *pInfo = NULL);
  22. void Ex_ResponseDeviceRes(ResDataObject &Res);
  23. void Ex_ResponseEbus(ResDataObject &packet);
  24. void Ex_RequestRemoteClientClose(ResDataObject &Res);
  25. //CMD_ECHO DispatchToLocal(ResDataObject &packet);
  26. void StartMqttServer();
  27. public:
  28. CDI(void);
  29. virtual ~CDI(void);
  30. bool WaitExit(DWORD timeout = 0, bool Exit = false);
  31. bool InitAs(CCOS_PROC_TYPE Master, UINT64 MasterProcId);//3 = CcosClient,2 = Channel,1 = Master,0 = Slave
  32. static void* InitShareMemory(void* pPara);
  33. int CommandInput(const char *pszCmd);
  34. //simple command
  35. //bool ReceivedFromLocalBus(ResDataObject &packet);
  36. //bool ReceivedFromEthBus(ResDataObject &packet);
  37. bool ReceivedFromBus(ResDataObject &packet);
  38. bool ReceivedFromDevice(ResDataObject &packet);
  39. //bool ReceivedDeviceNotify(ResDataObject &packet);
  40. //bool ReceivedFromClient(ResDataObject &packet);
  41. //bool HandleOpenClose(ResDataObject& packet, PACKET_CMD cmd);
  42. //bool HandleOthers(ResDataObject& packet, PACKET_CMD cmd);
  43. bool SendCcosPacket(ResDataObject& packet);
  44. //Client Stuff
  45. //bool RegistClient(UINT64 Address);
  46. //bool UnRegistClient(UINT64 Address);
  47. //Handle Stuff
  48. bool Registhandle(HANDLE Handle);
  49. bool UnRegistHandle(UINT64 CrcCode);
  50. //bool RegistThread(PVOID pCcosThread);
  51. //void UnRegistThread(DWORD Tid);
  52. //bool GetThreadsLogger(DWORD Tid, PVOID &pLogger);
  53. const char* GetAllDevice(void** pDevices, int &nDevNums);
  54. void UnLoadAll();
  55. //bool AddDPC(PVOID pMDPC, PVOID pDPC, ResDataObject &DrvConfig);
  56. //bool DelDPC(PVOID pMDPC, PVOID pDPC);
  57. };
  58. CDI_C_API CDI *GetCommandDispathIF();
  59. CDI_C_API CDInterface* GetCDI();
  60. //CDI_C_API bool InitClientEnv();
  61. //CDI_C_API bool DestroyClientEnv();