1)HGVersion库增加黑名单检查接口

2)HGScannerLib增加接口文档
This commit is contained in:
luoliangyi 2022-09-19 15:03:20 +08:00
parent 4d6c5a9a3a
commit b2066feaee
8 changed files with 116 additions and 7 deletions

View File

@ -16,6 +16,7 @@ HGVersion_PostDeviceScanCountInfo
HGVersion_PostDeviceClearRollerInfo
HGVersion_PostDeviceHistroyCountInfo
HGVersion_PostDeviceRollerCountInfo
HGVersion_PostDevicePaperJamInfo
HGVersion_PostUserOpenInfo
HGVersion_PostUserCloseInfo
HGVersion_PostUserLoginInfo
@ -26,3 +27,4 @@ HGVersion_HttpDownload
HGVersion_ReleaseVersionList
HGVersion_GetCurrVersion
HGVersion_CompareVersion
HGVersion_BlackListCheck

Binary file not shown.

View File

@ -156,6 +156,18 @@ HGResult HGAPI HGVersion_PostDeviceRollerCountInfo(HGVersionMgr mgr, const HGCha
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)
{
if (NULL == mgr)
@ -294,3 +306,14 @@ HGResult HGAPI HGVersion_CompareVersion(const HGChar* version1, const HGChar* ve
*result = ret;
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);
}

View File

@ -57,6 +57,8 @@ HGEXPORT HGResult HGAPI HGVersion_PostDeviceHistroyCountInfo(HGVersionMgr mgr, c
const HGChar* devType, const HGChar* devFW, HGUInt histroyCount);
HGEXPORT HGResult HGAPI HGVersion_PostDeviceRollerCountInfo(HGVersionMgr mgr, const HGChar* devName, const HGChar* devSN,
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);
@ -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_BlackListCheck(HGVersionMgr mgr, const HGChar* devSN, HGBool *inList);
#endif /* __HGVERSION_H__ */

View File

@ -1183,6 +1183,12 @@ HGResult HGVersionMgrImpl::PostDeviceRollerCountInfo(const HGChar* devName, cons
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)
{
if (!m_serverCfg.postUserBehaviorInfo)
@ -1345,6 +1351,77 @@ HGResult HGVersionMgrImpl::GetCurrVersion(const HGChar* appName, HGChar* version
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)
{
HGVersionMgrImpl* p = (HGVersionMgrImpl*)param;

View File

@ -30,6 +30,8 @@ public:
const HGChar* devFW, HGUInt histroyCount);
HGResult PostDeviceRollerCountInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType,
const HGChar* devFW, HGUInt rollerCount);
HGResult PostDevicePaperJamInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType,
const HGChar* devFW);
// 用户行为
HGResult PostUserOpenInfo(const HGChar* appName);
@ -41,6 +43,7 @@ public:
HGResult HttpDownload(const HGChar* url, const HGChar* saveFilePath, HGHttpDownloadFunc func, HGPointer param);
static HGResult ReleaseVersionList(HGVersionInfo *info, HGUInt count);
static HGResult GetCurrVersion(const HGChar* appName, HGChar* version, HGUInt maxLen);
HGResult BlackListCheck(const HGChar* devSN, HGBool* inList);
private:
static void ThreadFunc(HGThread thread, HGPointer param);

View File

@ -1,12 +1,12 @@
project(testdemo)
FILE(GLOB SRC "*.cpp" "*.h" "*.c")
include_directories(${PROJECT_SOURCE_DIR}/../include)
include_directories(${PROJECT_SOURCE_DIR}/)
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}/)

View File

@ -45,7 +45,7 @@ static void DeviceScanEvent(HGLibDevice device, HGUInt event, HGBool err, const
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); //初始化调用模块
DELEAY_MS(5000);
@ -171,6 +171,6 @@ int main(unsigned char argc, unsigned char *argv[])
cout << "devices not found" << endl;
HGLib_DeinitDevice(); //退出扫描模块
cout << "*********Exit LSC Scanner SDK Demo *********" << endl;
cout << "*********Exit Scanner SDK Demo *********" << endl;
return 0;
}