websdk,将事件中携带的iden改为调用成功时的iden

This commit is contained in:
luoliangyi 2024-04-18 11:04:35 +08:00
parent dec98c1891
commit f26ecbcc34
4 changed files with 116 additions and 134 deletions

View File

@ -67,8 +67,13 @@ namespace ver_2
m_sn.clear(); m_sn.clear();
m_devHandle = NULL; m_devHandle = NULL;
m_devParams.clear(); m_devParams.clear();
m_initIden.clear();
m_initHaveIden = false;
m_scanIden.clear();
m_scanHaveIden = false;
m_scanBlankCheck = false; m_scanBlankCheck = false;
m_scanTemp = false; m_scanLocalSave = true;
m_scanGetBase64 = false;
m_scanning = false; m_scanning = false;
m_scanEvent = NULL; m_scanEvent = NULL;
m_dpi = 200; m_dpi = 200;
@ -1333,7 +1338,7 @@ namespace ver_2
return ret; return ret;
} }
int ManagerV2::InitDevice(std::string& errInfo) int ManagerV2::InitDevice(const std::string &iden, bool haveIden, std::string& errInfo)
{ {
errInfo = "错误"; errInfo = "错误";
@ -1343,9 +1348,14 @@ namespace ver_2
return -1; return -1;
} }
m_initIden = iden;
m_initHaveIden = haveIden;
SANE_Int version_code = 0; SANE_Int version_code = 0;
if (SANE_STATUS_GOOD != sane_init_ex(&version_code, sane_ex_callback, this)) if (SANE_STATUS_GOOD != sane_init_ex(&version_code, sane_ex_callback, this))
{ {
m_initIden.clear();
m_initHaveIden = false;
errInfo = "初始化失败"; errInfo = "初始化失败";
return -1; return -1;
} }
@ -1371,6 +1381,8 @@ namespace ver_2
m_devNameList.clear(); m_devNameList.clear();
m_initDevice = false; m_initDevice = false;
m_initIden.clear();
m_initHaveIden = false;
errInfo.clear(); errInfo.clear();
return 0; return 0;
} }
@ -1613,7 +1625,7 @@ namespace ver_2
return 0; return 0;
} }
int ManagerV2::StartScan(bool blankCheck, bool temp, std::string& errInfo) int ManagerV2::StartScan(const std::string &iden, bool haveIden, bool blankCheck, bool localSave, bool getBase64, std::string& errInfo)
{ {
errInfo = "错误"; errInfo = "错误";
@ -1629,8 +1641,11 @@ namespace ver_2
return -1; return -1;
} }
m_scanIden = iden;
m_scanHaveIden = haveIden;
m_scanBlankCheck = blankCheck; m_scanBlankCheck = blankCheck;
m_scanTemp = temp; m_scanLocalSave = localSave;
m_scanGetBase64 = getBase64;
HGBase_CreateEvent(HGFALSE, HGFALSE, &m_scanEvent); HGBase_CreateEvent(HGFALSE, HGFALSE, &m_scanEvent);
assert(NULL != m_scanEvent); assert(NULL != m_scanEvent);
m_dpi = GetDpi(); m_dpi = GetDpi();
@ -1641,8 +1656,11 @@ namespace ver_2
errInfo = Utf8ToStdString(sane_strstatus(status)); errInfo = Utf8ToStdString(sane_strstatus(status));
HGBase_DestroyEvent(m_scanEvent); HGBase_DestroyEvent(m_scanEvent);
m_scanEvent = NULL; m_scanEvent = NULL;
m_scanIden.clear();
m_scanHaveIden = false;
m_scanBlankCheck = false; m_scanBlankCheck = false;
m_scanTemp = false; m_scanLocalSave = true;
m_scanGetBase64 = false;
m_dpi = 200; m_dpi = 200;
return -1; return -1;
} }
@ -1669,8 +1687,11 @@ namespace ver_2
HGBase_WaitEvent(m_scanEvent); HGBase_WaitEvent(m_scanEvent);
HGBase_DestroyEvent(m_scanEvent); HGBase_DestroyEvent(m_scanEvent);
m_scanEvent = NULL; m_scanEvent = NULL;
m_scanIden.clear();
m_scanHaveIden = false;
m_scanBlankCheck = false; m_scanBlankCheck = false;
m_scanTemp = false; m_scanLocalSave = true;
m_scanGetBase64 = false;
m_scanning = false; m_scanning = false;
m_dpi = 200; m_dpi = 200;
@ -4333,7 +4354,7 @@ namespace ver_2
std::list<class WSUser *>::iterator iter; std::list<class WSUser *>::iterator iter;
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter) for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
{ {
WSUser::SaneEvent(SANEEVENT_ARRIVE, sane_dev->name, false, *iter); WSUser::DbtEvent(p->m_initIden, p->m_initHaveIden, SANEEVENT_ARRIVE, sane_dev->name, false, *iter);
} }
HGBase_LeaveLock(p->m_lock); HGBase_LeaveLock(p->m_lock);
} }
@ -4367,7 +4388,7 @@ namespace ver_2
std::list<class WSUser *>::iterator iter; std::list<class WSUser *>::iterator iter;
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter) for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
{ {
WSUser::SaneEvent(SANEEVENT_REMOVE, sane_dev->name, false, *iter); WSUser::DbtEvent(p->m_initIden, p->m_initHaveIden, SANEEVENT_REMOVE, sane_dev->name, false, *iter);
} }
HGBase_LeaveLock(p->m_lock); HGBase_LeaveLock(p->m_lock);
} }
@ -4380,7 +4401,7 @@ namespace ver_2
std::list<class WSUser *>::iterator iter; std::list<class WSUser *>::iterator iter;
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter) for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
{ {
WSUser::SaneEvent(SANEEVENT_WORKING, (const char*)data, false, *iter); WSUser::SaneEvent(p->m_scanIden, p->m_scanHaveIden, SANEEVENT_WORKING, (const char*)data, false, *iter);
} }
HGBase_LeaveLock(p->m_lock); HGBase_LeaveLock(p->m_lock);
} }
@ -4406,7 +4427,7 @@ namespace ver_2
std::list<class WSUser *>::iterator iter; std::list<class WSUser *>::iterator iter;
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter) for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
{ {
WSUser::SaneEvent(SANEEVENT_FINISH, (const char*)data, (0 != *len), *iter); WSUser::SaneEvent(p->m_scanIden, p->m_scanHaveIden, SANEEVENT_FINISH, (const char*)data, (0 != *len), *iter);
} }
HGBase_LeaveLock(p->m_lock); HGBase_LeaveLock(p->m_lock);
} }
@ -4419,7 +4440,7 @@ namespace ver_2
std::list<class WSUser *>::iterator iter; std::list<class WSUser *>::iterator iter;
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter) for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
{ {
WSUser::SaneEvent(SANEEVENT_STATUS, (const char*)data, false, *iter); WSUser::SaneEvent(p->m_scanIden, p->m_scanHaveIden, SANEEVENT_STATUS, (const char*)data, false, *iter);
} }
HGBase_LeaveLock(p->m_lock); HGBase_LeaveLock(p->m_lock);
} }
@ -4432,7 +4453,7 @@ namespace ver_2
std::list<class WSUser *>::iterator iter; std::list<class WSUser *>::iterator iter;
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter) for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
{ {
WSUser::SaneEvent(SANEEVENT_ERROR, (const char*)data, (0 != *len), *iter); WSUser::SaneEvent(p->m_scanIden, p->m_scanHaveIden, SANEEVENT_ERROR, (const char*)data, (0 != *len), *iter);
} }
HGBase_LeaveLock(p->m_lock); HGBase_LeaveLock(p->m_lock);
} }
@ -4470,10 +4491,10 @@ namespace ver_2
HGBase_EnterLock(p->m_lock); HGBase_EnterLock(p->m_lock);
std::string imagePath; std::string imagePath;
int ret = p->SaveImage(img, p->m_scanTemp, imagePath); int ret = p->SaveImage(img, !p->m_scanLocalSave, imagePath);
if (0 == ret) if (0 == ret)
{ {
if (!p->m_scanTemp) if (p->m_scanLocalSave)
{ {
AddSavedFileParam* addParam = new AddSavedFileParam; AddSavedFileParam* addParam = new AddSavedFileParam;
addParam->mgr = p; addParam->mgr = p;
@ -4491,10 +4512,11 @@ namespace ver_2
std::list<class WSUser *>::iterator iter; std::list<class WSUser *>::iterator iter;
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter) for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
{ {
WSUser::SaneImageCallback(imagePath.c_str(), blank ? true : false, *iter); WSUser::SaneImageCallback(p->m_scanIden, p->m_scanHaveIden, p->m_scanBlankCheck, p->m_scanLocalSave, p->m_scanGetBase64,
imagePath.c_str(), blank ? true : false, *iter);
} }
if (p->m_scanTemp) if (!p->m_scanLocalSave)
{ {
HGBase_DeleteFile(imagePath.c_str()); HGBase_DeleteFile(imagePath.c_str());
} }

View File

@ -185,7 +185,7 @@ namespace ver_2
int LocalImageBinarization(const std::string& imagePath, bool temp, std::string& outImagePath, std::string& errInfo); int LocalImageBinarization(const std::string& imagePath, bool temp, std::string& outImagePath, std::string& errInfo);
// 设备初始化 // 设备初始化
int InitDevice(std::string& errInfo); int InitDevice(const std::string &iden, bool haveIden, std::string& errInfo);
// 设备反初始化 // 设备反初始化
int DeinitDevice(std::string& errInfo); int DeinitDevice(std::string& errInfo);
// 是否已经初始化 // 是否已经初始化
@ -209,7 +209,7 @@ namespace ver_2
// 获取当前设备名 // 获取当前设备名
int GetCurrDeviceName(std::string& deviceName, std::string& errInfo); int GetCurrDeviceName(std::string& deviceName, std::string& errInfo);
// 开始扫描 // 开始扫描
int StartScan(bool blankCheck, bool temp, std::string& errInfo); int StartScan(const std::string &iden, bool haveIden, bool blankCheck, bool localSave, bool getBase64, std::string& errInfo);
// 停止扫描 // 停止扫描
int StopScan(std::string& errInfo); int StopScan(std::string& errInfo);
// 是否已经启动扫描 // 是否已经启动扫描
@ -326,8 +326,13 @@ namespace ver_2
std::string m_devName; std::string m_devName;
std::string m_sn; std::string m_sn;
std::vector<DeviceParamsGroup> m_devParams; std::vector<DeviceParamsGroup> m_devParams;
std::string m_initIden;
bool m_initHaveIden;
std::string m_scanIden;
bool m_scanHaveIden;
bool m_scanBlankCheck; bool m_scanBlankCheck;
bool m_scanTemp; bool m_scanLocalSave;
bool m_scanGetBase64;
bool m_scanning; bool m_scanning;
HGEvent m_scanEvent; HGEvent m_scanEvent;
HGUInt m_dpi; HGUInt m_dpi;

View File

@ -194,14 +194,6 @@ namespace ver_2
#endif #endif
: WebUser(server, id, ip, port, sockConn) : WebUser(server, id, ip, port, sockConn)
{ {
m_initDeviceIden.clear();
m_initDeviceHaveIden = false;
m_startScanIden.clear();
m_startScanHaveIden = false;
m_startScanBlankCheck = false;
m_startScanIsLocalSave = true;
m_startScanIsGetBase64 = false;
GetManager()->AddUser(this); GetManager()->AddUser(this);
} }
@ -793,58 +785,64 @@ namespace ver_2
} }
} }
void WSUser::SaneEvent(int code, const char* str, bool err, void* param) void WSUser::DbtEvent(const std::string &iden, bool haveIden, int code, const char* str, bool err, void* param)
{
WSUser* p = (WSUser*)param;
if (code == SANEEVENT_ARRIVE)
{
cJSON* retJson = cJSON_CreateObject();
if (NULL != retJson)
{
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("device_arrive"));
if (haveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(iden.c_str()));
cJSON_AddItemToObject(retJson, "device_name", cJSON_CreateString(str));
char* resp = cJSON_Print(retJson);
if (NULL != resp)
{
p->PostEventMsg((const HGByte*)resp, (HGUInt)strlen(resp));
free(resp);
}
cJSON_Delete(retJson);
}
}
else if (code == SANEEVENT_REMOVE)
{
cJSON* retJson = cJSON_CreateObject();
if (NULL != retJson)
{
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("device_remove"));
if (haveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(iden.c_str()));
cJSON_AddItemToObject(retJson, "device_name", cJSON_CreateString(str));
char* resp = cJSON_Print(retJson);
if (NULL != resp)
{
p->PostEventMsg((const HGByte*)resp, (HGUInt)strlen(resp));
free(resp);
}
cJSON_Delete(retJson);
}
}
}
void WSUser::SaneEvent(const std::string &iden, bool haveIden, int code, const char* str, bool err, void* param)
{ {
WSUser* p = (WSUser*)param; WSUser* p = (WSUser*)param;
if (code == SANEEVENT_ARRIVE) if (code == SANEEVENT_WORKING)
{
cJSON* retJson = cJSON_CreateObject();
if (NULL != retJson)
{
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("device_arrive"));
if (p->m_initDeviceHaveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(p->m_initDeviceIden.c_str()));
cJSON_AddItemToObject(retJson, "device_name", cJSON_CreateString(str));
char* resp = cJSON_Print(retJson);
if (NULL != resp)
{
p->PostEventMsg((const HGByte*)resp, (HGUInt)strlen(resp));
free(resp);
}
cJSON_Delete(retJson);
}
}
else if (code == SANEEVENT_REMOVE)
{
cJSON* retJson = cJSON_CreateObject();
if (NULL != retJson)
{
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("device_remove"));
if (p->m_initDeviceHaveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(p->m_initDeviceIden.c_str()));
cJSON_AddItemToObject(retJson, "device_name", cJSON_CreateString(str));
char* resp = cJSON_Print(retJson);
if (NULL != resp)
{
p->PostEventMsg((const HGByte*)resp, (HGUInt)strlen(resp));
free(resp);
}
cJSON_Delete(retJson);
}
}
else if (code == SANEEVENT_WORKING)
{ {
cJSON* retJson = cJSON_CreateObject(); cJSON* retJson = cJSON_CreateObject();
if (NULL != retJson) if (NULL != retJson)
{ {
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_begin")); cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_begin"));
if (p->m_startScanHaveIden) if (haveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(p->m_startScanIden.c_str())); cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(iden.c_str()));
char* resp = cJSON_Print(retJson); char* resp = cJSON_Print(retJson);
if (NULL != resp) if (NULL != resp)
@ -860,8 +858,8 @@ namespace ver_2
if (NULL != retJson) if (NULL != retJson)
{ {
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_info")); cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_info"));
if (p->m_startScanHaveIden) if (haveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(p->m_startScanIden.c_str())); cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(iden.c_str()));
if (err) if (err)
cJSON_AddItemToObject(retJson, "is_error", cJSON_CreateTrue()); cJSON_AddItemToObject(retJson, "is_error", cJSON_CreateTrue());
else else
@ -884,8 +882,8 @@ namespace ver_2
if (NULL != retJson) if (NULL != retJson)
{ {
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_info")); cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_info"));
if (p->m_startScanHaveIden) if (haveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(p->m_startScanIden.c_str())); cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(iden.c_str()));
if (err) if (err)
cJSON_AddItemToObject(retJson, "is_error", cJSON_CreateTrue()); cJSON_AddItemToObject(retJson, "is_error", cJSON_CreateTrue());
else else
@ -906,8 +904,8 @@ namespace ver_2
if (NULL != retJson) if (NULL != retJson)
{ {
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_end")); cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_end"));
if (p->m_startScanHaveIden) if (haveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(p->m_startScanIden.c_str())); cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(iden.c_str()));
char* resp = cJSON_Print(retJson); char* resp = cJSON_Print(retJson);
if (NULL != resp) if (NULL != resp)
@ -921,12 +919,13 @@ namespace ver_2
} }
} }
void WSUser::SaneImageCallback(const char* path, bool blank, void* param) void WSUser::SaneImageCallback(const std::string &iden, bool haveIden, bool blankCheck, bool localSave, bool getBase64,
const char* path, bool blank, void* param)
{ {
WSUser* p = (WSUser*)param; WSUser* p = (WSUser*)param;
std::string base64; std::string base64;
if (p->m_startScanIsGetBase64) if (getBase64)
{ {
std::string errInfo; std::string errInfo;
p->GetManager()->LoadLocalImage(path, base64, errInfo); p->GetManager()->LoadLocalImage(path, base64, errInfo);
@ -936,10 +935,10 @@ namespace ver_2
if (NULL != retJson) if (NULL != retJson)
{ {
cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_image")); cJSON_AddItemToObject(retJson, "func", cJSON_CreateString("scan_image"));
if (p->m_startScanHaveIden) if (haveIden)
cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(p->m_startScanIden.c_str())); cJSON_AddItemToObject(retJson, "iden", cJSON_CreateString(iden.c_str()));
if (p->m_startScanBlankCheck) if (blankCheck)
{ {
if (blank) if (blank)
cJSON_AddItemToObject(retJson, "is_blank", cJSON_CreateTrue()); cJSON_AddItemToObject(retJson, "is_blank", cJSON_CreateTrue());
@ -947,10 +946,10 @@ namespace ver_2
cJSON_AddItemToObject(retJson, "is_blank", cJSON_CreateFalse()); cJSON_AddItemToObject(retJson, "is_blank", cJSON_CreateFalse());
} }
if (p->m_startScanIsLocalSave) if (localSave)
cJSON_AddItemToObject(retJson, "image_path", cJSON_CreateString(StdStringToUtf8(path).c_str())); cJSON_AddItemToObject(retJson, "image_path", cJSON_CreateString(StdStringToUtf8(path).c_str()));
if (p->m_startScanIsGetBase64) if (getBase64)
cJSON_AddItemToObject(retJson, "image_base64", cJSON_CreateString(base64.c_str())); cJSON_AddItemToObject(retJson, "image_base64", cJSON_CreateString(base64.c_str()));
char* resp = cJSON_Print(retJson); char* resp = cJSON_Print(retJson);
@ -2477,19 +2476,8 @@ namespace ver_2
bool findIden = false; bool findIden = false;
std::string iden = GetJsonStringValue(json, "iden", &findIden); std::string iden = GetJsonStringValue(json, "iden", &findIden);
if (!GetManager()->IsDeviceInit())
{
m_initDeviceIden = iden;
m_initDeviceHaveIden = findIden;
}
std::string errInfo; std::string errInfo;
int ret = GetManager()->InitDevice(errInfo); int ret = GetManager()->InitDevice(iden, findIden, errInfo);
if (0 != ret)
{
m_initDeviceIden.clear();
m_initDeviceHaveIden = false;
}
cJSON* retJson = cJSON_CreateObject(); cJSON* retJson = cJSON_CreateObject();
if (NULL != retJson) if (NULL != retJson)
@ -2519,9 +2507,6 @@ namespace ver_2
std::string errInfo; std::string errInfo;
int ret = GetManager()->DeinitDevice(errInfo); int ret = GetManager()->DeinitDevice(errInfo);
m_initDeviceIden.clear();
m_initDeviceHaveIden = false;
bool findIden = false; bool findIden = false;
std::string iden = GetJsonStringValue(json, "iden", &findIden); std::string iden = GetJsonStringValue(json, "iden", &findIden);
@ -3056,25 +3041,8 @@ namespace ver_2
if (!find) if (!find)
getBase64 = false; getBase64 = false;
if (!GetManager()->IsScanning())
{
m_startScanIden = iden;
m_startScanHaveIden = findIden;
m_startScanBlankCheck = blankCheck;
m_startScanIsLocalSave = localSave;
m_startScanIsGetBase64 = getBase64;
}
std::string errInfo; std::string errInfo;
int ret = GetManager()->StartScan(blankCheck, !localSave, errInfo); int ret = GetManager()->StartScan(iden, findIden, blankCheck, localSave, getBase64, errInfo);
if (0 != ret)
{
m_startScanIden.clear();
m_startScanHaveIden = false;
m_startScanBlankCheck = false;
m_startScanIsLocalSave = true;
m_startScanIsGetBase64 = false;
}
cJSON* retJson = cJSON_CreateObject(); cJSON* retJson = cJSON_CreateObject();
if (NULL != retJson) if (NULL != retJson)
@ -3104,12 +3072,6 @@ namespace ver_2
std::string errInfo; std::string errInfo;
int ret = GetManager()->StopScan(errInfo); int ret = GetManager()->StopScan(errInfo);
m_startScanIden.clear();
m_startScanHaveIden = false;
m_startScanBlankCheck = false;
m_startScanIsLocalSave = true;
m_startScanIsGetBase64 = false;
bool findIden = false; bool findIden = false;
std::string iden = GetJsonStringValue(json, "iden", &findIden); std::string iden = GetJsonStringValue(json, "iden", &findIden);

View File

@ -26,8 +26,10 @@ namespace ver_2
virtual void ThreadFunc(); virtual void ThreadFunc();
public: public:
static void SaneEvent(int code, const char* str, bool err, void* param); static void DbtEvent(const std::string &iden, bool haveIden, int code, const char* str, bool err, void* param);
static void SaneImageCallback(const char* path, bool blank, void* param); static void SaneEvent(const std::string &iden, bool haveIden, int code, const char* str, bool err, void* param);
static void SaneImageCallback(const std::string &iden, bool haveIden, bool blankCheck, bool localSave, bool getBase64,
const char* path, bool blank, void* param);
private: private:
bool ShakeHand(const std::string& head); bool ShakeHand(const std::string& head);
void Pong(); void Pong();
@ -92,14 +94,5 @@ namespace ver_2
void MoveImage(cJSON* json); void MoveImage(cJSON* json);
void ExchangeImage(cJSON* json); void ExchangeImage(cJSON* json);
void ImageBookSort(cJSON* json); void ImageBookSort(cJSON* json);
private:
std::string m_initDeviceIden;
bool m_initDeviceHaveIden;
std::string m_startScanIden;
bool m_startScanHaveIden;
bool m_startScanBlankCheck;
bool m_startScanIsLocalSave;
bool m_startScanIsGetBase64;
}; };
} }