GVar.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. #include "GVar.h"
  2. #include "../../include/log4vendor.h"
  3. GVar::GVar()
  4. {
  5. m_pAlloc = new CILIX_Allocator();
  6. m_pDRVObj = NULL;
  7. m_bIsConnected = FALSE;
  8. m_bIsCancel = FALSE;
  9. m_hInsDRV = NULL;
  10. m_pTrace = new CILIXTrace(NULL,"BY_ID81S","idcer.Nantian");
  11. memset(m_IniFilePath,0,sizeof(m_IniFilePath));
  12. sprintf(m_IniFilePath,"./dev/ZQ_689S.ini");
  13. memset(m_errMsg,0,MAX_LEN);
  14. TheardEnd = false;
  15. ReadFlg = false;
  16. picflg = false;
  17. }
  18. GVar::~GVar()
  19. {
  20. if (m_hInsDRV)
  21. {
  22. //释放动态库句柄
  23. m_pDestroyDRV(m_pDRVObj);
  24. //FreeLibrary(m_hInsDRV);
  25. dlclose(m_hInsDRV);
  26. m_hInsDRV = NULL;
  27. m_pDRVObj = NULL;
  28. }
  29. if (m_pTrace)
  30. {
  31. delete m_pTrace;
  32. m_pTrace = NULL;
  33. }
  34. if (m_pAlloc)
  35. {
  36. delete m_pAlloc;
  37. m_pAlloc = NULL;
  38. }
  39. }
  40. int GVar::LoadDRVDLL()
  41. {
  42. CILIX_AUX_X::CILIX_GetModuleCurPath(m_dllPath);
  43. //char szPathDRV[512] = { 0 };
  44. strcat(m_dllPath,"/nantian/libDRV_BY_ID81S.nantian.so");
  45. // sprintf(szPathDRV, "./dev/nantian.libDRV_ZQ_689S.so");
  46. m_hInsDRV = dlopen(m_dllPath,RTLD_LAZY);
  47. if (!m_hInsDRV)
  48. {
  49. LOG4VTM(FATAL, "<IDCer> - "<<"load fail!,soPath = "<<m_dllPath);
  50. m_pTrace->WriteTrace(CILIXTRACE_L_ERROR, "LoadDRVDLL",
  51. "DRV Load error, path:%s", m_dllPath);
  52. return -1;
  53. }
  54. else
  55. {
  56. m_pCretateDRV = (pCreateDRV)dlsym(m_hInsDRV, "Create_DRV_IDCardReader");
  57. m_pDestroyDRV = (pDestroyDRV)dlsym(m_hInsDRV, "Destroy_DRV_IDCardReader");
  58. }
  59. if (!m_pCretateDRV || !m_pDestroyDRV)
  60. {
  61. LOG4VTM(FATAL, "<IDCer> - "<<"DRV SO dlsym error!");
  62. m_pTrace->WriteTrace(CILIXTRACE_L_ERROR, "LoadDRVDLL",
  63. "DRV Dll dlsym error");
  64. return -2;
  65. }
  66. else
  67. {
  68. m_pDRVObj = m_pCretateDRV();
  69. }
  70. return 0;
  71. }
  72. void GVar::FreeArryBuf(void ** pBuf, int len)
  73. {
  74. if (pBuf == NULL || len == 0)
  75. {
  76. return;
  77. }
  78. for (size_t i = 0; i < len; i++)
  79. {
  80. if (pBuf[i] != NULL)
  81. {
  82. delete pBuf[i];
  83. pBuf[i] = NULL;
  84. }
  85. }
  86. }
  87. void GVar::SwitchNationToCode(char* pNation, char* pCode)
  88. {
  89. if (pNation == NULL ||
  90. pCode == NULL)
  91. {
  92. return;
  93. }
  94. if (strcmp(pNation, "柯尔人") == 0)
  95. {
  96. strcpy(pCode, "57");
  97. }
  98. if (strcmp(pNation, "穿青人") == 0)
  99. {
  100. strcpy(pCode, "59");
  101. }
  102. if (strcmp(pNation, "亻革家人") == 0)
  103. {
  104. strcpy(pCode, "60");
  105. }
  106. if (strcmp(pNation, "摩梭人") == 0)
  107. {
  108. strcpy(pCode, "95");
  109. }
  110. }
  111. void GVar::AddCharToDate(char* SourceStr, char Addchar)
  112. {
  113. string strTemp(SourceStr);
  114. strTemp.insert(4, 1, Addchar);
  115. strTemp.insert(7, 1, Addchar);
  116. memcpy(SourceStr, strTemp.c_str(), strTemp.size());
  117. }