1.数据库可以支持每个测试项上传多个文件

2.支持自定义的测试项
This commit is contained in:
luoliangyi 2023-01-03 18:11:21 +08:00
parent 0b8f2fd2e0
commit 290e78164c
6 changed files with 417 additions and 658 deletions

View File

@ -199,6 +199,28 @@ HGResult HGAPI HGPdtToolDb_SetUserConfig(HGPdtToolDbUserMgr userMgr, const HGCha
return userMgrImpl->SetConfig(key, value);
}
HGResult HGAPI HGPdtToolDb_GetEntryNameCnStr(HGPdtToolDbUserMgr userMgr, const HGChar* entryName, HGChar* entryNameCnStr, HGUInt maxLen)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->GetEntryNameCnStr(entryName, entryNameCnStr, maxLen);
}
HGResult HGAPI HGPdtToolDb_SetEntryNameCnStr(HGPdtToolDbUserMgr userMgr, const HGChar* entryName, const HGChar* entryNameCnStr)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->SetEntryNameCnStr(entryName, entryNameCnStr);
}
HGResult HGAPI HGPdtToolDb_OpenDevice(HGPdtToolDbUserMgr userMgr, const HGChar* sn, HGPdtToolDbDevice* device)
{
if (NULL == userMgr || NULL == device)
@ -296,29 +318,7 @@ HGResult HGAPI HGPdtToolDb_SetDeviceVersion(HGPdtToolDbDevice device, const HGCh
return deviceImpl->SetVersion(version);
}
HGResult HGAPI HGPdtToolDb_GetDeviceCurrEntry(HGPdtToolDbDevice device, HGUInt* entryName)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->GetCurrEntry(entryName);
}
HGResult HGAPI HGPdtToolDb_SetDeviceCurrEntry(HGPdtToolDbDevice device, HGUInt entryName)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->SetCurrEntry(entryName);
}
HGResult HGAPI HGPdtToolDb_GetDeviceEntryStatus(HGPdtToolDbDevice device, HGUInt entryName, HGUInt* entryStatus)
HGResult HGAPI HGPdtToolDb_GetDeviceEntryStatus(HGPdtToolDbDevice device, const HGChar* entryName, HGUInt* entryStatus)
{
if (NULL == device)
{
@ -329,7 +329,7 @@ HGResult HGAPI HGPdtToolDb_GetDeviceEntryStatus(HGPdtToolDbDevice device, HGUInt
return deviceImpl->GetEntryStatus(entryName, entryStatus);
}
HGResult HGAPI HGPdtToolDb_GetDeviceEntryExcepDesc(HGPdtToolDbDevice device, HGUInt entryName, HGChar* excepDesc, HGUInt maxLen)
HGResult HGAPI HGPdtToolDb_GetDeviceEntryExcepDesc(HGPdtToolDbDevice device, const HGChar* entryName, HGChar* excepDesc, HGUInt maxLen)
{
if (NULL == device)
{
@ -340,7 +340,7 @@ HGResult HGAPI HGPdtToolDb_GetDeviceEntryExcepDesc(HGPdtToolDbDevice device, HGU
return deviceImpl->GetEntryExcepDesc(entryName, excepDesc, maxLen);
}
HGResult HGAPI HGPdtToolDb_SetDeviceEntryStatus(HGPdtToolDbDevice device, HGUInt entryName, HGUInt entryStatus)
HGResult HGAPI HGPdtToolDb_SetDeviceEntryStatus(HGPdtToolDbDevice device, const HGChar* entryName, HGUInt entryStatus)
{
if (NULL == device)
{
@ -351,7 +351,7 @@ HGResult HGAPI HGPdtToolDb_SetDeviceEntryStatus(HGPdtToolDbDevice device, HGUInt
return deviceImpl->SetEntryStatus(entryName, entryStatus);
}
HGResult HGAPI HGPdtToolDb_SetDeviceEntryExcepDesc(HGPdtToolDbDevice device, HGUInt entryName, const HGChar* excepDesc)
HGResult HGAPI HGPdtToolDb_SetDeviceEntryExcepDesc(HGPdtToolDbDevice device, const HGChar* entryName, const HGChar* excepDesc)
{
if (NULL == device)
{
@ -362,8 +362,8 @@ HGResult HGAPI HGPdtToolDb_SetDeviceEntryExcepDesc(HGPdtToolDbDevice device, HGU
return deviceImpl->SetEntryExcepDesc(entryName, excepDesc);
}
HGResult HGAPI HGPdtToolDb_DownloadDeviceEntryImage(HGPdtToolDbDevice device, HGUInt entryName,
const HGChar* ftpHost, HGUShort ftpPort, const HGChar* fileName)
HGResult HGAPI HGPdtToolDb_DownloadDeviceEntryImage(HGPdtToolDbDevice device, const HGChar* entryName,
const HGChar* ftpHost, HGUShort ftpPort, HGUInt index, const HGChar* fileName)
{
if (NULL == device)
{
@ -371,10 +371,10 @@ HGResult HGAPI HGPdtToolDb_DownloadDeviceEntryImage(HGPdtToolDbDevice device, HG
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->DownloadEntryImage(entryName, ftpHost, ftpPort, fileName);
return deviceImpl->DownloadEntryImage(entryName, ftpHost, ftpPort, index, fileName);
}
HGResult HGAPI HGPdtToolDb_CheckDeviceEntryImage(HGPdtToolDbDevice device, HGUInt entryName)
HGResult HGAPI HGPdtToolDb_GetDeviceEntryImageCount(HGPdtToolDbDevice device, const HGChar* entryName, HGUInt* count)
{
if (NULL == device)
{
@ -382,10 +382,21 @@ HGResult HGAPI HGPdtToolDb_CheckDeviceEntryImage(HGPdtToolDbDevice device, HGUIn
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->CheckEntryImage(entryName);
return deviceImpl->GetEntryImageCount(entryName, count);
}
HGResult HGAPI HGPdtToolDb_UploadDeviceEntryImage(HGPdtToolDbDevice device, HGUInt entryName,
HGResult HGAPI HGPdtToolDb_ClearDeviceEntryImage(HGPdtToolDbDevice device, const HGChar* entryName)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->ClearEntryImage(entryName);
}
HGResult HGAPI HGPdtToolDb_UploadDeviceEntryImage(HGPdtToolDbDevice device, const HGChar* entryName,
const HGChar* ftpHost, HGUShort ftpPort, const HGChar* fileName)
{
if (NULL == device)

View File

@ -19,6 +19,8 @@ HGPdtToolDb_DownloadFile
HGPdtToolDb_Export
HGPdtToolDb_GetUserConfig
HGPdtToolDb_SetUserConfig
HGPdtToolDb_GetEntryNameCnStr
HGPdtToolDb_SetEntryNameCnStr
HGPdtToolDb_OpenDevice
HGPdtToolDb_CloseDevice
HGPdtToolDb_GetDeviceName
@ -27,12 +29,11 @@ HGPdtToolDb_GetDeviceType
HGPdtToolDb_SetDeviceType
HGPdtToolDb_GetDeviceVersion
HGPdtToolDb_SetDeviceVersion
HGPdtToolDb_GetDeviceCurrEntry
HGPdtToolDb_SetDeviceCurrEntry
HGPdtToolDb_GetDeviceEntryStatus
HGPdtToolDb_GetDeviceEntryExcepDesc
HGPdtToolDb_SetDeviceEntryStatus
HGPdtToolDb_SetDeviceEntryExcepDesc
HGPdtToolDb_DownloadDeviceEntryImage
HGPdtToolDb_CheckDeviceEntryImage
HGPdtToolDb_GetDeviceEntryImageCount
HGPdtToolDb_ClearDeviceEntryImage
HGPdtToolDb_UploadDeviceEntryImage

View File

@ -19,79 +19,6 @@
/* 普通账户 */
#define HGPDTTOOLDB_USERTYPE_NORMAL 2L
/* 拨码开关校验 */
#define HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH 1L
/* 检查船型开关功能 */
#define HGPDTTOOLDB_ENTRYNAME_ROCKER_SWITCH 2L
/* 设备上电并观察开机状态 */
#define HGPDTTOOLDB_ENTRYNAME_BOOT_STATUS 3L
/* 检查液晶显示 */
#define HGPDTTOOLDB_ENTRYNAME_LCD_DISPLAY 4L
/* 清理纸道功能确认 */
#define HGPDTTOOLDB_ENTRYNAME_CLEAR_PAPER_PATH 5L
/* 按键功能检测 */
#define HGPDTTOOLDB_ENTRYNAME_KEY_FUNCTION 6L
/* 计数模式检测 */
#define HGPDTTOOLDB_ENTRYNAME_COUNTING_MODE 7L
/* 歪斜检测 */
#define HGPDTTOOLDB_ENTRYNAME_SKEW_DETECTION 8L
/* 分纸电机检测 */
#define HGPDTTOOLDB_ENTRYNAME_SEPARATER_MOTOR 9L
/* CIS原图初检 */
#define HGPDTTOOLDB_ENTRYNAME_CIS_ORIGINAL_IMAGE 10L
/* 主机风扇功能检测 */
#define HGPDTTOOLDB_ENTRYNAME_HOST_FAN 11L
/* 超声波模块检验 */
#define HGPDTTOOLDB_ENTRYNAME_ULTRASONIC_MODULE 12L
/* LED灯状态检查 */
#define HGPDTTOOLDB_ENTRYNAME_LED_LIGHT 13L
/* 复位检查 */
#define HGPDTTOOLDB_ENTRYNAME_RESET 14L
/* 走纸检查 */
#define HGPDTTOOLDB_ENTRYNAME_PAPER_FEED 15L
/* 开盖传感器检查 */
#define HGPDTTOOLDB_ENTRYNAME_COVER_SENSOR 16L
/* 扫描传感器检查 */
#define HGPDTTOOLDB_ENTRYNAME_SCANNING_SENSOR 17L
/* 配置速度模式 */
#define HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE 101L
/* 放置校正纸 */
#define HGPDTTOOLDB_ENTRYNAME_PLACE_CORRECTION_PAPER 102L
/* 自动平场校正 */
#define HGPDTTOOLDB_ENTRYNAME_AUTO_FLAT_FIELD 103L
/* 重启设备 */
#define HGPDTTOOLDB_ENTRYNAME_REBOOT_DEVICE 104L
/* 扫描图像质量确认 */
#define HGPDTTOOLDB_ENTRYNAME_IMAGE_QUALITY 105L
/* 色卡纸成像质量评估 */
#define HGPDTTOOLDB_ENTRYNAME_COLORCARD_IMAGEING_QUALITY 106L
/* 色卡纸偏色成像质量评估 */
#define HGPDTTOOLDB_ENTRYNAME_COLORCARD_BIAS_IMAGEING_QUALITY 107L
/* 清晰度质量评估 */
#define HGPDTTOOLDB_ENTRYNAME_CLARITY_QUALITY 108L
/* 畸变修正 */
#define HGPDTTOOLDB_ENTRYNAME_DISTORTION 109L
/* 设置休眠 */
#define HGPDTTOOLDB_ENTRYNAME_DORMANCY 110L
/* 歪斜挡位检测 */
#define HGPDTTOOLDB_ENTRYNAME_SKEW_GEAR 111L
/* 分纸强度检测 */
#define HGPDTTOOLDB_ENTRYNAME_PAPER_SEPARATION_STRENGTH 112L
/* 机械走纸倾斜检测 */
#define HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION 113L
/* 单张测试1 */
#define HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_1 201L
/* 单张测试2 */
#define HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_2 202L
/* 单张测试3 */
#define HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_3 203L
/* 压力测试2轮 */
#define HGPDTTOOLDB_ENTRYNAME_PRESSUER_TEST 204L
/* 清除滚轴计数 */
#define HGPDTTOOLDB_ENTRYNAME_CLEAR_ROLLER_COUNT 205L
/* 未测试 */
#define HGPDTTOOLDB_ENTRYSTATUS_NOTTEST 0L
/* 不通过 */
@ -156,6 +83,12 @@ HGEXPORT HGResult HGAPI HGPdtToolDb_GetUserConfig(HGPdtToolDbUserMgr userMgr, co
/* 设置用户配置 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetUserConfig(HGPdtToolDbUserMgr userMgr, const HGChar* key, const HGChar* value);
/* 获取测试项中文字符串 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetEntryNameCnStr(HGPdtToolDbUserMgr userMgr, const HGChar* entryName, HGChar* entryNameCnStr, HGUInt maxLen);
/* 设置测试项中文字符串 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetEntryNameCnStr(HGPdtToolDbUserMgr userMgr, const HGChar* entryName, const HGChar* entryNameCnStr);
/* 创建/打开设备sn标识设备唯一序列号 */
HGEXPORT HGResult HGAPI HGPdtToolDb_OpenDevice(HGPdtToolDbUserMgr userMgr, const HGChar* sn, HGPdtToolDbDevice *device);
@ -180,33 +113,30 @@ HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceVersion(HGPdtToolDbDevice device, H
/* 设置设备版本 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceVersion(HGPdtToolDbDevice device, const HGChar* version);
/* 获取当前的测试项, 0表示还未测试0xFFFFFFFF表示已经测试完成 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceCurrEntry(HGPdtToolDbDevice device, HGUInt *entryName);
/* 设置当前的测试项, 0表示还未测试0xFFFFFFFF表示已经测试完成 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceCurrEntry(HGPdtToolDbDevice device, HGUInt entryName);
/* 获取某个测试项的状态 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceEntryStatus(HGPdtToolDbDevice device, HGUInt entryName, HGUInt *entryStatus);
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceEntryStatus(HGPdtToolDbDevice device, const HGChar* entryName, HGUInt *entryStatus);
/* 获取某个测试项的异常说明 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceEntryExcepDesc(HGPdtToolDbDevice device, HGUInt entryName, HGChar *excepDesc, HGUInt maxLen);
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceEntryExcepDesc(HGPdtToolDbDevice device, const HGChar* entryName, HGChar *excepDesc, HGUInt maxLen);
/* 设置某个测试项的状态 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceEntryStatus(HGPdtToolDbDevice device, HGUInt entryName, HGUInt entryStatus);
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceEntryStatus(HGPdtToolDbDevice device, const HGChar* entryName, HGUInt entryStatus);
/* 设置某个测试项的异常说明 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceEntryExcepDesc(HGPdtToolDbDevice device, HGUInt entryName, const HGChar* excepDesc);
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceEntryExcepDesc(HGPdtToolDbDevice device, const HGChar* entryName, const HGChar* excepDesc);
/* 下载某个测试项关联的图像 */
HGEXPORT HGResult HGAPI HGPdtToolDb_DownloadDeviceEntryImage(HGPdtToolDbDevice device, HGUInt entryName,
const HGChar* ftpHost, HGUShort ftpPort, const HGChar* fileName);
HGEXPORT HGResult HGAPI HGPdtToolDb_DownloadDeviceEntryImage(HGPdtToolDbDevice device, const HGChar* entryName,
const HGChar* ftpHost, HGUShort ftpPort, HGUInt index, const HGChar* fileName);
/* 检查某个测试项关联的图像 */
HGEXPORT HGResult HGAPI HGPdtToolDb_CheckDeviceEntryImage(HGPdtToolDbDevice device, HGUInt entryName);
/* 获取某个测试项关联的图像数量 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceEntryImageCount(HGPdtToolDbDevice device, const HGChar* entryName, HGUInt* count);
/* 上传/更新某个测试项关联的图像 */
HGEXPORT HGResult HGAPI HGPdtToolDb_UploadDeviceEntryImage(HGPdtToolDbDevice device, HGUInt entryName,
/* 清理某个测试项关联的图像 */
HGEXPORT HGResult HGAPI HGPdtToolDb_ClearDeviceEntryImage(HGPdtToolDbDevice device, const HGChar* entryName);
/* 上传某个测试项关联的图像 */
HGEXPORT HGResult HGAPI HGPdtToolDb_UploadDeviceEntryImage(HGPdtToolDbDevice device, const HGChar* entryName,
const HGChar* ftpHost, HGUShort ftpPort, const HGChar* fileName);

File diff suppressed because it is too large Load Diff

View File

@ -36,6 +36,8 @@ public:
HGResult Export(const HGChar* xlsPath);
HGResult GetConfig(const HGChar *key, HGChar *value, HGUInt maxLen);
HGResult SetConfig(const HGChar* key, const HGChar *value);
HGResult GetEntryNameCnStr(const HGChar* entryName, HGChar* entryNameCnStr, HGUInt maxLen);
HGResult SetEntryNameCnStr(const HGChar* entryName, const HGChar* entryNameCnStr);
HGResult OpenDevice(const HGChar* sn, class HGPdtToolDbDeviceImpl **deviceImpl);
private:
@ -45,24 +47,14 @@ private:
static int GetConnectId(MYSQL* sql);
static int SetUserLoginInfo(MYSQL* sql, const HGChar* userName, int connectId, const std::string& takeUserName);
static int GetUserLoginInfo(MYSQL* sql, const HGChar* userName, int &connectId, std::string &takeUserName);
static HGUInt GetCols(MYSQL* sql, const HGChar *tableName, std::list<std::string> &cols);
int CreateFileTable(MYSQL* sql);
int CreateEntryNameCnStrTable(MYSQL* sql);
int CreateMainTestTable(MYSQL *sql);
// init tables
int CreateInitInspTestTable(MYSQL* sql);
int CreateInitInspDescTable(MYSQL* sql);
int CreateInitInspImageTable(MYSQL* sql);
// image tables
int CreateImgInspTestTable(MYSQL* sql);
int CreateImgInspDescTable(MYSQL* sql);
int CreateImgInspImageTable(MYSQL* sql);
// pre tables
int CreatePreInspTestTable(MYSQL* sql);
int CreatePreInspDescTable(MYSQL* sql);
int CreatePreInspImageTable(MYSQL* sql);
int CreateInspectionTable(MYSQL* sql, const HGChar* tableName);
int InitMainTestItem(const HGChar *sn);
int InitInspTestItem(const HGChar* tableName, const HGChar* sn);
int InitInspectionItem(const HGChar* tableName, const HGChar* sn);
private:
MYSQL* m_sql;
@ -84,25 +76,19 @@ public:
HGResult SetType(const HGChar* type);
HGResult GetVersion(HGChar* version, HGUInt maxLen);
HGResult SetVersion(const HGChar* version);
HGResult GetCurrEntry(HGUInt* entryName);
HGResult SetCurrEntry(HGUInt entryName);
HGResult GetEntryStatus(HGUInt entryName, HGUInt* entryStatus);
HGResult SetEntryStatus(HGUInt entryName, HGUInt entryStatus);
HGResult GetEntryExcepDesc(HGUInt entryName, HGChar* excepDesc, HGUInt maxLen);
HGResult SetEntryExcepDesc(HGUInt entryName, const HGChar* excepDesc);
HGResult DownloadEntryImage(HGUInt entryName, const HGChar *ftpHost, HGUShort ftpPort, const HGChar* fileName);
HGResult CheckEntryImage(HGUInt entryName);
HGResult UploadEntryImage(HGUInt entryName, const HGChar* ftpHost, HGUShort ftpPort, const HGChar *fileName);
HGResult GetEntryStatus(const HGChar* entryName, HGUInt* entryStatus);
HGResult SetEntryStatus(const HGChar* entryName, HGUInt entryStatus);
HGResult GetEntryExcepDesc(const HGChar* entryName, HGChar* excepDesc, HGUInt maxLen);
HGResult SetEntryExcepDesc(const HGChar* entryName, const HGChar* excepDesc);
HGResult DownloadEntryImage(const HGChar* entryName, const HGChar *ftpHost, HGUShort ftpPort, HGUInt index, const HGChar* fileName);
HGResult GetEntryImageCount(const HGChar* entryName, HGUInt *count);
HGResult ClearEntryImage(const HGChar* entryName);
HGResult UploadEntryImage(const HGChar* entryName, const HGChar* ftpHost, HGUShort ftpPort, const HGChar *fileName);
private:
HGResult GetProperty(const HGChar *prop, HGChar* str, HGUInt maxLen);
HGResult SetProperty(const HGChar* prop, const HGChar* str);
const HGChar* GetEntryNameStr(HGUInt entryName);
const HGChar* GetTestTableName(HGUInt entryName);
const HGChar* GetDescTableName(HGUInt entryName);
const HGChar* GetImageTableName(HGUInt entryName);
HGResult GetEntryImageRemotePath(const HGChar *tableName, const HGChar *entryNameStr, std::string &remotePath);
private:
// FTP

View File

@ -1,6 +1,21 @@
#include "base/HGDef.h"
#include "base/HGInc.h"
#include "../HGPdtToolDb/HGPdtToolDb.h"
#include <string>
static std::string AnsiToUtf8(const char* text)
{
int wlen = ::MultiByteToWideChar(CP_ACP, 0, text, -1, NULL, 0);
WCHAR* pUnicode = new WCHAR[wlen];
::MultiByteToWideChar(CP_ACP, 0, text, -1, pUnicode, wlen);
int len = ::WideCharToMultiByte(CP_UTF8, 0, pUnicode, -1, NULL, 0, NULL, NULL);
CHAR* pUTF8 = new CHAR[len];
::WideCharToMultiByte(CP_UTF8, 0, pUnicode, -1, pUTF8, len, NULL, NULL);
delete[] pUnicode;
std::string ret = pUTF8;
delete[] pUTF8;
return ret;
}
int main()
{
@ -11,10 +26,14 @@ int main()
//HGPdtToolDb_UploadFile(userMgr, "G100", "D:\\config.json");
//HGPdtToolDb_DownloadFile(userMgr, "G100", "D:\\123.txt");
std::string str = AnsiToUtf8("图像质量");
HGPdtToolDb_SetEntryNameCnStr(userMgr, "image_quality", str.c_str());
HGPdtToolDbDevice device = NULL;
HGPdtToolDb_OpenDevice(userMgr, "G654321", &device);
HGPdtToolDb_UploadDeviceEntryImage(device, HGPDTTOOLDB_ENTRYNAME_IMAGE_QUALITY, "192.168.1.70", 21, "D:\\1.jpg");
HGPdtToolDb_DownloadDeviceEntryImage(device, HGPDTTOOLDB_ENTRYNAME_IMAGE_QUALITY, "192.168.1.70", 21, "D:\\22.jpg");
HGPdtToolDb_SetDeviceEntryStatus(device, "image_quality", 1);
HGPdtToolDb_UploadDeviceEntryImage(device, "image_quality", "192.168.1.70", 21, "D:\\1.jpg");
HGPdtToolDb_DownloadDeviceEntryImage(device, "image_quality", "192.168.1.70", 21, 0, "D:\\22.jpg");
//HGPdtToolDb_CloseDevice(device);
HGPdtToolDb_Export(userMgr, "D:\\1.xls");