parent
4d6c5a9a3a
commit
b2066feaee
|
@ -16,6 +16,7 @@ HGVersion_PostDeviceScanCountInfo
|
||||||
HGVersion_PostDeviceClearRollerInfo
|
HGVersion_PostDeviceClearRollerInfo
|
||||||
HGVersion_PostDeviceHistroyCountInfo
|
HGVersion_PostDeviceHistroyCountInfo
|
||||||
HGVersion_PostDeviceRollerCountInfo
|
HGVersion_PostDeviceRollerCountInfo
|
||||||
|
HGVersion_PostDevicePaperJamInfo
|
||||||
HGVersion_PostUserOpenInfo
|
HGVersion_PostUserOpenInfo
|
||||||
HGVersion_PostUserCloseInfo
|
HGVersion_PostUserCloseInfo
|
||||||
HGVersion_PostUserLoginInfo
|
HGVersion_PostUserLoginInfo
|
||||||
|
@ -25,4 +26,5 @@ HGVersion_GetVersionList
|
||||||
HGVersion_HttpDownload
|
HGVersion_HttpDownload
|
||||||
HGVersion_ReleaseVersionList
|
HGVersion_ReleaseVersionList
|
||||||
HGVersion_GetCurrVersion
|
HGVersion_GetCurrVersion
|
||||||
HGVersion_CompareVersion
|
HGVersion_CompareVersion
|
||||||
|
HGVersion_BlackListCheck
|
Binary file not shown.
|
@ -156,6 +156,18 @@ HGResult HGAPI HGVersion_PostDeviceRollerCountInfo(HGVersionMgr mgr, const HGCha
|
||||||
return versionMgrImpl->PostDeviceRollerCountInfo(devName, devSN, devType, devFW, rollerCount);
|
return versionMgrImpl->PostDeviceRollerCountInfo(devName, devSN, devType, devFW, rollerCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HGResult HGAPI HGVersion_PostDevicePaperJamInfo(HGVersionMgr mgr, const HGChar* devName, const HGChar* devSN,
|
||||||
|
const HGChar* devType, const HGChar* devFW)
|
||||||
|
{
|
||||||
|
if (NULL == mgr)
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
HGVersionMgrImpl* versionMgrImpl = (HGVersionMgrImpl*)mgr;
|
||||||
|
return versionMgrImpl->PostDevicePaperJamInfo(devName, devSN, devType, devFW);
|
||||||
|
}
|
||||||
|
|
||||||
HGResult HGAPI HGVersion_PostUserOpenInfo(HGVersionMgr mgr, const HGChar* appName)
|
HGResult HGAPI HGVersion_PostUserOpenInfo(HGVersionMgr mgr, const HGChar* appName)
|
||||||
{
|
{
|
||||||
if (NULL == mgr)
|
if (NULL == mgr)
|
||||||
|
@ -293,4 +305,15 @@ HGResult HGAPI HGVersion_CompareVersion(const HGChar* version1, const HGChar* ve
|
||||||
int ret = ::CompareVersion(version1, version2);
|
int ret = ::CompareVersion(version1, version2);
|
||||||
*result = ret;
|
*result = ret;
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HGResult HGAPI HGVersion_BlackListCheck(HGVersionMgr mgr, const HGChar* devSN, HGBool* inList)
|
||||||
|
{
|
||||||
|
if (NULL == mgr)
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
HGVersionMgrImpl* versionMgrImpl = (HGVersionMgrImpl*)mgr;
|
||||||
|
return versionMgrImpl->BlackListCheck(devSN, inList);
|
||||||
}
|
}
|
|
@ -57,6 +57,8 @@ HGEXPORT HGResult HGAPI HGVersion_PostDeviceHistroyCountInfo(HGVersionMgr mgr, c
|
||||||
const HGChar* devType, const HGChar* devFW, HGUInt histroyCount);
|
const HGChar* devType, const HGChar* devFW, HGUInt histroyCount);
|
||||||
HGEXPORT HGResult HGAPI HGVersion_PostDeviceRollerCountInfo(HGVersionMgr mgr, const HGChar* devName, const HGChar* devSN,
|
HGEXPORT HGResult HGAPI HGVersion_PostDeviceRollerCountInfo(HGVersionMgr mgr, const HGChar* devName, const HGChar* devSN,
|
||||||
const HGChar* devType, const HGChar* devFW, HGUInt rollerCount);
|
const HGChar* devType, const HGChar* devFW, HGUInt rollerCount);
|
||||||
|
HGEXPORT HGResult HGAPI HGVersion_PostDevicePaperJamInfo(HGVersionMgr mgr, const HGChar* devName, const HGChar* devSN,
|
||||||
|
const HGChar* devType, const HGChar* devFW);
|
||||||
|
|
||||||
// 用户行为
|
// 用户行为
|
||||||
HGEXPORT HGResult HGAPI HGVersion_PostUserOpenInfo(HGVersionMgr mgr, const HGChar* appName);
|
HGEXPORT HGResult HGAPI HGVersion_PostUserOpenInfo(HGVersionMgr mgr, const HGChar* appName);
|
||||||
|
@ -74,4 +76,6 @@ HGEXPORT HGResult HGAPI HGVersion_GetCurrVersion(const HGChar* appName, HGChar*
|
||||||
|
|
||||||
HGEXPORT HGResult HGAPI HGVersion_CompareVersion(const HGChar* version1, const HGChar* version2, HGInt* result);
|
HGEXPORT HGResult HGAPI HGVersion_CompareVersion(const HGChar* version1, const HGChar* version2, HGInt* result);
|
||||||
|
|
||||||
|
HGEXPORT HGResult HGAPI HGVersion_BlackListCheck(HGVersionMgr mgr, const HGChar* devSN, HGBool *inList);
|
||||||
|
|
||||||
#endif /* __HGVERSION_H__ */
|
#endif /* __HGVERSION_H__ */
|
|
@ -1183,6 +1183,12 @@ HGResult HGVersionMgrImpl::PostDeviceRollerCountInfo(const HGChar* devName, cons
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HGResult HGVersionMgrImpl::PostDevicePaperJamInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType,
|
||||||
|
const HGChar* devFW)
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
HGResult HGVersionMgrImpl::PostUserOpenInfo(const HGChar* appName)
|
HGResult HGVersionMgrImpl::PostUserOpenInfo(const HGChar* appName)
|
||||||
{
|
{
|
||||||
if (!m_serverCfg.postUserBehaviorInfo)
|
if (!m_serverCfg.postUserBehaviorInfo)
|
||||||
|
@ -1345,6 +1351,77 @@ HGResult HGVersionMgrImpl::GetCurrVersion(const HGChar* appName, HGChar* version
|
||||||
return HGBASE_ERR_OK;
|
return HGBASE_ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HGResult HGVersionMgrImpl::BlackListCheck(const HGChar* devSN, HGBool* inList)
|
||||||
|
{
|
||||||
|
if (NULL == devSN || NULL == inList)
|
||||||
|
{
|
||||||
|
return HGBASE_ERR_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
*inList = HGFALSE;
|
||||||
|
|
||||||
|
HGResult ret = HGBASE_ERR_FAIL;
|
||||||
|
CURL* curl = curl_easy_init();
|
||||||
|
if (NULL != curl)
|
||||||
|
{
|
||||||
|
std::stringstream out;
|
||||||
|
|
||||||
|
char url[256];
|
||||||
|
sprintf(url, "http://cd.holdtecs.net:50080/api/ver?sn=%s", devSN);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 2);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_URL, url);
|
||||||
|
|
||||||
|
struct curl_slist* headers = NULL;
|
||||||
|
headers = curl_slist_append(headers, "Accept-Encoding:gzip, deflate, sdch");
|
||||||
|
headers = curl_slist_append(headers, "Accept-Language:zh-CN,zh;q=0.8");
|
||||||
|
headers = curl_slist_append(headers, "Connection:keep-alive");
|
||||||
|
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_HTTPGET, 1);
|
||||||
|
|
||||||
|
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out);
|
||||||
|
|
||||||
|
/* Perform the request, res will get the return code */
|
||||||
|
CURLcode res = curl_easy_perform(curl);
|
||||||
|
/* Check for errors */
|
||||||
|
if (res != CURLE_OK)
|
||||||
|
fprintf(stderr, "curl_easy_perform() failed: %s", curl_easy_strerror(res));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::string str_json = out.str(); // 返回值
|
||||||
|
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "str_json=%s", str_json.c_str());
|
||||||
|
|
||||||
|
cJSON* json = cJSON_Parse(str_json.c_str());
|
||||||
|
if (NULL != json)
|
||||||
|
{
|
||||||
|
cJSON* p = json->child;
|
||||||
|
while (NULL != p)
|
||||||
|
{
|
||||||
|
if (0 == strcmp(p->string, "code") && p->type == cJSON_Number)
|
||||||
|
{
|
||||||
|
if (1 == p->valueint)
|
||||||
|
ret = HGBASE_ERR_OK;
|
||||||
|
}
|
||||||
|
else if (0 == strcmp(p->string, "data") && p->type == cJSON_True)
|
||||||
|
{
|
||||||
|
*inList = HGTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
p = p->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON_Delete(json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
curl_slist_free_all(headers);
|
||||||
|
/* always cleanup */
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
void HGVersionMgrImpl::ThreadFunc(HGThread thread, HGPointer param)
|
void HGVersionMgrImpl::ThreadFunc(HGThread thread, HGPointer param)
|
||||||
{
|
{
|
||||||
HGVersionMgrImpl* p = (HGVersionMgrImpl*)param;
|
HGVersionMgrImpl* p = (HGVersionMgrImpl*)param;
|
||||||
|
|
|
@ -30,6 +30,8 @@ public:
|
||||||
const HGChar* devFW, HGUInt histroyCount);
|
const HGChar* devFW, HGUInt histroyCount);
|
||||||
HGResult PostDeviceRollerCountInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType,
|
HGResult PostDeviceRollerCountInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType,
|
||||||
const HGChar* devFW, HGUInt rollerCount);
|
const HGChar* devFW, HGUInt rollerCount);
|
||||||
|
HGResult PostDevicePaperJamInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType,
|
||||||
|
const HGChar* devFW);
|
||||||
|
|
||||||
// 用户行为
|
// 用户行为
|
||||||
HGResult PostUserOpenInfo(const HGChar* appName);
|
HGResult PostUserOpenInfo(const HGChar* appName);
|
||||||
|
@ -41,6 +43,7 @@ public:
|
||||||
HGResult HttpDownload(const HGChar* url, const HGChar* saveFilePath, HGHttpDownloadFunc func, HGPointer param);
|
HGResult HttpDownload(const HGChar* url, const HGChar* saveFilePath, HGHttpDownloadFunc func, HGPointer param);
|
||||||
static HGResult ReleaseVersionList(HGVersionInfo *info, HGUInt count);
|
static HGResult ReleaseVersionList(HGVersionInfo *info, HGUInt count);
|
||||||
static HGResult GetCurrVersion(const HGChar* appName, HGChar* version, HGUInt maxLen);
|
static HGResult GetCurrVersion(const HGChar* appName, HGChar* version, HGUInt maxLen);
|
||||||
|
HGResult BlackListCheck(const HGChar* devSN, HGBool* inList);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void ThreadFunc(HGThread thread, HGPointer param);
|
static void ThreadFunc(HGThread thread, HGPointer param);
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
project(testdemo)
|
project(testdemo)
|
||||||
|
|
||||||
FILE(GLOB SRC "*.cpp" "*.h" "*.c")
|
FILE(GLOB SRC "*.cpp" "*.h" "*.c")
|
||||||
include_directories(${PROJECT_SOURCE_DIR}/../include)
|
include_directories(${PROJECT_SOURCE_DIR}/)
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME} ${SRC})
|
add_executable(${PROJECT_NAME} ${SRC})
|
||||||
|
|
||||||
target_link_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/../lib)
|
target_link_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/)
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME} LscBase lscdriver LscImgFmt LscImgProc LscScannerLib mupdf pdf sane-lscsane)
|
target_link_libraries(${PROJECT_NAME} HGBase hgdriver HGImgFmt HGImgProc HGScannerLib mupdf pdf sane-hgsane)
|
||||||
|
|
||||||
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)
|
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/)
|
|
@ -45,7 +45,7 @@ static void DeviceScanEvent(HGLibDevice device, HGUInt event, HGBool err, const
|
||||||
|
|
||||||
int main(unsigned char argc, unsigned char *argv[])
|
int main(unsigned char argc, unsigned char *argv[])
|
||||||
{
|
{
|
||||||
std::cout << "*********Enter LSC Scanner SDK Demo *********" << std::endl;
|
std::cout << "*********Enter Scanner SDK Demo *********" << std::endl;
|
||||||
HGLib_InitDevice(DeviceHotPlugEvent, 0); //初始化调用模块
|
HGLib_InitDevice(DeviceHotPlugEvent, 0); //初始化调用模块
|
||||||
DELEAY_MS(5000);
|
DELEAY_MS(5000);
|
||||||
|
|
||||||
|
@ -171,6 +171,6 @@ int main(unsigned char argc, unsigned char *argv[])
|
||||||
cout << "devices not found" << endl;
|
cout << "devices not found" << endl;
|
||||||
|
|
||||||
HGLib_DeinitDevice(); //退出扫描模块
|
HGLib_DeinitDevice(); //退出扫描模块
|
||||||
cout << "*********Exit LSC Scanner SDK Demo *********" << endl;
|
cout << "*********Exit Scanner SDK Demo *********" << endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
Loading…
Reference in New Issue