gpio_impl.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. #include "gpio_impl.h"
  2. #include "gpio_httpans.h"
  3. #include<cstring>
  4. #include <cstdio>
  5. #include "log4vendor.h"
  6. #include <path.h>
  7. GPIOClassImpl::GPIOClassImpl()
  8. :m_mode(0)
  9. {
  10. }
  11. GPIOClassImpl::~GPIOClassImpl()
  12. {
  13. }
  14. ErrorCodeEnum GPIOClassImpl::GetDevCategory(DevCategoryInfo &devCategory)
  15. {
  16. ErrorCodeEnum err = Error_Succeed;
  17. SimulatorDevCategoryAns ans;
  18. err = SimulatorHttpFunction(EntityName, "GetDevCategory", ans);
  19. LOG4VTM(INFO, "GetDevCategory err = " << err);
  20. strcpy(devCategory.szType, ans.szType.c_str());
  21. strcpy(devCategory.szModel, ans.szModel.c_str());
  22. strcpy(devCategory.szVendor, ans.szVendor.c_str());
  23. devCategory.eState = (DevStateEnum)ans.eState;
  24. devCategory.version.wMajor = ans.version.wMajor;
  25. devCategory.version.wMinor = ans.version.wMinor;
  26. devCategory.version.wRevision = ans.version.wRevision;
  27. devCategory.version.wBuild = ans.version.wBuild;
  28. return err;
  29. }
  30. ErrorCodeEnum GPIOClassImpl::Reset()
  31. {
  32. ErrorCodeEnum err = Error_Succeed;
  33. SimulatorCommonAns ans;
  34. err = SimulatorHttpFunction(EntityName, "Reset", ans);
  35. LOG4VTM(INFO, "Reset err = " << err);
  36. return err;
  37. }
  38. ErrorCodeEnum GPIOClassImpl::DevClose()
  39. {
  40. ErrorCodeEnum err = Error_Succeed;
  41. SimulatorCommonAns ans;
  42. err = SimulatorHttpFunction(EntityName, "DevClose", ans);
  43. LOG4VTM(INFO, "DevClose err = " << err);
  44. return err;
  45. }
  46. ErrorCodeEnum GPIOClassImpl::GetLastErr(DevErrorInfo &devErrInfo)
  47. {
  48. ErrorCodeEnum err = Error_Succeed;
  49. SimulatorDevErrInfoAns ans;
  50. err = SimulatorHttpFunction(EntityName, "GetLastErr", ans);
  51. LOG4VTM(INFO, "GetLastErr err = " << err);
  52. devErrInfo.dwErrMsgLen = ans.dwErrMsgLen;
  53. strcpy(devErrInfo.szErrMsg, ans.szErrMsg.c_str());
  54. return err;
  55. }
  56. ErrorCodeEnum GPIOClassImpl::DevOpen(GpioInitParam initParam)
  57. {
  58. ErrorCodeEnum err = Error_Succeed;
  59. SimulatorCommonAns ans;
  60. err = SimulatorHttpFunction(EntityName, "DevOpen", ans);
  61. LOG4VTM(INFO, "DevOpen err = " << err);
  62. return err;
  63. }
  64. ErrorCodeEnum GPIOClassImpl::WritePort(DWORD dwPort, BYTE btData)
  65. {
  66. ErrorCodeEnum err = Error_Succeed;
  67. SimulatorCommonAns ans;
  68. err = SimulatorHttpFunction(EntityName, "WritePort", ans);
  69. LOG4VTM(INFO, "WritePort err = " << err);
  70. return err;
  71. }
  72. ErrorCodeEnum GPIOClassImpl::ReadPort(DWORD dwPort, BYTE& btStatus)
  73. {
  74. ErrorCodeEnum err = Error_Succeed;
  75. ReadPortAns ans;
  76. err = SimulatorHttpFunction(EntityName, "ReadPort", ans);
  77. LOG4VTM(INFO, "ReadPort err = " << err);
  78. btStatus = (BYTE)ans.btStatus;
  79. return err;
  80. }
  81. #ifndef _MSC_VER
  82. ErrorCodeEnum GPIOClassImpl::SetStatus(DWORD dwReq, DWORD dwMode)
  83. {
  84. ErrorCodeEnum err = Error_Succeed;
  85. SimulatorCommonAns ans;
  86. err = SimulatorHttpFunction(EntityName, "SetStatus", ans);
  87. LOG4VTM(INFO, "SetStatus err = " << err);
  88. return err;
  89. }
  90. ErrorCodeEnum GPIOClassImpl::DetectStatus(DWORD dwReq, DWORD& dwMode)
  91. {
  92. ErrorCodeEnum err = Error_Succeed;
  93. DetectStatusAns ans;
  94. err = SimulatorHttpFunction(EntityName, "ReadPort", ans);
  95. LOG4VTM(INFO, "ReadPort err = " << err);
  96. dwMode = (BYTE)ans.dwMode;
  97. return err;
  98. }
  99. #endif
  100. DEVICEBASE_API ErrorCodeEnum CreateDevComponent(DeviceBaseClass *&baseObj)
  101. {
  102. baseObj = new GPIOClassImpl();
  103. if(baseObj == NULL) {
  104. return Error_Resource;
  105. }
  106. cmb::log_init_config config;
  107. config.dev_name = "vendor_Gpio";
  108. #ifdef _MSC_VER
  109. config.log_dir = ("D:\\rvc\\dbg\\");
  110. #else
  111. config.log_dir = ("/opt/rvc/dbg/");
  112. #endif
  113. std::string str;
  114. cmb::log4vendor::init(config, str);
  115. return Error_Succeed;
  116. }
  117. DEVICEBASE_API ErrorCodeEnum ReleaseDevComponent(DeviceBaseClass *&pBaseObj)
  118. {
  119. if(pBaseObj == NULL) {
  120. return Error_Param;
  121. }
  122. if(GPIOClassImpl* pTmp = dynamic_cast<GPIOClassImpl*>(pBaseObj))
  123. {
  124. delete pTmp;
  125. pTmp = NULL;
  126. return Error_Succeed;
  127. }
  128. return Error_Param;
  129. }
  130. #ifdef NEWER_COMPILER_WORKAROUNDS
  131. DEVICEBASE_API ErrorCodeEnum GetDevAdapterVersion(DevSoftVersion& retVesion)
  132. {
  133. retVesion.wMajor = retVesion.wMinor = retVesion.wBuild = retVesion.wRevision = 0;
  134. return Error_Succeed;
  135. }
  136. #endif // NEWER_COMPILER_WORKAROUNDS