// Gvar.cpp: implementation of the Gvar class. // ////////////////////////////////////////////////////////////////////// #include "Gvar.h" #include "log4vendor.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// Gvar::Gvar() { m_hDll = NULL; m_isLoad = FALSE; m_trace = NULL; m_trace = new CILIXTrace(NULL,"HSPScanner","hspscanner.nantian.1.1"); m_connect = FALSE; HIGH_StartCamera = NULL; HIGH_GetStatus = NULL; HIGH_GetFirmwareVersion = NULL; HIGH_StopCamera = NULL; HIGH_SetColorType = NULL; HIGH_SetRotateSize = NULL; HIGH_SetAutoCrop = NULL; HIGH_CreateWindow = NULL; HIGH_TakePicture = NULL; HIGH_SetCameraPixel = NULL; HIGH_GetHPixelByIndex = NULL; HIGH_GetVPixelByIndex = NULL; HIGH_CloseWindow = NULL; HIGH_HideWindow = NULL; char INIPath[100] = ""; CILIX_AUX_X::CILIX_GetModuleCurPath(INIPath); strcat(INIPath, "hspscanner.nantian.ini"); char log_dir[100] = ""; CILIX_AUX_X::CILIX_X_INIKeyString(INIPath, "LOGConfig", "log_dir", log_dir, "/etc/nantian"); char log_level[100] = ""; CILIX_AUX_X::CILIX_X_INIKeyString(INIPath, "LOGConfig", "log_level", log_level, "3"); cmb::log_init_config config; config.dev_name = "HSPScannerGvr"; config.log_dir = log_dir; config.log_level = atoi(log_level); std::string str; cmb::log4vendor::init(config, str); LOG4VTM(WARN, " - "<<"Enter-"); LOG4VTM(WARN, " - "<<"hspscanner.nantian.1.1.so - 版本:V1.0.0.8"); LoadDll(); LOG4VTM(WARN, " - "<<"Exit-"); } Gvar::~Gvar() { if (m_hDll != NULL) { FreeDll(); } if (m_trace) { delete m_trace; m_trace = NULL; } } void Gvar::LoadDll() { LOG4VTM(WARN, " - "<<"Enter-"); char confile[1024] = ""; CILIX_AUX_X::CILIX_GetModuleCurPath(confile); char dllPath[1024] = ""; strcpy(dllPath,confile); strcat(dllPath,"nantian/libBHCamBase.nantian.so"); m_trace->WriteTrace(CILIXTRACE_L_INFO,"LoadDll","版本:V1.0.0.8"); m_trace->WriteTrace(CILIXTRACE_L_INFO,"LoadDll","驱动库路径dll1Path=%s",dllPath); LOG4VTM(WARN, " - "<<"驱动库路径dllPath = "<WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库:%s加载失败",dllPath); LOG4VTM(WARN, " - "<<"动态库“libBHCamBase.so”加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_StartCamera = (pHIGH_StartCamera)dlsym(m_hDll,"HIGH_StartCamera"); if (HIGH_StartCamera == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_StartCamera加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_StartCamera加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_GetStatus = (pHIGH_GetStatus)dlsym(m_hDll,"HIGH_GetStatus"); if (HIGH_GetStatus == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_GetStatus加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_GetStatus加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_GetFirmwareVersion = (pHIGH_GetFirmwareVersion)dlsym(m_hDll,"HIGH_GetFirmwareVersion"); if (HIGH_GetFirmwareVersion == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_GetFirmwareVersion加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_GetFirmwareVersion加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_StopCamera = (pHIGH_StopCamera)dlsym(m_hDll,"HIGH_StopCamera"); if (HIGH_StopCamera == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_StopCamera加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_StopCamera加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_SetColorType = (pHIGH_SetColorType)dlsym(m_hDll,"HIGH_SetColorType"); if (HIGH_SetColorType == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_SetColorType加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_SetColorType加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_SetRotateSize = (pHIGH_SetRotateSize)dlsym(m_hDll,"HIGH_SetRotateSize"); if (HIGH_SetRotateSize == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_SetRotateSize加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_SetRotateSize加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_SetAutoCrop = (pHIGH_SetAutoCrop)dlsym(m_hDll,"HIGH_SetAutoCrop"); if (HIGH_SetAutoCrop == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_SetAutoCrop加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_SetAutoCrop加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_CreateWindow = (pHIGH_CreateWindow)dlsym(m_hDll,"HIGH_CreateWindow"); if (HIGH_CreateWindow == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_CreateWindow加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_CreateWindow加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_TakePicture = (pHIGH_TakePicture)dlsym(m_hDll,"HIGH_TakePicture"); if (HIGH_TakePicture == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_TakePicture加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_TakePicture加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_SetCameraPixel = (pHIGH_SetCameraPixel)dlsym(m_hDll,"HIGH_SetCameraPixel"); if (HIGH_SetCameraPixel == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_SetCameraPixel加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_SetCameraPixel加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_GetHPixelByIndex = (pHIGH_GetHPixelByIndex)dlsym(m_hDll,"HIGH_GetHPixelByIndex"); if (HIGH_GetHPixelByIndex == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_GetHPixelByIndex加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_GetHPixelByIndex加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_GetVPixelByIndex = (pHIGH_GetVPixelByIndex)dlsym(m_hDll,"HIGH_GetVPixelByIndex"); if (HIGH_GetVPixelByIndex == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_GetVPixelByIndex加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_GetVPixelByIndex加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_CloseWindow = (pHIGH_CloseWindow)dlsym(m_hDll,"HIGH_CloseWindow"); if (HIGH_CloseWindow == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_CloseWindow加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_CloseWindow加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } HIGH_HideWindow = (pHIGH_HideWindow)dlsym(m_hDll,"HIGH_HideWindow"); if (HIGH_HideWindow == NULL) { m_trace->WriteTrace(CILIXTRACE_L_ERROR,"LoadDll","动态库函数HIGH_HideWindow加载失败"); LOG4VTM(WARN, " - "<<"动态库函数HIGH_HideWindow加载失败"); LOG4VTM(WARN, " - "<<"Exit-"); return; } m_isLoad = TRUE; m_trace->WriteTrace(CILIXTRACE_L_INFO,"LoadDll","动态库加载成功退出接口"); LOG4VTM(WARN, " - "<<"动态库加载成功退出接口"); LOG4VTM(WARN, " - "<<"Exit-"); return ; } void Gvar::FreeDll() { if (m_hDll) { dlclose(m_hDll); m_hDll = NULL; } } int Gvar::WriteFileEx(char *filename, char *Value, int ValueLen) { FILE *fp; if(NULL == (fp = fopen(filename, "w+"))) { perror("fopen"); return -1; } fwrite(Value, 1, ValueLen, fp); fclose(fp); return 0; } int Gvar::ReadFileEx(char *filename, char *Value, int *ValueLen) { FILE *fp; if(NULL == (fp = fopen(filename, "r"))) { perror("fopen"); return -1; } fseek(fp, 0L, SEEK_END); *ValueLen = ftell(fp); fseek(fp, 0L, SEEK_SET); int f = fread(Value, 1, *ValueLen, fp); fclose(fp); return 0; } void Gvar::CreateFileEx(char* path,char* data,int ilen) { int i = 0; char FilePath[100] = ""; FilePath[0] = path[0]; for(i= 1; i<=strlen(path); i++) { FilePath[i] = path[i]; if(path[i] == '/') { if(access(FilePath, F_OK) != 0) { mkdir(FilePath,S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO); } } } WriteFileEx(FilePath,data,ilen); }