mod_gpio.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #ifndef __MOD_GPIO_H
  2. #define __MOD_GPIO_H
  3. #include "modVer.h"
  4. #include "SpBase.h"
  5. #include "Gpio_server_g.h"
  6. #include "EventCode.h"
  7. #include "Gpio_UserErrorCode.h"
  8. #include "CommEntityUtil.hpp"
  9. #include "GpioFSM.h"
  10. using namespace std;
  11. using namespace Gpio;
  12. class CGpioEntity;
  13. class CGpioServiceSession : public GpioService_ServerSessionBase
  14. {
  15. public:
  16. CGpioServiceSession(CGpioEntity* pEntity):m_pEntity(pEntity){};
  17. virtual void Handle_GetDevInfo(SpReqAnsContext<GpioService_GetDevInfo_Req,
  18. GpioService_GetDevInfo_Ans>::Pointer ctx);
  19. virtual void Handle_Exit(SpOnewayCallContext<GpioService_Exit_Info>::Pointer ctx);
  20. private:
  21. CGpioEntity* m_pEntity;
  22. };
  23. class CGpioEntity : public CDevAdptEntityBase, public ILogListener, ISysVarListener
  24. {
  25. public:
  26. CGpioEntity()
  27. {
  28. }
  29. virtual ~CGpioEntity(){}
  30. virtual const char* GetEntityName()const {return "Gpio";}
  31. const char* GetEntityVersion() const { return MODULE_VERSION_FULL; }
  32. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs, CSmartPointer<ITransactionContext> pTransactionContext);
  33. virtual void OnPrePause(CSmartPointer<ITransactionContext> pTransactionContext)
  34. {
  35. pTransactionContext->SendAnswer(Error_Succeed);
  36. }
  37. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext)
  38. {
  39. pTransactionContext->SendAnswer(Error_Succeed);
  40. }
  41. virtual CServerSessionBase *OnNewSession(const char* /*pszRemoteEntityName*/, const char * pszClass)
  42. {
  43. return new CGpioServiceSession(this);
  44. }
  45. virtual bool IsService()const { return true; }
  46. virtual bool IsMultiThread()const { return false; }
  47. virtual void OnSysVarEvent(const char* pszKey,
  48. const char* pszValue, const char* pszOldValue, const char* pszEntityName);
  49. void GetDevInfo(SpReqAnsContext<GpioService_GetDevInfo_Req,
  50. GpioService_GetDevInfo_Ans>::Pointer ctx)
  51. {
  52. m_fsm.GetDevInfo(ctx);
  53. }
  54. void Exit(SpOnewayCallContext<GpioService_Exit_Info>::Pointer ctx) {
  55. m_fsm.Exit(ctx);
  56. }
  57. virtual void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
  58. const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
  59. const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext& pLinkInfo);
  60. void OnSelfTest(EntityTestEnum eTestType, CSmartPointer<ITransactionContext> pTransactionContext)
  61. {
  62. m_fsm.SelfTest(eTestType, pTransactionContext);
  63. }
  64. public:
  65. CUUID m_uuidHealth, m_uuidCR, m_uuidIDC, m_uuidFP, m_uuidKB, m_uuidCA, m_uuidCC, m_uuidCS;
  66. CUUID m_uuidHSPscanner;
  67. private:
  68. CGPIOFSM m_fsm;
  69. };
  70. #endif //__MOD_GPIO_H