#include "GVar.h" #include "../../include/log4vendor.h" GVar::GVar() { m_pAlloc = new CILIX_Allocator(); m_pDRVObj = NULL; m_bIsConnected = FALSE; m_bIsCancel = FALSE; m_hInsDRV = NULL; m_pTrace = new CILIXTrace(NULL,"BY_ID81S","idcer.Nantian"); memset(m_IniFilePath,0,sizeof(m_IniFilePath)); sprintf(m_IniFilePath,"./dev/ZQ_689S.ini"); memset(m_errMsg,0,MAX_LEN); TheardEnd = false; ReadFlg = false; picflg = false; } GVar::~GVar() { if (m_hInsDRV) { //释放动态库句柄 m_pDestroyDRV(m_pDRVObj); //FreeLibrary(m_hInsDRV); dlclose(m_hInsDRV); m_hInsDRV = NULL; m_pDRVObj = NULL; } if (m_pTrace) { delete m_pTrace; m_pTrace = NULL; } if (m_pAlloc) { delete m_pAlloc; m_pAlloc = NULL; } } int GVar::LoadDRVDLL() { CILIX_AUX_X::CILIX_GetModuleCurPath(m_dllPath); //char szPathDRV[512] = { 0 }; strcat(m_dllPath,"/nantian/libDRV_BY_ID81S.nantian.so"); // sprintf(szPathDRV, "./dev/nantian.libDRV_ZQ_689S.so"); m_hInsDRV = dlopen(m_dllPath,RTLD_LAZY); if (!m_hInsDRV) { LOG4VTM(FATAL, " - "<<"load fail!,soPath = "<WriteTrace(CILIXTRACE_L_ERROR, "LoadDRVDLL", "DRV Load error, path:%s", m_dllPath); return -1; } else { m_pCretateDRV = (pCreateDRV)dlsym(m_hInsDRV, "Create_DRV_IDCardReader"); m_pDestroyDRV = (pDestroyDRV)dlsym(m_hInsDRV, "Destroy_DRV_IDCardReader"); } if (!m_pCretateDRV || !m_pDestroyDRV) { LOG4VTM(FATAL, " - "<<"DRV SO dlsym error!"); m_pTrace->WriteTrace(CILIXTRACE_L_ERROR, "LoadDRVDLL", "DRV Dll dlsym error"); return -2; } else { m_pDRVObj = m_pCretateDRV(); } return 0; } void GVar::FreeArryBuf(void ** pBuf, int len) { if (pBuf == NULL || len == 0) { return; } for (size_t i = 0; i < len; i++) { if (pBuf[i] != NULL) { delete pBuf[i]; pBuf[i] = NULL; } } } void GVar::SwitchNationToCode(char* pNation, char* pCode) { if (pNation == NULL || pCode == NULL) { return; } if (strcmp(pNation, "柯尔人") == 0) { strcpy(pCode, "57"); } if (strcmp(pNation, "穿青人") == 0) { strcpy(pCode, "59"); } if (strcmp(pNation, "亻革家人") == 0) { strcpy(pCode, "60"); } if (strcmp(pNation, "摩梭人") == 0) { strcpy(pCode, "95"); } } void GVar::AddCharToDate(char* SourceStr, char Addchar) { string strTemp(SourceStr); strTemp.insert(4, 1, Addchar); strTemp.insert(7, 1, Addchar); memcpy(SourceStr, strTemp.c_str(), strTemp.size()); }