This commit is contained in:
13038267101 2022-12-29 11:22:34 +08:00
commit 92999ffc48
5 changed files with 109 additions and 60 deletions

View File

@ -7,8 +7,7 @@ Dialog_UserInput::Dialog_UserInput(ui_helper::value_type type, const QString &ti
QDialog(parent),
ui(new Ui::Dialog_UserInput),
m_type(type),
m_title(title),
m_desc(desc)
m_title(title)
{
ui->setupUi(this);
@ -18,23 +17,25 @@ Dialog_UserInput::Dialog_UserInput(ui_helper::value_type type, const QString &ti
ui->comboBox->setVisible(false);
if (type == ui_helper::VAL_TYPE_BOOL)
{
ui->label->setText(QString::fromStdWString(m_desc));
ui->label->setText(QString::fromStdWString(desc));
ui->radioButton_yes->setVisible(true);
ui->radioButton_no->setVisible(true);
}
else if (type == ui_helper::VAL_TYPE_INT || type == ui_helper::VAL_TYPE_FLOAT || type == ui_helper::VAL_TYPE_STRING)
{
ui->label->setText(QString::fromStdWString(m_desc));
ui->label->setText(QString::fromStdWString(desc));
ui->lineEdit->setVisible(true);
}
else if (type == ui_helper::VAL_TYPE_RANGE)
else if (type == ui_helper::VAL_TYPE_TIPS_VAL)
{
while(*m_desc != '\0')
ui_helper::PINFOTIPS p = (ui_helper::PINFOTIPS)desc;
while(*(p->desc) != '\0')
{
ui->comboBox->addItem(QString::number(*m_desc));
m_desc++;
ui->comboBox->addItem(QString::number(*(p->desc)));
p->desc++;
}
ui->label->setText(QString::fromStdWString(p->info));
ui->comboBox->setVisible(true);
}
@ -75,7 +76,7 @@ parameter *Dialog_UserInput::getParam()
{
param->m_sData = ui->lineEdit->text().toStdWString();
}
else if (m_type == ui_helper::VAL_TYPE_RANGE)
else if (m_type == ui_helper::VAL_TYPE_TIPS_VAL)
{
param->m_iData = ui->comboBox->currentText().toInt();
}
@ -115,7 +116,7 @@ size_t UserInputParams::get_size()
{
if (m_type == ui_helper::VAL_TYPE_BOOL)
return sizeof(bool);
if (m_type == ui_helper::VAL_TYPE_INT || m_type == ui_helper::VAL_TYPE_RANGE)
if (m_type == ui_helper::VAL_TYPE_INT || m_type == ui_helper::VAL_TYPE_TIPS_VAL)
return sizeof(int);
if (m_type == ui_helper::VAL_TYPE_FLOAT)
return sizeof(double);
@ -128,7 +129,7 @@ void *UserInputParams::get_data()
{
if (m_type == ui_helper::VAL_TYPE_BOOL)
return &m_bData;
if (m_type == ui_helper::VAL_TYPE_INT || m_type == ui_helper::VAL_TYPE_RANGE)
if (m_type == ui_helper::VAL_TYPE_INT || m_type == ui_helper::VAL_TYPE_TIPS_VAL)
return &m_iData;
if (m_type == ui_helper::VAL_TYPE_FLOAT)
return &m_fData;

View File

@ -45,7 +45,6 @@ private:
ui_helper::value_type m_type;
QString m_title;
const wchar_t *m_desc;
};
#endif // DIALOG_USERINPUT_H

View File

@ -68,15 +68,14 @@ public:
VAL_TYPE_BOOL = 0,
VAL_TYPE_INT,
VAL_TYPE_FLOAT,
VAL_TYPE_STRING,
VAL_TYPE_RANGE,
VAL_TYPE_STRING,
VAL_TYPE_CUSTOM, // custom data, such as gamma table ...
VAL_TYPE_TIPS_VAL, // status info tips and data info
};
typedef struct _info// value_type == VAL_TUPE_TIPS
{
const wchar_t* desc; // desc is int
const wchar_t* desc; //data
const wchar_t* info; //info tips
}_INFOTIPS, * PINFOTIPS;
// get testing parameter ...

View File

@ -5,7 +5,7 @@
#include "base/HGUtility.h"
#include "HGString.h"
const HGChar* INITTIAL_INSPECTION[] =
const HGChar* INITIAL_INSPECTION[] =
{
"dial_switch",
"rocker_switch",
@ -113,10 +113,9 @@ HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const
}
if (0 != CreateFileTable(sql) || 0 != CreateMainTestTable(sql)
|| 0 != CreateInitInspTestTable(sql) || 0 != CreateInitInspDescTable(sql)
|| 0 != CreateImgInspTestTable(sql) || 0 != CreateImgInspDescTable(sql)
|| 0 != CreatePreInspTestTable(sql) || 0 != CreatePreInspDescTable(sql)
|| 0 != CreateInspImageTable(sql))
|| 0 != CreateInitInspTestTable(sql) || 0 != CreateInitInspDescTable(sql) || 0 != CreateInitInspImageTable(sql)
|| 0 != CreateImgInspTestTable(sql) || 0 != CreateImgInspDescTable(sql) || 0 != CreateImgInspImageTable(sql)
|| 0 != CreatePreInspTestTable(sql) || 0 != CreatePreInspDescTable(sql) || 0 != CreatePreInspImageTable(sql))
{
mysql_close(sql);
return HGBASE_ERR_FAIL;
@ -679,12 +678,12 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
cmd += ", main_test.device_type";
cmd += ", main_test.device_version";
for (int i = 0; i < sizeof(INITTIAL_INSPECTION) / sizeof(const HGChar*); ++i)
for (int i = 0; i < sizeof(INITIAL_INSPECTION) / sizeof(const HGChar*); ++i)
{
cmd += ", initial_inspection_test.";
cmd += INITTIAL_INSPECTION[i];
cmd += INITIAL_INSPECTION[i];
cmd += ", initial_inspection_desc.";
cmd += INITTIAL_INSPECTION[i];
cmd += INITIAL_INSPECTION[i];
}
for (int i = 0; i < sizeof(IMAGE_INSPECTION) / sizeof(const HGChar*); ++i)
{
@ -916,10 +915,16 @@ HGResult HGPdtToolDbUserMgrImpl::OpenDevice(const HGChar* sn, class HGPdtToolDbD
return HGBASE_ERR_FAIL;
}
if (0 != InitMainTestItem(sn) || 0 != InitInspTestItem("initial_inspection_test", sn)
|| 0 != InitInspTestItem("initial_inspection_desc", sn) || 0 != InitInspTestItem("image_inspection_test", sn)
|| 0 != InitInspTestItem("image_inspection_desc", sn) || 0 != InitInspTestItem("pressure_inspection_test", sn)
|| 0 != InitInspTestItem("pressure_inspection_desc", sn) || 0 != InitInspTestItem("inspection_image", sn))
if (0 != InitMainTestItem(sn)
|| 0 != InitInspTestItem("initial_inspection_test", sn)
|| 0 != InitInspTestItem("initial_inspection_desc", sn)
|| 0 != InitInspTestItem("initial_inspection_image", sn)
|| 0 != InitInspTestItem("image_inspection_test", sn)
|| 0 != InitInspTestItem("image_inspection_desc", sn)
|| 0 != InitInspTestItem("image_inspection_image", sn)
|| 0 != InitInspTestItem("pressure_inspection_test", sn)
|| 0 != InitInspTestItem("pressure_inspection_desc", sn)
|| 0 != InitInspTestItem("pressure_inspection_image", sn))
{
mysql_query(m_sql, "rollback;");
return HGBASE_ERR_FAIL;
@ -1095,11 +1100,11 @@ int HGPdtToolDbUserMgrImpl::CreateInitInspTestTable(MYSQL* sql)
assert(NULL != sql);
std::string cmd = "create table if not exists initial_inspection_test (sn varchar(20) not null primary key";
int size = sizeof(INITTIAL_INSPECTION) / sizeof(const HGChar*);
int size = sizeof(INITIAL_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += INITTIAL_INSPECTION[i];
cmd += INITIAL_INSPECTION[i];
cmd += " tinyint unsigned default 0";
}
cmd += ");";
@ -1111,11 +1116,27 @@ int HGPdtToolDbUserMgrImpl::CreateInitInspDescTable(MYSQL* sql)
assert(NULL != sql);
std::string cmd = "create table if not exists initial_inspection_desc (sn varchar(20) not null primary key";
int size = sizeof(INITTIAL_INSPECTION) / sizeof(const HGChar*);
int size = sizeof(INITIAL_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += INITTIAL_INSPECTION[i];
cmd += INITIAL_INSPECTION[i];
cmd += " text";
}
cmd += ");";
return mysql_query(sql, cmd.c_str());
}
int HGPdtToolDbUserMgrImpl::CreateInitInspImageTable(MYSQL* sql)
{
assert(NULL != sql);
std::string cmd = "create table if not exists initial_inspection_image (sn varchar(20) not null primary key";
int size = sizeof(INITIAL_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += INITIAL_INSPECTION[i];
cmd += " text";
}
cmd += ");";
@ -1154,6 +1175,22 @@ int HGPdtToolDbUserMgrImpl::CreateImgInspDescTable(MYSQL* sql)
return mysql_query(sql, cmd.c_str());
}
int HGPdtToolDbUserMgrImpl::CreateImgInspImageTable(MYSQL* sql)
{
assert(NULL != sql);
std::string cmd = "create table if not exists image_inspection_image (sn varchar(20) not null primary key";
int size = sizeof(IMAGE_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += IMAGE_INSPECTION[i];
cmd += " text";
}
cmd += ");";
return mysql_query(sql, cmd.c_str());
}
int HGPdtToolDbUserMgrImpl::CreatePreInspTestTable(MYSQL* sql)
{
assert(NULL != sql);
@ -1186,16 +1223,16 @@ int HGPdtToolDbUserMgrImpl::CreatePreInspDescTable(MYSQL* sql)
return mysql_query(sql, cmd.c_str());
}
int HGPdtToolDbUserMgrImpl::CreateInspImageTable(MYSQL* sql)
int HGPdtToolDbUserMgrImpl::CreatePreInspImageTable(MYSQL* sql)
{
assert(NULL != sql);
std::string cmd = "create table if not exists inspection_image (sn varchar(20) not null primary key";
int size = sizeof(IMAGE_INSPECTION) / sizeof(const HGChar*);
std::string cmd = "create table if not exists pressure_inspection_image (sn varchar(20) not null primary key";
int size = sizeof(PRESSURE_INSPECTION) / sizeof(const HGChar*);
for (int i = 0; i < size; ++i)
{
cmd += ", ";
cmd += IMAGE_INSPECTION[i];
cmd += PRESSURE_INSPECTION[i];
cmd += " text";
}
cmd += ");";
@ -1542,16 +1579,15 @@ HGResult HGPdtToolDbDeviceImpl::DownloadEntryImage(HGUInt entryName, const HGCha
return HGBASE_ERR_INVALIDARG;
}
const HGChar* entryNameStr = NULL;
if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
entryNameStr = IMAGE_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
if (NULL == entryNameStr)
const HGChar* entryNameStr = GetEntryNameStr(entryName);
const HGChar* tableName = GetImageTableName(entryName);
if (NULL == entryNameStr || NULL == tableName)
{
return HGBASE_ERR_INVALIDARG;
}
std::string remotePath;
HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
HGResult res = GetEntryImageRemotePath(tableName, entryNameStr, remotePath);
if (HGBASE_ERR_OK != res)
{
return res;
@ -1572,16 +1608,15 @@ HGResult HGPdtToolDbDeviceImpl::CheckEntryImage(HGUInt entryName)
return HGBASE_ERR_FAIL;
}
const HGChar* entryNameStr = NULL;
if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
entryNameStr = IMAGE_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
if (NULL == entryNameStr)
const HGChar* entryNameStr = GetEntryNameStr(entryName);
const HGChar* tableName = GetImageTableName(entryName);
if (NULL == entryNameStr || NULL == tableName)
{
return HGBASE_ERR_INVALIDARG;
}
std::string remotePath;
HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
HGResult res = GetEntryImageRemotePath(tableName, entryNameStr, remotePath);
if (HGBASE_ERR_OK != res)
{
return res;
@ -1607,16 +1642,15 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
return HGBASE_ERR_INVALIDARG;
}
const HGChar* entryNameStr = NULL;
if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
entryNameStr = IMAGE_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
if (NULL == entryNameStr)
const HGChar* entryNameStr = GetEntryNameStr(entryName);
const HGChar* tableName = GetImageTableName(entryName);
if (NULL == entryNameStr || NULL == tableName)
{
return HGBASE_ERR_INVALIDARG;
}
std::string remotePath;
HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
HGResult res = GetEntryImageRemotePath(tableName, entryNameStr, remotePath);
if (HGBASE_ERR_OK != res)
{
return res;
@ -1624,9 +1658,7 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
if (remotePath.empty())
{
HGChar uuid[256];
HGBase_GetUuid(uuid, 256);
remotePath = std::string("/upload/") + uuid;
remotePath = std::string("/upload/") + m_sn + "/" + entryNameStr + ".jpg";
}
res = UploadFile(ftpHost, ftpPort, fileName, remotePath.c_str());
@ -1644,7 +1676,7 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
return HGBASE_ERR_FAIL;
}
sprintf(sqlCmd, "update inspection_image set %s = '%s' where sn = '%s';",
sprintf(sqlCmd, "update %s set %s = '%s' where sn = '%s';", tableName,
entryNameStr, remotePath.c_str(), m_sn.c_str());
ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret)
@ -1745,7 +1777,7 @@ HGResult HGPdtToolDbDeviceImpl::SetProperty(const HGChar* prop, const HGChar* st
const HGChar* HGPdtToolDbDeviceImpl::GetEntryNameStr(HGUInt entryName)
{
if (entryName >= HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH && entryName <= HGPDTTOOLDB_ENTRYNAME_SCANNING_SENSOR)
return INITTIAL_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH];
return INITIAL_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH];
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
return IMAGE_INSPECTION[entryName - HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE];
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_1 && entryName <= HGPDTTOOLDB_ENTRYNAME_CLEAR_ROLLER_COUNT)
@ -1775,14 +1807,26 @@ const HGChar* HGPdtToolDbDeviceImpl::GetDescTableName(HGUInt entryName)
return NULL;
}
HGResult HGPdtToolDbDeviceImpl::GetEntryImageRemotePath(const HGChar* entryNameStr, std::string& remotePath)
const HGChar* HGPdtToolDbDeviceImpl::GetImageTableName(HGUInt entryName)
{
if (entryName >= HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH && entryName <= HGPDTTOOLDB_ENTRYNAME_SCANNING_SENSOR)
return "initial_inspection_image";
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_CONFIGURE_SPEED_MODE && entryName <= HGPDTTOOLDB_ENTRYNAME_MECH_PAPER_FEEDING_INCLINATION)
return "image_inspection_image";
else if (entryName >= HGPDTTOOLDB_ENTRYNAME_SINGLE_PAGE_TEST_1 && entryName <= HGPDTTOOLDB_ENTRYNAME_CLEAR_ROLLER_COUNT)
return "pressure_inspection_image";
return NULL;
}
HGResult HGPdtToolDbDeviceImpl::GetEntryImageRemotePath(const HGChar* tableName, const HGChar* entryNameStr, std::string& remotePath)
{
assert(NULL != m_userMgr->m_sql);
assert(NULL != entryNameStr);
assert(NULL != tableName && 0 != *tableName);
assert(NULL != entryNameStr && 0 != *entryNameStr);
remotePath.clear();
char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "select %s from inspection_image where sn = '%s';", entryNameStr, m_sn.c_str());
sprintf(sqlCmd, "select %s from %s where sn = '%s';", entryNameStr, tableName, m_sn.c_str());
int ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret)
{

View File

@ -48,13 +48,18 @@ private:
int CreateFileTable(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 CreateInspImageTable(MYSQL* sql);
int CreatePreInspImageTable(MYSQL* sql);
int InitMainTestItem(const HGChar *sn);
int InitInspTestItem(const HGChar* tableName, const HGChar* sn);
@ -96,7 +101,8 @@ private:
const HGChar* GetEntryNameStr(HGUInt entryName);
const HGChar* GetTestTableName(HGUInt entryName);
const HGChar* GetDescTableName(HGUInt entryName);
HGResult GetEntryImageRemotePath(const HGChar *entryNameStr, std::string &remotePath);
const HGChar* GetImageTableName(HGUInt entryName);
HGResult GetEntryImageRemotePath(const HGChar *tableName, const HGChar *entryNameStr, std::string &remotePath);
private:
// FTP