gpio_impl.cpp 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. err = SimulatorHttpFunction(EntityName, "Reset");
  34. LOG4VTM(INFO, "Reset err = " << err);
  35. return err;
  36. }
  37. ErrorCodeEnum GPIOClassImpl::DevClose()
  38. {
  39. ErrorCodeEnum err = Error_Succeed;
  40. err = SimulatorHttpFunction(EntityName, "DevClose");
  41. LOG4VTM(INFO, "DevClose err = " << err);
  42. return err;
  43. }
  44. ErrorCodeEnum GPIOClassImpl::GetLastErr(DevErrorInfo &devErrInfo)
  45. {
  46. ErrorCodeEnum err = Error_Succeed;
  47. SimulatorDevErrInfoAns ans;
  48. err = SimulatorHttpFunction(EntityName, "GetLastErr", ans);
  49. LOG4VTM(INFO, "GetLastErr err = " << err);
  50. devErrInfo.dwErrMsgLen = ans.dwErrMsgLen;
  51. strcpy(devErrInfo.szErrMsg, ans.szErrMsg.c_str());
  52. return err;
  53. }
  54. ErrorCodeEnum GPIOClassImpl::DevOpen(GpioInitParam initParam)
  55. {
  56. ErrorCodeEnum err = Error_Succeed;
  57. err = SimulatorHttpFunction(EntityName, "DevOpen");
  58. LOG4VTM(INFO, "DevOpen err = " << err);
  59. return err;
  60. }
  61. ErrorCodeEnum GPIOClassImpl::WritePort(DWORD dwPort, BYTE btData)
  62. {
  63. ErrorCodeEnum err = Error_Succeed;
  64. err = SimulatorHttpFunction(EntityName, "WritePort");
  65. LOG4VTM(INFO, "WritePort err = " << err);
  66. return err;
  67. }
  68. ErrorCodeEnum GPIOClassImpl::ReadPort(DWORD dwPort, BYTE& btStatus)
  69. {
  70. ErrorCodeEnum err = Error_Succeed;
  71. ReadPortAns ans;
  72. err = SimulatorHttpFunction(EntityName, "ReadPort", ans);
  73. LOG4VTM(INFO, "ReadPort err = " << err);
  74. btStatus = (BYTE)ans.btStatus;
  75. return err;
  76. }
  77. #ifndef _MSC_VER
  78. ErrorCodeEnum GPIOClassImpl::SetStatus(DWORD dwReq, DWORD dwMode)
  79. {
  80. ErrorCodeEnum err = Error_Succeed;
  81. err = SimulatorHttpFunction(EntityName, "SetStatus");
  82. LOG4VTM(INFO, "SetStatus err = " << err);
  83. return err;
  84. }
  85. ErrorCodeEnum GPIOClassImpl::DetectStatus(DWORD dwReq, DWORD& dwMode)
  86. {
  87. ErrorCodeEnum err = Error_Succeed;
  88. DetectStatusAns ans;
  89. err = SimulatorHttpFunction(EntityName, "ReadPort", ans);
  90. LOG4VTM(INFO, "ReadPort err = " << err);
  91. dwMode = (BYTE)ans.dwMode;
  92. return err;
  93. }
  94. #endif
  95. DEVICEBASE_API ErrorCodeEnum CreateDevComponent(DeviceBaseClass *&baseObj)
  96. {
  97. baseObj = new GPIOClassImpl();
  98. if(baseObj == NULL) {
  99. return Error_Resource;
  100. }
  101. cmb::log_init_config config;
  102. config.dev_name = "vendor_Gpio";
  103. #ifdef _MSC_VER
  104. config.log_dir = ("D:\\rvc\\dbg\\");
  105. #else
  106. config.log_dir = ("/opt/rvc/dbg/");
  107. #endif
  108. std::string str;
  109. cmb::log4vendor::init(config, str);
  110. std::string tmpStr = GetSimulatorUrl();
  111. LOG4VTM(INFO, "URL = " << tmpStr.c_str());
  112. return Error_Succeed;
  113. }
  114. DEVICEBASE_API ErrorCodeEnum ReleaseDevComponent(DeviceBaseClass *&pBaseObj)
  115. {
  116. if(pBaseObj == NULL) {
  117. return Error_Param;
  118. }
  119. if(GPIOClassImpl* pTmp = dynamic_cast<GPIOClassImpl*>(pBaseObj))
  120. {
  121. delete pTmp;
  122. pTmp = NULL;
  123. return Error_Succeed;
  124. }
  125. return Error_Param;
  126. }
  127. #ifdef NEWER_COMPILER_WORKAROUNDS
  128. DEVICEBASE_API ErrorCodeEnum GetDevAdapterVersion(DevSoftVersion& retVesion)
  129. {
  130. retVesion.wMajor = retVesion.wMinor = retVesion.wBuild = retVesion.wRevision = 0;
  131. return Error_Succeed;
  132. }
  133. #endif // NEWER_COMPILER_WORKAROUNDS