增加保存设备名,设备类型和固件版本的列

This commit is contained in:
luoliangyi 2022-12-23 14:17:36 +08:00
parent a20dcac343
commit 6ac18b3f95
6 changed files with 232 additions and 79 deletions

View File

@ -230,6 +230,72 @@ HGResult HGAPI HGPdtToolDb_CloseDevice(HGPdtToolDbDevice device)
return HGBASE_ERR_OK;
}
HGResult HGAPI HGPdtToolDb_GetDeviceName(HGPdtToolDbDevice device, HGChar* name, HGUInt maxLen)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->GetName(name, maxLen);
}
HGResult HGAPI HGPdtToolDb_SetDeviceName(HGPdtToolDbDevice device, const HGChar* name)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->SetName(name);
}
HGResult HGAPI HGPdtToolDb_GetDeviceType(HGPdtToolDbDevice device, HGChar* type, HGUInt maxLen)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->GetType(type, maxLen);
}
HGResult HGAPI HGPdtToolDb_SetDeviceType(HGPdtToolDbDevice device, const HGChar* type)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->SetType(type);
}
HGResult HGAPI HGPdtToolDb_GetDeviceVersion(HGPdtToolDbDevice device, HGChar* version, HGUInt maxLen)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->GetVersion(version, maxLen);
}
HGResult HGAPI HGPdtToolDb_SetDeviceVersion(HGPdtToolDbDevice device, const HGChar* version)
{
if (NULL == device)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbDeviceImpl* deviceImpl = (HGPdtToolDbDeviceImpl*)device;
return deviceImpl->SetVersion(version);
}
HGResult HGAPI HGPdtToolDb_GetDeviceCurrEntry(HGPdtToolDbDevice device, HGUInt* entryName)
{
if (NULL == device)

View File

@ -21,6 +21,12 @@ HGPdtToolDb_GetUserConfig
HGPdtToolDb_SetUserConfig
HGPdtToolDb_OpenDevice
HGPdtToolDb_CloseDevice
HGPdtToolDb_GetDeviceName
HGPdtToolDb_SetDeviceName
HGPdtToolDb_GetDeviceType
HGPdtToolDb_SetDeviceType
HGPdtToolDb_GetDeviceVersion
HGPdtToolDb_SetDeviceVersion
HGPdtToolDb_GetDeviceCurrEntry
HGPdtToolDb_SetDeviceCurrEntry
HGPdtToolDb_GetDeviceEntryStatus

View File

@ -162,6 +162,24 @@ HGEXPORT HGResult HGAPI HGPdtToolDb_OpenDevice(HGPdtToolDbUserMgr userMgr, const
/* 关闭设备 */
HGEXPORT HGResult HGAPI HGPdtToolDb_CloseDevice(HGPdtToolDbDevice device);
/* 获取设备名称 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceName(HGPdtToolDbDevice device, HGChar* name, HGUInt maxLen);
/* 设置设备名称 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceName(HGPdtToolDbDevice device, const HGChar* name);
/* 获取设备类型 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceType(HGPdtToolDbDevice device, HGChar* type, HGUInt maxLen);
/* 设置设备类型 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceType(HGPdtToolDbDevice device, const HGChar* type);
/* 获取设备版本 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceVersion(HGPdtToolDbDevice device, HGChar* version, HGUInt maxLen);
/* 设置设备版本 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceVersion(HGPdtToolDbDevice device, const HGChar* version);
/* 获取当前的测试项, 0表示还未测试0xFFFFFFFF表示已经测试完成 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetDeviceCurrEntry(HGPdtToolDbDevice device, HGUInt *entryName);
@ -184,7 +202,7 @@ HGEXPORT HGResult HGAPI HGPdtToolDb_SetDeviceEntryExcepDesc(HGPdtToolDbDevice de
HGEXPORT HGResult HGAPI HGPdtToolDb_DownloadDeviceEntryImage(HGPdtToolDbDevice device, HGUInt entryName,
const HGChar* ftpHost, HGUShort ftpPort, const HGChar* fileName);
/* 上传某个测试项关联的图像 */
/* 上传/更新某个测试项关联的图像 */
HGEXPORT HGResult HGAPI HGPdtToolDb_UploadDeviceEntryImage(HGPdtToolDbDevice device, HGUInt entryName,
const HGChar* ftpHost, HGUShort ftpPort, const HGChar* fileName);

View File

@ -26,27 +26,6 @@ const HGChar* INITTIAL_INSPECTION[] =
"scanning_sensor"
};
const HGChar* INITTIAL_INSPECTION_CN[] =
{
"拨码开关校验",
"检查船型开关功能",
"设备上电并观察开机状态",
"检查液晶显示",
"清理纸道功能确认",
"按键功能检测",
"计数模式检测",
"歪斜检测",
"分纸电机检测",
"CIS原图初检",
"主机风扇功能检测",
"超声波模块检验",
"LED灯状态检查",
"复位检查",
"走纸检查",
"开盖传感器检查",
"扫描传感器检查"
};
const HGChar* IMAGE_INSPECTION[] =
{
"configure_speed_mode",
@ -64,23 +43,6 @@ const HGChar* IMAGE_INSPECTION[] =
"mech_paper_feeding_inclination"
};
const HGChar* IMAGE_INSPECTION_CN[] =
{
"配置速度模式",
"放置校正纸",
"自动平场校正",
"重启设备",
"扫描图像质量确认",
"色卡纸成像质量评估",
"色卡纸偏色成像质量评估",
"清晰度质量评估",
"畸变修正",
"设置休眠",
"歪斜挡位检测",
"分纸强度检测",
"机械走纸倾斜检测"
};
const HGChar* PRESSURE_INSPECTION[] =
{
"single_page_test_1",
@ -90,15 +52,6 @@ const HGChar* PRESSURE_INSPECTION[] =
"clear_roller_count"
};
const HGChar* PRESSURE_INSPECTION_CN[] =
{
"单张测试1",
"单张测试2",
"单张测试3",
"压力测试2轮",
"清除滚轴计数"
};
HGPdtToolDbUserMgrImpl::HGPdtToolDbUserMgrImpl()
{
@ -719,7 +672,9 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
cmd += ", main_test.create_user";
cmd += ", main_test.last_modify_time";
cmd += ", main_test.last_modify_user";
cmd += ", main_test.current_entry";
cmd += ", main_test.device_name";
cmd += ", main_test.device_type";
cmd += ", main_test.device_version";
for (int i = 0; i < sizeof(INITTIAL_INSPECTION) / sizeof(const HGChar*); ++i)
{
@ -771,12 +726,17 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
return HGBASE_ERR_FAIL;
}
const HGChar* MAIN_TEST_CN[] = {"序列号", "创建时间", "创建用户", "最后修改时间", "最后修改用户", "当前测试项"};
const HGChar* MAIN_TEST_CN[] = {"设备序列号", "创建时间", "创建用户", "最后修改时间", "最后修改用户",
"设备名", "设备类型", "设备固件版本"};
for (int i = 0; i < sizeof(MAIN_TEST_CN) / sizeof(const HGChar*); ++i)
{
std::string title = (std::string)MAIN_TEST_CN[i] + "\t";
fwrite(title.c_str(), 1, title.size(), file);
}
const HGChar* INITTIAL_INSPECTION_CN[] = {"拨码开关校验", "检查船型开关功能", "设备上电并观察开机状态", "检查液晶显示",
"清理纸道功能确认", "按键功能检测", "计数模式检测", "歪斜检测", "分纸电机检测", "CIS原图初检", "主机风扇功能检测",
"超声波模块检验", "LED灯状态检查", "复位检查", "走纸检查", "开盖传感器检查", "扫描传感器检查"};
for (int i = 0; i < sizeof(INITTIAL_INSPECTION_CN) / sizeof(const HGChar*); ++i)
{
std::string title = (std::string)INITTIAL_INSPECTION_CN[i] + "\t";
@ -784,6 +744,10 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
std::string descTitle = (std::string)INITTIAL_INSPECTION_CN[i] + "异常说明" + "\t";
fwrite(descTitle.c_str(), 1, descTitle.size(), file);
}
const HGChar* IMAGE_INSPECTION_CN[] = {"配置速度模式", "放置校正纸", "自动平场校正", "重启设备", "扫描图像质量确认",
"色卡纸成像质量评估", "色卡纸偏色成像质量评估", "清晰度质量评估", "畸变修正", "设置休眠", "歪斜挡位检测",
"分纸强度检测", "机械走纸倾斜检测"};
for (int i = 0; i < sizeof(IMAGE_INSPECTION_CN) / sizeof(const HGChar*); ++i)
{
std::string title = (std::string)IMAGE_INSPECTION_CN[i] + "\t";
@ -791,6 +755,8 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
std::string descTitle = (std::string)IMAGE_INSPECTION_CN[i] + "异常说明" + "\t";
fwrite(descTitle.c_str(), 1, descTitle.size(), file);
}
const HGChar* PRESSURE_INSPECTION_CN[] = {"单张测试1", "单张测试2", "单张测试3", "压力测试2轮","清除滚轴计数"};
for (int i = 0; i < sizeof(PRESSURE_INSPECTION_CN) / sizeof(const HGChar*); ++i)
{
std::string title = (std::string)PRESSURE_INSPECTION_CN[i] + "\t";
@ -808,19 +774,17 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
{
std::string value;
if (i < 5)
unsigned int baseCols = sizeof(MAIN_TEST_CN) / sizeof(const HGChar*);
if (i < baseCols)
{
assert(NULL != row[i]);
value = row[i];
}
else if (i == 5)
{
assert(NULL != row[i]);
value = GetEntryNameCnStr((HGUInt)atoll(row[i]));
if (NULL != row[i])
{
value = Utf8ToStdString(row[i]);
}
}
else
{
if (0 == (i - 6) % 2)
if (0 == (i - baseCols) % 2)
{
assert(NULL != row[i]);
const HGChar* ENTRY_STATUS_CN[] = { "未测试", "不通过", "不支持", "通过" };
@ -980,21 +944,6 @@ void HGPdtToolDbUserMgrImpl::RemoveDevice(class HGPdtToolDbDeviceImpl* deviceImp
}
}
const HGChar* HGPdtToolDbUserMgrImpl::GetEntryNameCnStr(HGUInt entryName)
{
if (0 == entryName)
return "未开始测试";
else if (0xFFFFFFFF == entryName)
return "已完成测试";
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH && entryName <= HGPDTTOOLDB_ENTRYNAME_SCANNING_SENSOR)
return INITTIAL_INSPECTION_CN[entryName - HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH];
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
return IMAGE_INSPECTION_CN[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_1 && entryName <= HGPDTTOOLDB_ENTRYNAME_CLEAR_ROLLER_COUNT)
return PRESSURE_INSPECTION_CN[entryName - HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_1];
return NULL;
}
std::string HGPdtToolDbUserMgrImpl::GetPassword(MYSQL* sql, const HGChar* userName)
{
assert(NULL != sql);
@ -1131,6 +1080,9 @@ int HGPdtToolDbUserMgrImpl::CreateMainTestTable(MYSQL* sql)
cmd += ", last_modify_time datetime";
cmd += ", last_modify_user text not null";
cmd += ", current_entry int unsigned default 0";
cmd += ", device_name text";
cmd += ", device_type text";
cmd += ", device_version text";
cmd += ");";
return mysql_query(sql, cmd.c_str());
}
@ -1281,6 +1233,36 @@ HGPdtToolDbDeviceImpl::~HGPdtToolDbDeviceImpl()
m_userMgr->RemoveDevice(this);
}
HGResult HGPdtToolDbDeviceImpl::GetName(HGChar* name, HGUInt maxLen)
{
return GetProperty("device_name", name, maxLen);
}
HGResult HGPdtToolDbDeviceImpl::SetName(const HGChar* name)
{
return SetProperty("device_name", name);
}
HGResult HGPdtToolDbDeviceImpl::GetType(HGChar* type, HGUInt maxLen)
{
return GetProperty("device_type", type, maxLen);
}
HGResult HGPdtToolDbDeviceImpl::SetType(const HGChar* type)
{
return SetProperty("device_type", type);
}
HGResult HGPdtToolDbDeviceImpl::GetVersion(HGChar* version, HGUInt maxLen)
{
return GetProperty("device_version", version, maxLen);
}
HGResult HGPdtToolDbDeviceImpl::SetVersion(const HGChar* version)
{
return SetProperty("device_version", version);
}
HGResult HGPdtToolDbDeviceImpl::GetCurrEntry(HGUInt* entryName)
{
if (NULL == m_userMgr->m_sql)
@ -1332,7 +1314,7 @@ HGResult HGPdtToolDbDeviceImpl::SetCurrEntry(HGUInt entryName)
const HGChar* entryNameStr = GetEntryNameStr(entryName);
if (NULL == entryNameStr)
{
return HGBASE_ERR_FAIL;
return HGBASE_ERR_INVALIDARG;
}
}
@ -1653,6 +1635,80 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
return HGBASE_ERR_OK;
}
HGResult HGPdtToolDbDeviceImpl::GetProperty(const HGChar* prop, HGChar* str, HGUInt maxLen)
{
assert(NULL != prop && 0 != *prop);
if (NULL == m_userMgr->m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == str || 0 == maxLen)
{
return HGBASE_ERR_INVALIDARG;
}
char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "select %s from main_test where sn = '%s';", prop, m_sn.c_str());
int ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret)
{
return HGBASE_ERR_FAIL;
}
MYSQL_RES* sqlRes = mysql_use_result(m_userMgr->m_sql);
if (NULL == sqlRes)
{
return HGBASE_ERR_FAIL;
}
MYSQL_ROW row = mysql_fetch_row(sqlRes);
if (NULL == row)
{
mysql_free_result(sqlRes);
return HGBASE_ERR_FAIL;
}
if (NULL == row[0])
{
*str = '\0';
mysql_free_result(sqlRes);
return HGBASE_ERR_OK;
}
if (maxLen < strlen(row[0]) + 1)
{
mysql_free_result(sqlRes);
return HGBASE_ERR_FAIL;
}
strcpy(str, row[0]);
mysql_free_result(sqlRes);
return HGBASE_ERR_OK;
}
HGResult HGPdtToolDbDeviceImpl::SetProperty(const HGChar* prop, const HGChar* str)
{
assert(NULL != prop && 0 != *prop);
if (NULL == m_userMgr->m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == str || 0 == *str)
{
return HGBASE_ERR_INVALIDARG;
}
char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "update main_test set %s = '%s', last_modify_time = now(), last_modify_user = '%s' where sn = '%s';",
prop, str, m_userMgr->m_userName.c_str(), m_sn.c_str());
int ret = mysql_query(m_userMgr->m_sql, sqlCmd);
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
}
const HGChar* HGPdtToolDbDeviceImpl::GetEntryNameStr(HGUInt entryName)
{
if (entryName >= HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH && entryName <= HGPDTTOOLDB_ENTRYNAME_SCANNING_SENSOR)

View File

@ -40,8 +40,6 @@ public:
private:
void RemoveDevice(class HGPdtToolDbDeviceImpl* deviceImpl);
static const HGChar* GetEntryNameCnStr(HGUInt entryName);
static std::string GetPassword(MYSQL* sql, const HGChar* userName);
static std::string GetAuthString(MYSQL* sql, const HGChar* pwd);
static int GetConnectId(MYSQL* sql);
@ -75,8 +73,15 @@ public:
HGPdtToolDbDeviceImpl(class HGPdtToolDbUserMgrImpl* userMgr, const HGChar* sn);
~HGPdtToolDbDeviceImpl();
HGResult GetName(HGChar* name, HGUInt maxLen);
HGResult SetName(const HGChar* name);
HGResult GetType(HGChar* type, HGUInt maxLen);
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);
@ -85,6 +90,8 @@ public:
HGResult UploadEntryImage(HGUInt 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);

View File

@ -17,7 +17,7 @@ int main()
HGPdtToolDb_DownloadDeviceEntryImage(device, HGPDTTOOLDB_ENTRYNAME_IMAGE_QUALITY, "127.0.0.1", 21, "D:\\22.jpg");
//HGPdtToolDb_CloseDevice(device);
//HGPdtToolDb_Export(userMgr, "D:\\1.xls");
HGPdtToolDb_Export(userMgr, "D:\\1.xls");
HGPdtToolDb_DestroyUserMgr(userMgr);
}