GVar.cpp 2.2 KB

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