1011 lines
38 KiB
C++
1011 lines
38 KiB
C++
#include "ScanCfgDao.h"
|
|
#include <atlbase.h>
|
|
#include "../ConfigManager.h"
|
|
|
|
ScanCfgDao::ScanCfgDao(SQLite::Database* pdb) :BaseDao(pdb)
|
|
{
|
|
}
|
|
|
|
|
|
ScanCfgDao::~ScanCfgDao()
|
|
{
|
|
}
|
|
|
|
|
|
void ScanCfgDao::CreateTable()
|
|
{
|
|
if (m_pDB->tableExists(ScanCfg::TABLE_NAME))return;
|
|
char buffer[1024];
|
|
memset(buffer, '\0', sizeof(buffer));
|
|
//SQLite::Transaction transaction(*m_pDB);
|
|
string createsql = "CREATE TABLE %s(%s INTEGER,%s VARCHAR(20),%s VARCHAR(50),%s VARCHAR(50),UNIQUE(%s,%s,%s))";
|
|
sprintf_s(buffer, sizeof(buffer), createsql.c_str(),
|
|
ScanCfg::TABLE_NAME.c_str(),
|
|
ScanCfg::FIELD_CNO.c_str(),
|
|
ScanCfg::FIELD_CONFIG_NAME.c_str(),
|
|
ScanCfg::FIELD_SCAN_CODE.c_str(),
|
|
ScanCfg::FIELD_SCAN_VALUE.c_str(),
|
|
ScanCfg::FIELD_CNO.c_str(),
|
|
ScanCfg::FIELD_CONFIG_NAME.c_str(),
|
|
ScanCfg::FIELD_SCAN_CODE.c_str()
|
|
);
|
|
m_pDB->exec(buffer);
|
|
|
|
/*ScanParamCfg* scanParamCfg = ConfigManager::GetInstance()->GetScanParamCfg();
|
|
CorrectParamCfg* correctParamCfg = ConfigManager::GetInstance()->GetCorrectParamCfg();
|
|
SkyWritingCfg* skyWritingCfg = ConfigManager::GetInstance()->GetSkyWritingCfg();
|
|
Machine* machine = ConfigManager::GetInstance()->GetMachine();
|
|
machine->CheckScanParamCfgWhenCreate(scanParamCfg);
|
|
machine->CheckCorrectParamCfgWhenCreate(correctParamCfg);
|
|
machine->CheckSkyWritingCfgWhenCreate(skyWritingCfg);*/
|
|
}
|
|
|
|
void ScanCfgDao::Find(int cno, ScanCfgWrapper& cfg) {
|
|
FindScanParamCfg(cno, cfg.m_ScanParamCfg);
|
|
FindScanParamCfg(cno, cfg.m_HatchingParams);
|
|
FindScanParamCfg(cno, cfg.m_BorderParams);
|
|
FindScanParamCfg(cno, cfg.m_SupportParams);
|
|
FindScanTestCfg(cno, cfg.m_ScanTestCfg);
|
|
FindCorrectParamCfg(cno, cfg.m_CorrectParamCfg);
|
|
FindSkyWritingCfg(cno, cfg.m_SkyWritingCfg);
|
|
}
|
|
|
|
void ScanCfgDao::FindValue(int cno, string configname, map<string, string>& valueMap)
|
|
{
|
|
char buffer[1024];
|
|
string strsql = "SELECT %s,%s FROM %s WHERE %s='%s' AND %s=%d";
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(),
|
|
ScanCfg::FIELD_SCAN_CODE.c_str(),
|
|
ScanCfg::FIELD_SCAN_VALUE.c_str(),
|
|
ScanCfg::TABLE_NAME.c_str(),
|
|
ScanCfg::FIELD_CONFIG_NAME.c_str(),
|
|
configname.c_str(),
|
|
ScanCfg::FIELD_CNO.c_str(),cno);
|
|
SQLite::Statement query(*m_pDB, buffer);
|
|
while (query.executeStep()) {
|
|
valueMap[query.getColumn(ScanCfg::FIELD_SCAN_CODE.c_str()).getString()] = query.getColumn(ScanCfg::FIELD_SCAN_VALUE.c_str()).getString();
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::FindScanParamCfg(int cno,ScanParamCfg& cfg)
|
|
{
|
|
map<string, string> valuemap;
|
|
FindValue(cno, cfg.CONFIG_NAME, valuemap);
|
|
char buffer[256];
|
|
string strtemp = "INSERT INTO %s(%s,%s,%s,%s) VALUES(%d,'%s',";
|
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(),
|
|
ScanCfg::TABLE_NAME.c_str(),
|
|
ScanCfg::FIELD_CNO.c_str(),
|
|
ScanCfg::FIELD_CONFIG_NAME.c_str(),
|
|
ScanCfg::FIELD_SCAN_CODE.c_str(),
|
|
ScanCfg::FIELD_SCAN_VALUE.c_str(),
|
|
cno,
|
|
cfg.CONFIG_NAME.c_str()
|
|
);
|
|
string strsql = string(buffer) + "'%s','%s')";
|
|
vector<string> needins;
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_EDGE_LEVEL) != valuemap.end()) {
|
|
cfg.m_edge_level = stoi(valuemap[ScanParamCfg::FIELD_EDGE_LEVEL]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_EDGE_LEVEL.c_str(), to_string(cfg.m_edge_level).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_EDGE_LEVEL_MIN) != valuemap.end()) {
|
|
cfg.m_edge_level_min = stoi(valuemap[ScanParamCfg::FIELD_EDGE_LEVEL_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_EDGE_LEVEL_MIN.c_str(), to_string(cfg.m_edge_level_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_EDGE_LEVEL_MAX) != valuemap.end()) {
|
|
cfg.m_edge_level_max = stoi(valuemap[ScanParamCfg::FIELD_EDGE_LEVEL_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_EDGE_LEVEL_MAX.c_str(), to_string(cfg.m_edge_level_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_DELAY) != valuemap.end()) {
|
|
cfg.m_jump_delay = stoi(valuemap[ScanParamCfg::FIELD_JUMP_DELAY]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_DELAY.c_str(), to_string(cfg.m_jump_delay).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_DELAY_MIN) != valuemap.end()) {
|
|
cfg.m_jump_delay_min = stoi(valuemap[ScanParamCfg::FIELD_JUMP_DELAY_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_DELAY_MIN.c_str(), to_string(cfg.m_jump_delay_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_DELAY_MAX) != valuemap.end()) {
|
|
cfg.m_jump_delay_max = stoi(valuemap[ScanParamCfg::FIELD_JUMP_DELAY_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_DELAY_MAX.c_str(), to_string(cfg.m_jump_delay_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_SCAN_DELAY) != valuemap.end()) {
|
|
cfg.m_scan_delay = stoi(valuemap[ScanParamCfg::FIELD_SCAN_DELAY]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_SCAN_DELAY.c_str(), to_string(cfg.m_scan_delay).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_SCAN_DELAY_MIN) != valuemap.end()) {
|
|
cfg.m_scan_delay_min = stoi(valuemap[ScanParamCfg::FIELD_SCAN_DELAY_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_SCAN_DELAY_MIN.c_str(), to_string(cfg.m_scan_delay_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_SCAN_DELAY_MAX) != valuemap.end()) {
|
|
cfg.m_scan_delay_max = stoi(valuemap[ScanParamCfg::FIELD_SCAN_DELAY_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_SCAN_DELAY_MAX.c_str(), to_string(cfg.m_scan_delay_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_POLYGON_DELAY) != valuemap.end()) {
|
|
cfg.m_polygon_delay = stoi(valuemap[ScanParamCfg::FIELD_POLYGON_DELAY]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_POLYGON_DELAY.c_str(), to_string(cfg.m_polygon_delay).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_POLYGON_DELAY_MIN) != valuemap.end()) {
|
|
cfg.m_polygon_delay_min = stoi(valuemap[ScanParamCfg::FIELD_POLYGON_DELAY_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_POLYGON_DELAY_MIN.c_str(), to_string(cfg.m_polygon_delay_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_POLYGON_DELAY_MAX) != valuemap.end()) {
|
|
cfg.m_polygon_delay_max = stoi(valuemap[ScanParamCfg::FIELD_POLYGON_DELAY_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_POLYGON_DELAY_MAX.c_str(), to_string(cfg.m_polygon_delay_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_LASEROFF_DELAY) != valuemap.end()) {
|
|
cfg.m_laseroff_delay = stol(valuemap[ScanParamCfg::FIELD_LASEROFF_DELAY]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_LASEROFF_DELAY.c_str(), to_string(cfg.m_laseroff_delay).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_LASEROFF_DELAY_MIN) != valuemap.end()) {
|
|
cfg.m_laseroff_delay_min = stol(valuemap[ScanParamCfg::FIELD_LASEROFF_DELAY_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_LASEROFF_DELAY_MIN.c_str(), to_string(cfg.m_laseroff_delay_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_LASEROFF_DELAY_MAX) != valuemap.end()) {
|
|
cfg.m_laseroff_delay_max = stol(valuemap[ScanParamCfg::FIELD_LASEROFF_DELAY_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_LASEROFF_DELAY_MAX.c_str(), to_string(cfg.m_laseroff_delay_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_LASERON_DELAY) != valuemap.end()) {
|
|
cfg.m_laseron_delay = stol(valuemap[ScanParamCfg::FIELD_LASERON_DELAY]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_LASERON_DELAY.c_str(), to_string(cfg.m_laseron_delay).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_LASERON_DELAY_MIN) != valuemap.end()) {
|
|
cfg.m_laseron_delay_min = stol(valuemap[ScanParamCfg::FIELD_LASERON_DELAY_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_LASERON_DELAY_MIN.c_str(), to_string(cfg.m_laseron_delay_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_LASERON_DELAY_MAX) != valuemap.end()) {
|
|
cfg.m_laseron_delay_max = stol(valuemap[ScanParamCfg::FIELD_LASERON_DELAY_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_LASERON_DELAY_MAX.c_str(), to_string(cfg.m_laseron_delay_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_MIN_JUMP_DELAY) != valuemap.end()) {
|
|
cfg.m_min_jump_delay = stoi(valuemap[ScanParamCfg::FIELD_MIN_JUMP_DELAY]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_MIN_JUMP_DELAY.c_str(), to_string(cfg.m_min_jump_delay).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_MIN_JUMP_DELAY_MIN) != valuemap.end()) {
|
|
cfg.m_min_jump_delay_min = stoi(valuemap[ScanParamCfg::FIELD_MIN_JUMP_DELAY_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_MIN_JUMP_DELAY_MIN.c_str(), to_string(cfg.m_min_jump_delay_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_MIN_JUMP_DELAY_MAX) != valuemap.end()) {
|
|
cfg.m_min_jump_delay_max = stoi(valuemap[ScanParamCfg::FIELD_MIN_JUMP_DELAY_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_MIN_JUMP_DELAY_MAX.c_str(), to_string(cfg.m_min_jump_delay_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT) != valuemap.end()) {
|
|
cfg.m_jump_length_limit = stoi(valuemap[ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT.c_str(), to_string(cfg.m_jump_length_limit).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT_MIN) != valuemap.end()) {
|
|
cfg.m_jump_length_limit_min = stoi(valuemap[ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT_MIN.c_str(), to_string(cfg.m_jump_length_limit_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT_MAX) != valuemap.end()) {
|
|
cfg.m_jump_length_limit_max = stoi(valuemap[ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_LENGTH_LIMIT_MAX.c_str(), to_string(cfg.m_jump_length_limit_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_SPEED) != valuemap.end()) {
|
|
cfg.m_jump_speed = stod(valuemap[ScanParamCfg::FIELD_JUMP_SPEED]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_SPEED.c_str(), to_string(cfg.m_jump_speed).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_SPEED_MIN) != valuemap.end()) {
|
|
cfg.m_jump_speed_min = stod(valuemap[ScanParamCfg::FIELD_JUMP_SPEED_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_SPEED_MIN.c_str(), to_string(cfg.m_jump_speed_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_JUMP_SPEED_MAX) != valuemap.end()) {
|
|
cfg.m_jump_speed_max = stod(valuemap[ScanParamCfg::FIELD_JUMP_SPEED_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_JUMP_SPEED_MAX.c_str(), to_string(cfg.m_jump_speed_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_MARK_SPEED) != valuemap.end()) {
|
|
cfg.m_mark_speed = stod(valuemap[ScanParamCfg::FIELD_MARK_SPEED]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_MARK_SPEED.c_str(), to_string(cfg.m_mark_speed).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_MARK_SPEED_MIN) != valuemap.end()) {
|
|
cfg.m_mark_speed_min = stod(valuemap[ScanParamCfg::FIELD_MARK_SPEED_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_MARK_SPEED_MIN.c_str(), to_string(cfg.m_mark_speed_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanParamCfg::FIELD_MARK_SPEED_MAX) != valuemap.end()) {
|
|
cfg.m_mark_speed_max = stod(valuemap[ScanParamCfg::FIELD_MARK_SPEED_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanParamCfg::FIELD_MARK_SPEED_MAX.c_str(), to_string(cfg.m_mark_speed_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
|
|
if (!needins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t i = 0; i < needins.size(); ++i) {
|
|
m_pDB->exec(needins[i]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::FindScanTestCfg(int cno,ScanTestCfg& cfg)
|
|
{
|
|
map<string, string> valuemap;
|
|
FindValue(cno,ScanTestCfg::CONFIG_NAME, valuemap);
|
|
char buffer[256];
|
|
string strtemp = "INSERT INTO %s(%s,%s,%s,%s) VALUES(%d,'%s',";
|
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(),
|
|
ScanCfg::TABLE_NAME.c_str(),
|
|
ScanCfg::FIELD_CNO.c_str(),
|
|
ScanCfg::FIELD_CONFIG_NAME.c_str(),
|
|
ScanCfg::FIELD_SCAN_CODE.c_str(),
|
|
ScanCfg::FIELD_SCAN_VALUE.c_str(),
|
|
cno,
|
|
ScanTestCfg::CONFIG_NAME.c_str()
|
|
);
|
|
string strsql = string(buffer) + "'%s','%s')";
|
|
|
|
vector<string> needins;
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_DEBUG_SHAPE) != valuemap.end()) {
|
|
cfg.m_debug_shape = stoi(valuemap[ScanTestCfg::FIELD_DEBUG_SHAPE]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_DEBUG_SHAPE.c_str(), to_string(cfg.m_debug_shape).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_SHAPE_SIZE) != valuemap.end()) {
|
|
cfg.m_shape_size = stoi(valuemap[ScanTestCfg::FIELD_SHAPE_SIZE]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_SHAPE_SIZE.c_str(), to_string(cfg.m_shape_size).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_SHAPE_SIZE_MIN) != valuemap.end()) {
|
|
cfg.m_shape_size_min = stoi(valuemap[ScanTestCfg::FIELD_SHAPE_SIZE_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_SHAPE_SIZE_MIN.c_str(), to_string(cfg.m_shape_size_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_SHAPE_SIZE_MAX) != valuemap.end()) {
|
|
cfg.m_shape_size_max = stoi(valuemap[ScanTestCfg::FIELD_SHAPE_SIZE_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_SHAPE_SIZE_MAX.c_str(), to_string(cfg.m_shape_size_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_LASER_POWER) != valuemap.end()) {
|
|
cfg.m_laser_power = stoi(valuemap[ScanTestCfg::FIELD_LASER_POWER]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_LASER_POWER.c_str(), to_string(cfg.m_laser_power).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_LASER_POWER_MIN) != valuemap.end()) {
|
|
cfg.m_laser_power_min = stoi(valuemap[ScanTestCfg::FIELD_LASER_POWER_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_LASER_POWER_MIN.c_str(), to_string(cfg.m_laser_power_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_LASER_POWER_MAX) != valuemap.end()) {
|
|
cfg.m_laser_power_max = stoi(valuemap[ScanTestCfg::FIELD_LASER_POWER_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_LASER_POWER_MAX.c_str(), to_string(cfg.m_laser_power_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_DEFOCUS) != valuemap.end()) {
|
|
cfg.m_defocus = stod(valuemap[ScanTestCfg::FIELD_DEFOCUS]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_DEFOCUS.c_str(), to_string(cfg.m_defocus).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_DEFOCUS_MIN) != valuemap.end()) {
|
|
cfg.m_defocus_min = stod(valuemap[ScanTestCfg::FIELD_DEFOCUS_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_DEFOCUS_MIN.c_str(), to_string(cfg.m_defocus_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_DEFOCUS_MAX) != valuemap.end()) {
|
|
cfg.m_defocus_max = stod(valuemap[ScanTestCfg::FIELD_DEFOCUS_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_DEFOCUS_MAX.c_str(), to_string(cfg.m_defocus_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_IS_CYCLE) != valuemap.end()) {
|
|
cfg.m_is_cycle = (stoi(valuemap[ScanTestCfg::FIELD_IS_CYCLE]) > 0 ? true : false);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_IS_CYCLE.c_str(), to_string(cfg.m_is_cycle).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_CROSS_CENTER_X) != valuemap.end()) {
|
|
cfg.m_cross_x = stod(valuemap[ScanTestCfg::FIELD_CROSS_CENTER_X]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_CROSS_CENTER_X.c_str(), to_string(cfg.m_cross_x).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_CROSS_CENTER_Y) != valuemap.end()) {
|
|
cfg.m_cross_y = stod(valuemap[ScanTestCfg::FIELD_CROSS_CENTER_Y]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_CROSS_CENTER_Y.c_str(), to_string(cfg.m_cross_y).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_IS_AUTO_HEATING_SCANNER) != valuemap.end()) {
|
|
cfg.m_IsAutoHeatingScanner = (stoi(valuemap[ScanTestCfg::FIELD_IS_AUTO_HEATING_SCANNER]) > 0 ? true : false);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_IS_AUTO_HEATING_SCANNER.c_str(), cfg.m_IsAutoHeatingScanner ? "1" : "0");
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_MINUTES) != valuemap.end()) {
|
|
cfg.m_AutoHeatingScannerMinutes = stoul(valuemap[ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_MINUTES]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_MINUTES.c_str(), to_string(cfg.m_AutoHeatingScannerMinutes).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_SIZE) != valuemap.end()) {
|
|
cfg.m_AutoHeatingScannerSize = stoul(valuemap[ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_SIZE]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_SIZE.c_str(), to_string(cfg.m_AutoHeatingScannerSize).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_SPEED) != valuemap.end()) {
|
|
cfg.m_AutoHeatingScannerSpeed = stod(valuemap[ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_SPEED]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_AUTO_HEATING_SCANNER_SPEED.c_str(), to_string(cfg.m_AutoHeatingScannerSpeed).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_MARK_TEST_START_X) != valuemap.end()) {
|
|
cfg.m_mark_test_start_x = stod(valuemap[ScanTestCfg::FIELD_MARK_TEST_START_X]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_MARK_TEST_START_X.c_str(), to_string(cfg.m_mark_test_start_x).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_MARK_TEST_START_Y) != valuemap.end()) {
|
|
cfg.m_mark_test_start_y = stod(valuemap[ScanTestCfg::FIELD_MARK_TEST_START_Y]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_MARK_TEST_START_Y.c_str(), to_string(cfg.m_mark_test_start_y).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_MARK_TEST_END_X) != valuemap.end()) {
|
|
cfg.m_mark_test_end_x = stod(valuemap[ScanTestCfg::FIELD_MARK_TEST_END_X]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_MARK_TEST_END_X.c_str(), to_string(cfg.m_mark_test_end_x).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(ScanTestCfg::FIELD_MARK_TEST_END_Y) != valuemap.end()) {
|
|
cfg.m_mark_test_end_y = stod(valuemap[ScanTestCfg::FIELD_MARK_TEST_END_Y]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), ScanTestCfg::FIELD_MARK_TEST_END_Y.c_str(), to_string(cfg.m_mark_test_end_y).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (!needins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t i = 0; i < needins.size();++i) {
|
|
m_pDB->exec(needins[i]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::FindCorrectParamCfg(int cno,CorrectParamCfg& cfg)
|
|
{
|
|
map<string, string> valuemap;
|
|
FindValue(cno,CorrectParamCfg::CONFIG_NAME, valuemap);
|
|
char buffer[256];
|
|
string strtemp = "INSERT INTO %s(%s,%s,%s,%s) VALUES(%d,'%s',";
|
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(),
|
|
ScanCfg::TABLE_NAME.c_str(),
|
|
ScanCfg::FIELD_CNO.c_str(),
|
|
ScanCfg::FIELD_CONFIG_NAME.c_str(),
|
|
ScanCfg::FIELD_SCAN_CODE.c_str(),
|
|
ScanCfg::FIELD_SCAN_VALUE.c_str(),
|
|
cno,
|
|
CorrectParamCfg::CONFIG_NAME.c_str()
|
|
);
|
|
string strsql = string(buffer) + "'%s','%s')";
|
|
|
|
vector<string> needins;
|
|
if (valuemap.find(CorrectParamCfg::FIELD_X_MEASURE_MIN) != valuemap.end()) {
|
|
cfg.m_xmeasure_min = stod(valuemap[CorrectParamCfg::FIELD_X_MEASURE_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_X_MEASURE_MIN.c_str(), to_string(cfg.m_xmeasure_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_X_MEASURE_MAX) != valuemap.end()) {
|
|
cfg.m_xmeasure_max = stod(valuemap[CorrectParamCfg::FIELD_X_MEASURE_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_X_MEASURE_MAX.c_str(), to_string(cfg.m_xmeasure_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_Y_MEASURE_MIN) != valuemap.end()) {
|
|
cfg.m_ymeasure_min = stod(valuemap[CorrectParamCfg::FIELD_Y_MEASURE_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_Y_MEASURE_MIN.c_str(), to_string(cfg.m_ymeasure_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_Y_MEASURE_MAX) != valuemap.end()) {
|
|
cfg.m_ymeasure_max = stod(valuemap[CorrectParamCfg::FIELD_Y_MEASURE_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_Y_MEASURE_MAX.c_str(), to_string(cfg.m_ymeasure_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_X_POS_FIX) != valuemap.end()) {
|
|
cfg.m_xposfix = stod(valuemap[CorrectParamCfg::FIELD_X_POS_FIX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_X_POS_FIX.c_str(), to_string(cfg.m_xposfix).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_Y_POS_FIX) != valuemap.end()) {
|
|
cfg.m_yposfix = stod(valuemap[CorrectParamCfg::FIELD_Y_POS_FIX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_Y_POS_FIX.c_str(), to_string(cfg.m_yposfix).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_SCAN_ANGLE) != valuemap.end()) {
|
|
cfg.m_scan_angle = stod(valuemap[CorrectParamCfg::FIELD_SCAN_ANGLE]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_SCAN_ANGLE.c_str(), to_string(cfg.m_scan_angle).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_SCAN_ANGLE_MIN) != valuemap.end()) {
|
|
cfg.m_scan_angle_min = stod(valuemap[CorrectParamCfg::FIELD_SCAN_ANGLE_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_SCAN_ANGLE_MIN.c_str(), to_string(cfg.m_scan_angle_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_SCAN_ANGLE_MAX) != valuemap.end()) {
|
|
cfg.m_scan_angle_max = stod(valuemap[CorrectParamCfg::FIELD_SCAN_ANGLE_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_SCAN_ANGLE_MAX.c_str(), to_string(cfg.m_scan_angle_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_FIX_ANGLE) != valuemap.end()) {
|
|
cfg.m_fix_angle = stod(valuemap[CorrectParamCfg::FIELD_FIX_ANGLE]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_FIX_ANGLE.c_str(), to_string(cfg.m_fix_angle).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_FIX_ANGLE_MIN) != valuemap.end()) {
|
|
cfg.m_fix_angle_min = stod(valuemap[CorrectParamCfg::FIELD_FIX_ANGLE_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_FIX_ANGLE_MIN.c_str(), to_string(cfg.m_fix_angle_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_FIX_ANGLE_MAX) != valuemap.end()) {
|
|
cfg.m_fix_angle_max = stod(valuemap[CorrectParamCfg::FIELD_FIX_ANGLE_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_FIX_ANGLE_MAX.c_str(), to_string(cfg.m_fix_angle_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_X_CORRECT) != valuemap.end()) {
|
|
cfg.m_xcorrect = stod(valuemap[CorrectParamCfg::FIELD_X_CORRECT]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_X_CORRECT.c_str(), to_string(cfg.m_xcorrect).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_Y_CORRECT) != valuemap.end()) {
|
|
cfg.m_ycorrect = stod(valuemap[CorrectParamCfg::FIELD_Y_CORRECT]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_Y_CORRECT.c_str(), to_string(cfg.m_ycorrect).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_X_CORRECT_MIN) != valuemap.end()) {
|
|
cfg.m_xcorrect_min = stod(valuemap[CorrectParamCfg::FIELD_X_CORRECT_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_X_CORRECT_MIN.c_str(), to_string(cfg.m_xcorrect_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_X_CORRECT_MAX) != valuemap.end()) {
|
|
cfg.m_xcorrect_max = stod(valuemap[CorrectParamCfg::FIELD_X_CORRECT_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_X_CORRECT_MAX.c_str(), to_string(cfg.m_xcorrect_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_Y_CORRECT_MIN) != valuemap.end()) {
|
|
cfg.m_ycorrect_min = stod(valuemap[CorrectParamCfg::FIELD_Y_CORRECT_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_Y_CORRECT_MIN.c_str(), to_string(cfg.m_ycorrect_min).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_Y_CORRECT_MAX) != valuemap.end()) {
|
|
cfg.m_ycorrect_max = stod(valuemap[CorrectParamCfg::FIELD_Y_CORRECT_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_Y_CORRECT_MAX.c_str(), to_string(cfg.m_ycorrect_max).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_FACTOR_K) != valuemap.end()) {
|
|
cfg.m_FactorK = stod(valuemap[CorrectParamCfg::FIELD_FACTOR_K]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_FACTOR_K.c_str(), to_string(cfg.m_FactorK).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_IS_CORRECT_FILE_3D) != valuemap.end()) {
|
|
cfg.m_IsCorrectFile3D = stoi(valuemap[CorrectParamCfg::FIELD_IS_CORRECT_FILE_3D])>0?true:false;
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_IS_CORRECT_FILE_3D.c_str(), cfg.m_IsCorrectFile3D?"1":"0");
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_IS_DYNAMIC_FOCUS) != valuemap.end()) {
|
|
cfg.m_IsDynamicFocus = stoi(valuemap[CorrectParamCfg::FIELD_IS_DYNAMIC_FOCUS]) > 0 ? true : false;
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_IS_DYNAMIC_FOCUS.c_str(), cfg.m_IsDynamicFocus ? "1" : "0");
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_DEFOCUS_RATIO) != valuemap.end()) {
|
|
cfg.m_DefocusRatio = stod(valuemap[CorrectParamCfg::FIELD_DEFOCUS_RATIO]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_DEFOCUS_RATIO.c_str(), to_string(cfg.m_DefocusRatio).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_DEFOCUS_RATIO_MIN) != valuemap.end()) {
|
|
cfg.m_DefocusRatioMin = stod(valuemap[CorrectParamCfg::FIELD_DEFOCUS_RATIO_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_DEFOCUS_RATIO_MIN.c_str(), to_string(cfg.m_DefocusRatioMin).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(CorrectParamCfg::FIELD_DEFOCUS_RATIO_MAX) != valuemap.end()) {
|
|
cfg.m_DefocusRatioMax = stod(valuemap[CorrectParamCfg::FIELD_DEFOCUS_RATIO_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), CorrectParamCfg::FIELD_DEFOCUS_RATIO_MAX.c_str(), to_string(cfg.m_DefocusRatioMax).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (!needins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t i = 0; i < needins.size(); ++i) {
|
|
m_pDB->exec(needins[i]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::FindSkyWritingCfg(int cno,SkyWritingCfg& cfg)
|
|
{
|
|
map<string, string> valuemap;
|
|
FindValue(cno,SkyWritingCfg::CONFIG_NAME, valuemap);
|
|
|
|
char buffer[256];
|
|
string strtemp = "INSERT INTO %s(%s,%s,%s,%s) VALUES(%d,'%s',";
|
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(),
|
|
ScanCfg::TABLE_NAME.c_str(),
|
|
ScanCfg::FIELD_CNO.c_str(),
|
|
ScanCfg::FIELD_CONFIG_NAME.c_str(),
|
|
ScanCfg::FIELD_SCAN_CODE.c_str(),
|
|
ScanCfg::FIELD_SCAN_VALUE.c_str(),
|
|
cno,
|
|
SkyWritingCfg::CONFIG_NAME.c_str()
|
|
);
|
|
string strsql = string(buffer) + "'%s','%s')";
|
|
|
|
vector<string> needins;
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_IS_ENABLE) != valuemap.end()) {
|
|
cfg.m_IsEnable = (stoi(valuemap[SkyWritingCfg::FIELD_IS_ENABLE])>0?true:false);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_IS_ENABLE.c_str(), cfg.m_IsEnable?"1":"0");
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_TIMELAG) != valuemap.end()) {
|
|
cfg.m_Timelag = stod(valuemap[SkyWritingCfg::FIELD_TIMELAG]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_TIMELAG.c_str(), to_string(cfg.m_Timelag).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_TIMELAG_MIN) != valuemap.end()) {
|
|
cfg.m_TimelagMin = stod(valuemap[SkyWritingCfg::FIELD_TIMELAG_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_TIMELAG_MIN.c_str(), to_string(cfg.m_TimelagMin).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_TIMELAG_MAX) != valuemap.end()) {
|
|
cfg.m_TimelagMax = stod(valuemap[SkyWritingCfg::FIELD_TIMELAG_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_TIMELAG_MAX.c_str(), to_string(cfg.m_TimelagMax).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_LASER_ON_SHIFT) != valuemap.end()) {
|
|
cfg.m_LaserOnShift = stol(valuemap[SkyWritingCfg::FIELD_LASER_ON_SHIFT]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_LASER_ON_SHIFT.c_str(), to_string(cfg.m_LaserOnShift).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_LASER_ON_SHIFT_MIN) != valuemap.end()) {
|
|
cfg.m_LaserOnShiftMin = stol(valuemap[SkyWritingCfg::FIELD_LASER_ON_SHIFT_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_LASER_ON_SHIFT_MIN.c_str(), to_string(cfg.m_LaserOnShiftMin).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_LASER_ON_SHIFT_MAX) != valuemap.end()) {
|
|
cfg.m_LaserOnShiftMax = stol(valuemap[SkyWritingCfg::FIELD_LASER_ON_SHIFT_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_LASER_ON_SHIFT_MAX.c_str(), to_string(cfg.m_LaserOnShiftMax).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_NPREV) != valuemap.end()) {
|
|
cfg.m_Nprev = stoi(valuemap[SkyWritingCfg::FIELD_NPREV]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_NPREV.c_str(), to_string(cfg.m_Nprev).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_NPREV_MIN) != valuemap.end()) {
|
|
cfg.m_NprevMin = stoi(valuemap[SkyWritingCfg::FIELD_NPREV_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_NPREV_MIN.c_str(), to_string(cfg.m_NprevMin).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_NPREV_MAX) != valuemap.end()) {
|
|
cfg.m_NprevMax = stoi(valuemap[SkyWritingCfg::FIELD_NPREV_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_NPREV_MAX.c_str(), to_string(cfg.m_NprevMax).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_NPOST) != valuemap.end()) {
|
|
cfg.m_Npost = stoi(valuemap[SkyWritingCfg::FIELD_NPOST]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_NPOST.c_str(), to_string(cfg.m_Npost).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_NPOST_MIN) != valuemap.end()) {
|
|
cfg.m_NpostMin = stoi(valuemap[SkyWritingCfg::FIELD_NPOST_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_NPOST_MIN.c_str(), to_string(cfg.m_NpostMin).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_NPOST_MAX) != valuemap.end()) {
|
|
cfg.m_NpostMax = stoi(valuemap[SkyWritingCfg::FIELD_NPOST_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_NPOST_MAX.c_str(), to_string(cfg.m_NpostMax).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_MODE) != valuemap.end()) {
|
|
cfg.m_Mode = stoi(valuemap[SkyWritingCfg::FIELD_MODE]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_MODE.c_str(), to_string(cfg.m_Mode).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_LIMITE) != valuemap.end()) {
|
|
cfg.m_Limite = stod(valuemap[SkyWritingCfg::FIELD_LIMITE]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_LIMITE.c_str(), to_string(cfg.m_Limite).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_LIMITE_MIN) != valuemap.end()) {
|
|
cfg.m_LimiteMin = stod(valuemap[SkyWritingCfg::FIELD_LIMITE_MIN]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_LIMITE_MIN.c_str(), to_string(cfg.m_LimiteMin).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (valuemap.find(SkyWritingCfg::FIELD_LIMITE_MAX) != valuemap.end()) {
|
|
cfg.m_LimiteMax = stod(valuemap[SkyWritingCfg::FIELD_LIMITE_MAX]);
|
|
}
|
|
else {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), SkyWritingCfg::FIELD_LIMITE_MAX.c_str(), to_string(cfg.m_LimiteMax).c_str());
|
|
needins.push_back(buffer);
|
|
}
|
|
|
|
if (!needins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t i = 0; i < needins.size(); ++i) {
|
|
m_pDB->exec(needins[i]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
|
|
}
|
|
|
|
void ScanCfgDao::Save(int laserid, ScanCfgWrapper& cfg)
|
|
{
|
|
SaveParamCfg(laserid, cfg.m_ScanParamCfg);
|
|
SaveParamCfg(laserid, cfg.m_HatchingParams);
|
|
SaveParamCfg(laserid, cfg.m_BorderParams);
|
|
SaveParamCfg(laserid, cfg.m_SupportParams);
|
|
SaveScanTestCfg(laserid, cfg.m_ScanTestCfg);
|
|
SaveCorrectCfg(laserid, cfg.m_CorrectParamCfg);
|
|
SaveSkyWritingCfg(laserid, cfg.m_SkyWritingCfg);
|
|
}
|
|
|
|
void ScanCfgDao::SaveParamCfg(int cno,ScanParamCfg& cfg)
|
|
{
|
|
vector<string> ups;
|
|
cfg.GetUpdateSql(cno,ups);
|
|
for (size_t i = 0; i < ups.size();++i) {
|
|
m_pDB->exec(ups[i]);
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::SaveScanTestCfg(int cno,ScanTestCfg& cfg)
|
|
{
|
|
vector<string> ups;
|
|
cfg.GetUpdateSql(cno,ups);
|
|
for (size_t i = 0; i < ups.size(); ++i) {
|
|
m_pDB->exec(ups[i]);
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::SaveCorrectCfg(int cno,CorrectParamCfg& cfg) {
|
|
vector<string> ups;
|
|
cfg.GetUpdateSql(cno,ups);
|
|
for (size_t i = 0; i < ups.size(); ++i) {
|
|
m_pDB->exec(ups[i]);
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::SaveSkyWritingCfg(int cno,SkyWritingCfg& cfg)
|
|
{
|
|
vector<string> ups;
|
|
cfg.GetUpdateSql(cno,ups);
|
|
for (size_t i = 0; i < ups.size(); ++i) {
|
|
m_pDB->exec(ups[i]);
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::Export(int cno, ScanCfgWrapper& cfg, stringstream& ss)
|
|
{
|
|
ExportParamCfg(cno, cfg.m_ScanParamCfg, ss);
|
|
ExportParamCfg(cno, cfg.m_HatchingParams, ss);
|
|
ExportParamCfg(cno, cfg.m_BorderParams, ss);
|
|
ExportParamCfg(cno, cfg.m_SupportParams, ss);
|
|
ExportScanTestCfg(cno, cfg.m_ScanTestCfg, ss);
|
|
ExportCorrectCfg(cno, cfg.m_CorrectParamCfg, ss);
|
|
ExportSkyWritingCfg(cno, cfg.m_SkyWritingCfg, ss);
|
|
}
|
|
|
|
void ScanCfgDao::ExportParamCfg(int cno,ScanParamCfg& cfg, stringstream &sql)
|
|
{
|
|
vector<string> ups;
|
|
cfg.GetUpdateSql(cno,ups);
|
|
for (size_t i = 0; i < ups.size();++i) {
|
|
sql << ups[i] << "\n";
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::ExportScanTestCfg(int cno,ScanTestCfg& cfg, stringstream &sql)
|
|
{
|
|
vector<string> ups;
|
|
cfg.GetUpdateSql(cno,ups);
|
|
for (size_t i = 0; i < ups.size();++i) {
|
|
sql << ups[i] << "\n";
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::ExportCorrectCfg(int cno,CorrectParamCfg& cfg, stringstream &sql)
|
|
{
|
|
vector<string> ups;
|
|
cfg.GetUpdateSql(cno,ups);
|
|
for (size_t i = 0; i < ups.size();++i) {
|
|
sql << ups[i] << "\n";
|
|
}
|
|
}
|
|
|
|
void ScanCfgDao::ExportSkyWritingCfg(int cno,SkyWritingCfg& cfg, stringstream &sql)
|
|
{
|
|
vector<string> ups;
|
|
cfg.GetUpdateSql(cno,ups);
|
|
for (size_t i = 0; i < ups.size();++i) {
|
|
sql << ups[i] << "\n";
|
|
}
|
|
}
|