983 lines
22 KiB
C++
983 lines
22 KiB
C++
#include "widget.h"
|
||
#include "ui_widget.h"
|
||
|
||
|
||
#pragma execution_character_set("utf-8")
|
||
Widget::Widget(QWidget* parent)
|
||
: QWidget(parent)
|
||
, ui(new Ui::Widget)
|
||
, m_iColorIndex(1), m_iDpiIndex(0)
|
||
, jsonparams{ 0 }, params{ 0 }
|
||
, m_run(true), m_auireable(false)
|
||
{
|
||
ui->setupUi(this);
|
||
m_drv.reset(new Correction_Tool());
|
||
OnInit();
|
||
ui->le_ex_number->setValidator(new QIntValidator(1,100));
|
||
|
||
}
|
||
|
||
Widget::~Widget()
|
||
{
|
||
m_drv.reset();
|
||
if (m_updateimgshow.joinable())
|
||
{
|
||
m_auireable = false;
|
||
m_run = false;
|
||
m_updateimgshow.join();
|
||
}
|
||
delete ui;
|
||
}
|
||
|
||
void Widget::OnCbnSelchangeCmbUsbs()
|
||
{
|
||
auto list =ui->comboBox_2->currentText().split(" ");
|
||
if(list.size()<2)
|
||
return;
|
||
int vid,pid;
|
||
vid = list[0].toInt(nullptr,16);
|
||
pid = list[1].toInt(nullptr,16);
|
||
m_drv->open(vid,pid);
|
||
emit usbchange(m_drv->getscannerserial());
|
||
}
|
||
|
||
|
||
|
||
void Widget::OnBnClickedBtnstart()
|
||
{
|
||
if(!m_drv->is_connect())
|
||
{
|
||
QMessageBox::warning(this,"¾¯¸æ","ɨÃèÒÇδÁ¬½Ó£¡");
|
||
return ;
|
||
}
|
||
ui->tabWidget->setCurrentIndex(1);
|
||
SetPic_format();
|
||
m_drv->reset();
|
||
Scan();
|
||
SetEnableShow(true);
|
||
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnstop()
|
||
{
|
||
m_drv->Stop_scan();
|
||
}
|
||
|
||
void Widget::OnCbnSelChangeColor()
|
||
{
|
||
m_iColorIndex = ui->comboBox_4->currentIndex();
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnRefresh()
|
||
{
|
||
RefreshUSBList();
|
||
OnCbnSelchangeCmbUsbs();
|
||
}
|
||
|
||
void Widget::OnCbnSelChangeA4FlatModel()
|
||
{
|
||
//auto correctdata = m_drv->GetFlatData();
|
||
updateA4Config(jsonparams);
|
||
UpdateToFace();
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnaup()
|
||
{
|
||
UpdateGains(1, true);
|
||
UpdateToFace();
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnadown()
|
||
{
|
||
UpdateGains(2, false);
|
||
UpdateToFace();
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnbup()
|
||
{
|
||
UpdateGains(3, true);
|
||
UpdateToFace();
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnbdown()
|
||
{
|
||
UpdateGains(4, false);
|
||
UpdateToFace();
|
||
}
|
||
|
||
|
||
bool Widget::RefreshUSBList()
|
||
{
|
||
ui->comboBox_2->clear();
|
||
auto ret = m_drv->getonlinedevice();
|
||
auto info = ret.begin();
|
||
int i = 0;
|
||
while (info != ret.end())
|
||
{
|
||
QString strinfo;
|
||
strinfo.sprintf("%04x %04x", info->vid, info->pid);
|
||
ui->comboBox_2->addItem(strinfo, i);
|
||
info++;
|
||
i++;
|
||
}
|
||
emit usbchange(m_drv->getscannerserial());
|
||
return true;
|
||
}
|
||
|
||
void Widget::OnInit()
|
||
{
|
||
connect(this, &Widget::retdevMessageout, this, &Widget::retDevStr);
|
||
connect(this,&Widget::usbchange,this,&Widget::changespeedmode,Qt::UniqueConnection);
|
||
setFixedSize(1200, 850);//ÉèÖÿòÌå´óС
|
||
ui->lineEdit_48->setReadOnly(true);
|
||
ui->lineEdit_48->setAlignment(Qt::AlignHCenter);
|
||
CreateScanFile();
|
||
bool b_list = RefreshUSBList();
|
||
calldevs.clear();
|
||
if (b_list)
|
||
{
|
||
OnCbnSelchangeCmbUsbs();
|
||
}
|
||
Exposures1 = {
|
||
ui->lineEdit_3, ui->lineEdit_4,
|
||
ui->lineEdit_5, ui->lineEdit_20,
|
||
ui->lineEdit_18,ui->lineEdit_19 };
|
||
Gains1 = {
|
||
ui->lineEdit_6, ui->lineEdit_7,
|
||
ui->lineEdit_8, ui->lineEdit_9,
|
||
ui->lineEdit_11,ui->lineEdit_10,
|
||
ui->lineEdit_27,ui->lineEdit_22,
|
||
ui->lineEdit_31,ui->lineEdit_23,
|
||
ui->lineEdit_21,ui->lineEdit_25 };
|
||
Offsets1 = {
|
||
ui->lineEdit_16,ui->lineEdit_13,
|
||
ui->lineEdit_17,ui->lineEdit_14,
|
||
ui->lineEdit_12,ui->lineEdit_15,
|
||
ui->lineEdit_30,ui->lineEdit_24,
|
||
ui->lineEdit_29,ui->lineEdit_32,
|
||
ui->lineEdit_28,ui->lineEdit_26 };
|
||
|
||
|
||
auto callback = [this](bool stoped, int num) {
|
||
if (!stoped)
|
||
{
|
||
QString str;
|
||
str.sprintf("%d", num);
|
||
ui->lineEdit_48->setText(str);
|
||
}
|
||
};
|
||
SetCallBack(callback);
|
||
|
||
m_updateimgshow = std::thread(&Widget::showfun, this);
|
||
LoadCfg();
|
||
ui->tabWidget->setCurrentIndex(0);
|
||
auto callbackdevMessges = [this](const char *ptr)
|
||
{
|
||
calldevs = ptr;
|
||
retdevMessageout(ptr);
|
||
};
|
||
}
|
||
|
||
void Widget::Scan()
|
||
{
|
||
GScanCap cap;
|
||
memset(&cap,0,sizeof(GScanCap));
|
||
if(ui->checkBox_3->isChecked())
|
||
cap.is_correct =true;
|
||
else
|
||
cap.is_correct =false;
|
||
// if(m_drv->getscannerserial()==ScannerSerial::G300Serial)
|
||
// cap.paperSize =TwSS::A4;
|
||
// else
|
||
// cap.paperSize=TwSS::A3;
|
||
cap.paperSize = TwSS::None;
|
||
cap.imageProcess.autoCrop=false;
|
||
cap.imageProcess.autoDescrew=false;
|
||
cap.imageProcess.fillBlackRect=false;
|
||
cap.pixelType=ui->comboBox_4->currentIndex()?ColorMode::RGB:ColorMode::Gray;
|
||
cap.scanCount=65535;
|
||
cap.imageProcess.gamma=1.0;
|
||
cap.scanSide.duplex=1;
|
||
cap.imageProcess.contrast=0;
|
||
cap.imageProcess.brightness=0;
|
||
cap.imageProcess.AutoCrop_threshold=40;
|
||
cap.imageProcess.noise=8;
|
||
cap.imageProcess.indent=5;
|
||
cap.imageProcess.is_convex=true;
|
||
cap.imageProcess.filter=FILTER_NONE;
|
||
cap.resolution=ui->comboBox_3->currentText().toInt();
|
||
cap.resolution_native=200;
|
||
cap.hardwareParam.doubleFeedDetection=true;
|
||
cap.multiOutput=MultiOutput::Unused;
|
||
cap.hardwareParam.bindingDetection = false;
|
||
cap.hardwareParam.skewDetection.enable = false;
|
||
m_drv->config_params(cap);
|
||
this_thread::sleep_for(std::chrono::milliseconds(1000));
|
||
m_drv->Scanner_StartScan(-1);
|
||
}
|
||
|
||
void Widget::updateA4Config(CaptureParams& pValues)
|
||
{
|
||
switch (ui->comboBox->currentIndex())
|
||
{
|
||
case 0:
|
||
memcpy(params.Exposures, pValues.correctColorExposure, sizeof(pValues.correctColorExposure));
|
||
memcpy(params.Gain, pValues.correctColorGain, sizeof(pValues.correctColorGain));
|
||
memcpy(params.Offset, pValues.correctColorOffset, sizeof(pValues.correctColorOffset));
|
||
break;
|
||
case 1:
|
||
memcpy(params.Exposures, pValues.colorExposure, sizeof(pValues.colorExposure));
|
||
memcpy(params.Gain, pValues.colorGain, sizeof(pValues.colorGain));
|
||
memcpy(params.Offset, pValues.colorOffset, sizeof(pValues.colorOffset));
|
||
break;
|
||
case 2:
|
||
memcpy(params.Exposures, pValues.correctGrayExposure, sizeof(pValues.correctGrayExposure));
|
||
memcpy(params.Gain, pValues.correctGrayGain, sizeof(pValues.correctGrayGain));
|
||
memcpy(params.Offset, pValues.correctGrayOffset, sizeof(pValues.correctGrayOffset));
|
||
break;
|
||
case 3:
|
||
memcpy(params.Exposures, pValues.grayExposure, sizeof(pValues.grayExposure));
|
||
memcpy(params.Gain, pValues.grayGain, sizeof(pValues.grayGain));
|
||
memcpy(params.Offset, pValues.grayOffset, sizeof(pValues.grayOffset));
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Widget::LoadCfg()
|
||
{
|
||
jsonConfig.ReadParam(jsonparams);
|
||
memcpy(params.Exposures, jsonparams.correctColorExposure, sizeof(jsonparams.correctColorExposure));
|
||
memcpy(params.Gain, jsonparams.correctColorGain, sizeof(jsonparams.correctColorGain));
|
||
memcpy(params.Offset, jsonparams.correctColorOffset, sizeof(jsonparams.correctColorOffset));
|
||
UpdateToFace();
|
||
}
|
||
|
||
void Widget::UpdateGains(int id, bool increase)
|
||
{
|
||
int number = 1;
|
||
if(ui->le_ex_number->text().toInt()>0)
|
||
number = ui->le_ex_number->text().toInt();
|
||
if ((id == 1 || id == 3) && increase)
|
||
{
|
||
int startindex = id == 1 ? 0 : 6;
|
||
for (size_t i = startindex; i < (6 + startindex); i++)
|
||
{
|
||
params.Gain[i] = params.Gain[i]+number;
|
||
}
|
||
}
|
||
else if ((id == 2 || id == 4) && !increase)
|
||
{
|
||
int startindex = id == 2 ? 0 : 6;
|
||
for (size_t i = startindex; i < (6 + startindex); i++)
|
||
{
|
||
params.Gain[i] = params.Gain[i]-number;
|
||
}
|
||
}
|
||
}
|
||
|
||
void Widget::updatefunc()
|
||
{
|
||
|
||
if(m_drv->Updata(updateFilePath,[&](long downloadsize,long filesize)->void{
|
||
ui->progressBar->setRange(0, filesize);
|
||
ui->progressBar->setValue(downloadsize);
|
||
}))
|
||
QMessageBox::warning(this, "Ìáʾ", "¸üÐÂÍê³É"); //µ¯´°Ìáʾ
|
||
else
|
||
QMessageBox::warning(this,"Ìáʾ","¸üÐÂʧ°Ü");
|
||
}
|
||
|
||
void Widget::UpdateToFace()
|
||
{
|
||
if (!Exposures1.empty() && !Gains1.empty() && !Offsets1.empty())
|
||
{
|
||
for (size_t i = 0; i < Exposures1.size(); i++)
|
||
{
|
||
Exposures1[i]->setText(QString::number(params.Exposures[i]));
|
||
}
|
||
for (size_t i = 0; i < Gains1.size(); i++)
|
||
{
|
||
Gains1[i]->setText(QString::number(params.Gain[i]));
|
||
}
|
||
for (size_t i = 0; i < Offsets1.size(); i++)
|
||
{
|
||
Offsets1[i]->setText(QString::number(params.Offset[i]));
|
||
}
|
||
}
|
||
}
|
||
|
||
void Widget::UItoParam(int type)
|
||
{
|
||
for (size_t i = 0; i < Exposures1.size(); i++)
|
||
{
|
||
params.Exposures[i]=Exposures1[i]->text().toInt();
|
||
}
|
||
for (size_t i = 0; i < Gains1.size(); i++)
|
||
{
|
||
params.Gain[i]=Gains1[i]->text().toInt();
|
||
}
|
||
for (size_t i = 0; i < Offsets1.size(); i++)
|
||
{
|
||
params.Offset[i]=Offsets1[i]->text().toInt();
|
||
}
|
||
switch (type) {
|
||
case 0:
|
||
memcpy(jsonparams.correctColorGain,params.Gain,sizeof(params.Gain));
|
||
memcpy(jsonparams.correctColorOffset,params.Offset,sizeof(params.Offset));
|
||
memcpy(jsonparams.correctColorExposure,params.Exposures,sizeof(params.Exposures));
|
||
break;
|
||
case 1:
|
||
memcpy(jsonparams.colorGain,params.Gain,sizeof(params.Gain));
|
||
memcpy(jsonparams.colorOffset,params.Offset,sizeof(params.Offset));
|
||
memcpy(jsonparams.colorExposure,params.Exposures,sizeof(params.Exposures));
|
||
break;
|
||
case 2:
|
||
memcpy(jsonparams.correctGrayGain,params.Gain,sizeof(params.Gain));
|
||
memcpy(jsonparams.correctGrayOffset,params.Offset,sizeof(params.Offset));
|
||
memcpy(jsonparams.correctGrayExposure,params.Exposures,sizeof(params.Exposures));
|
||
break;
|
||
case 3:
|
||
memcpy(jsonparams.grayGain,params.Gain,sizeof(params.Gain));
|
||
memcpy(jsonparams.grayOffset,params.Offset,sizeof(params.Offset));
|
||
memcpy(jsonparams.grayExposure,params.Exposures,sizeof(params.Exposures));
|
||
break;
|
||
}
|
||
}
|
||
|
||
///flag = TURE type = 0 »ñÈ¡»ÒÉ«
|
||
///flag = FLASE type = 0 ÉèÖûÒÉ«
|
||
///flag = TURE type = 1 »ñÈ¡²ÊÉ«
|
||
///flag = flase type = 1 ÉèÖòÊÉ«
|
||
///flag = TURE type = 2 »ñÈ¡UVSP
|
||
///flag = flase type = 2 ÉèÖÃUVSP
|
||
void Widget::OnGetOrSetSp(bool flag, int type)
|
||
{
|
||
int sp = 0;
|
||
QString str_sp = "";
|
||
|
||
if (flag)
|
||
{
|
||
m_drv->GetSptime(type, sp);
|
||
str_sp.sprintf("%d", sp);
|
||
switch (type)
|
||
{
|
||
case 0:
|
||
ui->lineEdit_67->setText(str_sp);
|
||
break;
|
||
case 1:
|
||
ui->lineEdit_66->setText(str_sp);
|
||
break;
|
||
case 2:
|
||
ui->lineEdit_68->setText(str_sp);
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
switch (type)
|
||
{
|
||
case 0:
|
||
str_sp = ui->lineEdit_67->text();
|
||
break;
|
||
case 1:
|
||
str_sp = ui->lineEdit_66->text();
|
||
break;
|
||
case 2:
|
||
str_sp = ui->lineEdit_68->text();
|
||
break;
|
||
}
|
||
if (!str_sp.isEmpty())
|
||
{
|
||
int value = str_sp.toInt();
|
||
m_drv->SetSptime(type, value);
|
||
}
|
||
}
|
||
}
|
||
|
||
void Widget::UpdateSleepTime(bool flag)
|
||
{
|
||
int sp = 0;
|
||
QString str_sp;
|
||
if (flag)
|
||
{
|
||
m_drv->GetSleepTime(sp);
|
||
str_sp.sprintf("%d", sp);
|
||
if (str_sp.isEmpty())
|
||
{
|
||
QMessageBox::warning(nullptr, "¾¯¸æ", "»ñÈ¡SPʱ¼äʧ°Ü");
|
||
return;
|
||
}
|
||
else
|
||
ui->lineEdit_69->setText(str_sp);
|
||
}
|
||
else
|
||
{
|
||
str_sp = ui->lineEdit_69->text();
|
||
if (str_sp.isEmpty())
|
||
{
|
||
QMessageBox::warning(nullptr, "¾¯¸æ", "ÇëÊäÈëSPʱ¼ä");
|
||
return;
|
||
}
|
||
int val = str_sp.toInt();
|
||
m_drv->SetSleepTime(val);
|
||
}
|
||
}
|
||
|
||
void Widget::OnGetOrSetSpeedMode(bool flag)
|
||
{
|
||
int sp = -1;
|
||
int index = -1;
|
||
if (flag)
|
||
{
|
||
m_drv->GetSpeedMode(sp,flag);
|
||
for(int x=0;x<SpeedModeMap.size();x++)
|
||
{
|
||
if(SpeedModeMap[x].speedmode == sp && SpeedModeMap[x].m_mode==m_drv->getscannerserial())
|
||
{
|
||
index=SpeedModeMap[x].comboxindex;
|
||
break;
|
||
}
|
||
}
|
||
if (index == -1)
|
||
{
|
||
QMessageBox::warning(nullptr, "¾¯¸æ", "»ñÈ¡SPʧ°Ü");
|
||
return;
|
||
}
|
||
ui->cbx_speed_mode->setCurrentIndex(index);
|
||
}
|
||
else
|
||
{
|
||
for(int x=0;x<SpeedModeMap.size();x++)
|
||
if(SpeedModeMap[x].modename==std::string(ui->cbx_speed_mode->currentText().toUtf8()))
|
||
{
|
||
sp=SpeedModeMap[x].speedmode;
|
||
break;
|
||
}
|
||
if (sp==-1)
|
||
{
|
||
QMessageBox::warning(nullptr, "¾¯¸æ", "ÇëÊäÈëSP");
|
||
return;
|
||
}
|
||
if(m_drv->getscannerserial()== ScannerSerial::G10039Serial)
|
||
{
|
||
m_drv->SetSptime(1,SP_139[ui->cbx_speed_mode->currentIndex()].colorsp);
|
||
m_drv->SetSptime(0,SP_139[ui->cbx_speed_mode->currentIndex()].graysp);
|
||
}
|
||
if(m_drv->getscannerserial()== ScannerSerial::G20039Serial)
|
||
{
|
||
m_drv->SetSptime(1,0x27c);
|
||
m_drv->SetSptime(1,0x774);
|
||
}
|
||
m_drv->GetSpeedMode(sp,flag);
|
||
}
|
||
}
|
||
|
||
void Widget::changespeedmode(int type)
|
||
{
|
||
ui->cbx_speed_mode->clear();
|
||
switch (type) {
|
||
case ScannerSerial::G100Serial:
|
||
ui->cbx_speed_mode->addItems({"G100_70ppm","G100_80ppm","G100_90ppm"});
|
||
break;
|
||
case ScannerSerial::G200Serial:
|
||
ui->cbx_speed_mode->addItems({"G200_100ppm","G200_120ppm","G200_130ppm"});
|
||
break;
|
||
case ScannerSerial::G300Serial:
|
||
ui->cbx_speed_mode->addItems({"G300_40ppm","G300_50ppm","G300_60ppm","G300_70ppm"});
|
||
break;
|
||
case ScannerSerial::G400Serial:
|
||
ui->cbx_speed_mode->addItems({"G400_40ppm","G400_50ppm","G400_60ppm","G400_70ppm","G400_80ppm"});
|
||
break;
|
||
case ScannerSerial::G10039Serial:
|
||
ui->cbx_speed_mode->addItems({"G139_70ppm","G139_80ppm","G139_90ppm","G139_110ppm"});
|
||
break;
|
||
case ScannerSerial::G20039Serial:
|
||
ui->cbx_speed_mode->addItems({"G239_100ppm","G239_110ppm","G239_120ppm","G239_130ppm"});
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Widget::CreateScanFile()
|
||
{
|
||
QString path = "/ScanPicture/";
|
||
QDir dir;
|
||
path = QCoreApplication::applicationDirPath() + path;
|
||
if (!dir.exists(path))
|
||
dir.mkpath(path);
|
||
|
||
m_drv->SetPath(std::string(path.toUtf8()));
|
||
}
|
||
|
||
void Widget::DrawPicture(QString path1)
|
||
{
|
||
QImage img(path1);
|
||
QPixmap pixmap;
|
||
|
||
if (!(img.load(path1))) //¼ÓÔØͼÏñ
|
||
{
|
||
return;
|
||
}
|
||
ui->imageview->setimg(img);
|
||
}
|
||
|
||
|
||
void Widget::showfun()
|
||
{
|
||
while (m_run)
|
||
{
|
||
if (m_auireable)
|
||
{
|
||
std::string imgtmppath;
|
||
auto ret = m_drv->GetImg(imgtmppath, 0);
|
||
if (ret != -1)
|
||
{
|
||
imageindex++;
|
||
aquiredimgindx++;
|
||
m_path.push_back(imgtmppath.c_str());
|
||
m_onStop(false, aquiredimgindx);
|
||
DrawPicture(imgtmppath.c_str());
|
||
}
|
||
else
|
||
{
|
||
m_auireable = false;
|
||
m_onStop(true, 0);
|
||
}
|
||
}
|
||
else
|
||
std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
||
}
|
||
}
|
||
|
||
void Widget::SetEnableShow(bool show)
|
||
{
|
||
m_auireable = show;
|
||
aquiredimgindx = 0;
|
||
}
|
||
|
||
void Widget::SetCallBack(std::function<void(bool stoped, int num)> onstop)
|
||
{
|
||
m_onStop = onstop;
|
||
}
|
||
|
||
void Widget::SetPic_format()
|
||
{
|
||
m_drv->Setformat(std::string(ui->comboBox_6->currentText().toUtf8()));
|
||
}
|
||
|
||
void Widget::retDevStr()
|
||
{
|
||
if (calldevs.empty())
|
||
{
|
||
QMessageBox::information(this, "È·ÈÏ", "Çë×Ðϸ¼ì²éÉ豸");
|
||
return;
|
||
}
|
||
|
||
QString s= QString::fromLocal8Bit(calldevs.data());//strתQStringÂÒÂë
|
||
QMessageBox::information(this, "È·ÈÏ", s);
|
||
calldevs.clear();
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnPrepage()
|
||
{
|
||
imageindex--;
|
||
if (imageindex < 0)
|
||
imageindex = 0;
|
||
|
||
if (m_path.size() > 0)
|
||
{
|
||
DrawPicture(m_path[imageindex]);
|
||
}
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnNextpage()
|
||
{
|
||
imageindex++;
|
||
if (imageindex >= m_path.size())
|
||
imageindex = m_path.size() - 1;
|
||
if (m_path.size() > 0)
|
||
{
|
||
DrawPicture(m_path[imageindex]);
|
||
}
|
||
}
|
||
|
||
void Widget::pushbut()
|
||
{
|
||
|
||
}
|
||
|
||
|
||
void Widget::OnBnClickedBtnSetPicSavePath()
|
||
{
|
||
//Ñ¡ÔñÎļþ¼Ð
|
||
QString srcDirPath = QFileDialog::getExistingDirectory(this, "choose src Directory", "/");
|
||
if (srcDirPath.isEmpty())
|
||
{
|
||
return;
|
||
}
|
||
qDebug() << "srcDirPath=" << srcDirPath;
|
||
srcDirPath += "/";
|
||
ui->lineEdit_70->setText(srcDirPath);
|
||
m_drv->SetPath(std::string(srcDirPath.toUtf8()));
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnSelectfile()
|
||
{
|
||
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), NULL, tr("*.zip;;*.ldr")); //Ñ¡ÔñÉý¼¶Îļþ
|
||
if (!fileName.isEmpty())
|
||
{
|
||
ui->lineEdit_65->setText(fileName);
|
||
updateFilePath = std::string(fileName.toUtf8());
|
||
}
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnUpdate()
|
||
{
|
||
|
||
QMessageBox messageBox(QMessageBox::NoIcon, "¾¯¸æ", "È·¶¨¿ªÊ¼Éý¼¶Âð£¿", QMessageBox::Yes | QMessageBox::No, NULL);
|
||
int result = messageBox.exec();
|
||
switch (result)
|
||
{
|
||
case QMessageBox::Yes:
|
||
qDebug() << "Yes";
|
||
Widget::updatefunc();
|
||
break;
|
||
case QMessageBox::No:
|
||
qDebug() << "NO";
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Widget::OnBnClickedCheckparamset()
|
||
{
|
||
if (!m_drv->is_connect())
|
||
{
|
||
QMessageBox::warning(nullptr, "´íÎó", "ɨÃèÒÇδÁ¬½Ó");
|
||
return;
|
||
}
|
||
int correcType = ui->comboBox->currentIndex();
|
||
UItoParam(correcType);
|
||
m_drv->SendFlatData(params, correcType);
|
||
}
|
||
|
||
void Widget::OnBnClickedCheckparamread()
|
||
{
|
||
if (!m_drv->is_connect())
|
||
{
|
||
QMessageBox::warning(nullptr, "´íÎó", "ɨÃèÒÇδÁ¬½Ó");
|
||
return;
|
||
}
|
||
auto read = m_drv->GetFlatData();
|
||
jsonparams =read;
|
||
updateA4Config(read);
|
||
UpdateToFace();
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnFlat()
|
||
{
|
||
if (!m_drv->is_connect())
|
||
{
|
||
QMessageBox::warning(this, "error", "ɨÃèÒÇδÁ¬½Ó");
|
||
return;
|
||
}
|
||
|
||
QMessageBox messageBox(QMessageBox::NoIcon, "×¼±¸", "È·¶¨¿ªÊ¼×Ô¶¯Ð£×¼Âð?", QMessageBox::Yes | QMessageBox::No, NULL);
|
||
int result = messageBox.exec();
|
||
switch (result)
|
||
{
|
||
case QMessageBox::Yes:
|
||
ui->tabWidget->setCurrentIndex(2);
|
||
qDebug() << "Yes";
|
||
m_drv->setflatcallback([&](std::string str,bool flag)->void{
|
||
if(str.empty())
|
||
return;
|
||
ui->te_flat_log->append(str.c_str());
|
||
if(flag)
|
||
ui->te_flat_log->append("УÕýÍê³É£¡£¡£¡");
|
||
});
|
||
m_drv->StartFlat(ui->cb_flat_mode->isChecked());
|
||
break;
|
||
|
||
case QMessageBox::No:
|
||
qDebug() << "NO";
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
void Widget::OnCbnSelChangeDpi()
|
||
{
|
||
m_iDpiIndex = ui->comboBox_3->currentIndex();
|
||
}
|
||
|
||
void Widget::OnBnClickedBtngetSerial()
|
||
{
|
||
auto serial = m_drv->GetSerialNum();
|
||
ui->lineEdit_33->setText(serial.c_str());
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnSetSerial()
|
||
{
|
||
QString cserial = ui->lineEdit_33->text();;
|
||
if (!cserial.isEmpty())
|
||
{
|
||
m_drv->SetSerialNum(std::string(cserial.toUtf8()));
|
||
}
|
||
else
|
||
QMessageBox::warning(nullptr, "¾¯¸æ", "ÇëÊäÈëÐòÁкÅ");
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnGethor()
|
||
{
|
||
int ratio = 0;
|
||
m_drv->GetRatio(0, ratio);
|
||
float f_ratio = *(float*)∶
|
||
QString str;
|
||
str.sprintf("%.4f", f_ratio);
|
||
ui->lineEdit_34->setText(str);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnSethor()
|
||
{
|
||
QString str = ui->lineEdit_34->text();
|
||
if (!str.isEmpty())
|
||
{
|
||
float f_value = str.toFloat();
|
||
int value = *(int*)&f_value;
|
||
m_drv->SetRatio(0, value);
|
||
}
|
||
else
|
||
QMessageBox::warning(nullptr, "¾¯¸æ", "ÇëÊäÈëºáÏò");
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnGetver()
|
||
{
|
||
int ratio = 0;
|
||
m_drv->GetRatio(1, ratio);
|
||
float f_ratio = *(float*)∶
|
||
QString str;
|
||
str.sprintf("%.4f", f_ratio);
|
||
ui->lineEdit_35->setText(str);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnSetver()
|
||
{
|
||
QString str = ui->lineEdit_35->text();
|
||
if (!str.isEmpty())
|
||
{
|
||
float f_value = str.toFloat();
|
||
int value = *(int*)&f_value;
|
||
m_drv->SetRatio(1, value);
|
||
}
|
||
else
|
||
QMessageBox::warning(nullptr, "¾¯¸æ", "ÇëÊäÈë×ÝÏò");
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnGetexpos()
|
||
{
|
||
int esposeA, exposeB;
|
||
m_drv->GetExpose(esposeA, exposeB);
|
||
QString expA, expB;
|
||
expA.sprintf("%d", esposeA);
|
||
expB.sprintf("%d", exposeB);
|
||
ui->lineEdit_36->setText(expA);
|
||
ui->lineEdit_37->setText(expB);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnSetexpos()
|
||
{
|
||
QString expA = ui->lineEdit_36->text();
|
||
QString expB = ui->lineEdit_37->text();
|
||
UINT32 esposeA, exposeB;
|
||
if (!expA.isEmpty() && !expB.isEmpty())
|
||
{
|
||
esposeA = expA.toInt();
|
||
exposeB = expB.toInt();
|
||
m_drv->SetExpose(esposeA, exposeB);
|
||
}
|
||
else
|
||
QMessageBox::warning(nullptr, "¾¯¸æ", "ÇëÊäÈëUV");
|
||
}
|
||
|
||
void Widget::OnBnClickedBtngetVersion()
|
||
{
|
||
std::string ver = m_drv->GetFWVersion();
|
||
if (!ver.empty())
|
||
ui->lineEdit_38->setText(ver.c_str());
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnReboot()
|
||
{
|
||
QMessageBox messageBox(QMessageBox::NoIcon, "¾¯¸æ", "È·¶¨ÒªÖØÆôɨÃèÒÇÂð?", QMessageBox::Yes | QMessageBox::No, NULL); ;
|
||
int result = messageBox.exec();
|
||
switch (result)
|
||
{
|
||
case QMessageBox::Yes:
|
||
qDebug() << "Yes";
|
||
m_drv->Reboot();
|
||
break;
|
||
case QMessageBox::No:
|
||
qDebug() << "NO";
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void Widget::OnBnClickedBtngetgraysp()
|
||
{
|
||
OnGetOrSetSp(true, 0);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnsetgraysp()
|
||
{
|
||
OnGetOrSetSp(false, 0);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtngetcolorsp()
|
||
{
|
||
OnGetOrSetSp(true, 1);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnsetcolorsp()
|
||
{
|
||
OnGetOrSetSp(false, 1);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtngetuvsp()
|
||
{
|
||
OnGetOrSetSp(true, 2);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnsetuvsp()
|
||
{
|
||
OnGetOrSetSp(false, 2);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtngetsleeptime()
|
||
{
|
||
UpdateSleepTime(true);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnsetsleeptime()
|
||
{
|
||
UpdateSleepTime(false);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtngetspeedmode()
|
||
{
|
||
OnGetOrSetSpeedMode(true);
|
||
}
|
||
|
||
void Widget::OnBnClickedBtnsetspeedmode()
|
||
{
|
||
OnGetOrSetSpeedMode(false);
|
||
}
|
||
|
||
|
||
|
||
void Widget::on_pb_log_clear_clicked()
|
||
{
|
||
ui->te_flat_log->clear();
|
||
}
|
||
|
||
void Widget::on_bt_IP_clicked()
|
||
{
|
||
ui->le_IP->setText(m_drv->getip().c_str());
|
||
}
|
||
|
||
|
||
void Widget::on_bt_kernel_clicked()
|
||
{
|
||
ui->le_kernel->setText(m_drv->getkernelversion().c_str());
|
||
}
|
||
|
||
void Widget::on_bt_getvid_clicked()
|
||
{
|
||
int id=0;
|
||
m_drv->usbvidpid(id,true);
|
||
ui->lineEdit_39->setText(QString::number(id&0xffff,16));
|
||
ui->lineEdit_41->setText(QString::number((id>>16)&0xffff,16));
|
||
}
|
||
|
||
void Widget::on_bt_setvid_clicked()
|
||
{
|
||
int id=0;
|
||
id = ui->lineEdit_39->text().toInt(NULL,16);
|
||
id += (ui->lineEdit_41->text().toInt(NULL,16)<<16);
|
||
m_drv->usbvidpid(id,false);
|
||
}
|
||
|
||
void Widget::on_btn_logsave_clicked()
|
||
{
|
||
QString path=QFileDialog::getSaveFileName(this,"Ñ¡Ôñ±£´æ·¾¶",nullptr,"*.log");
|
||
if(path.isNull())
|
||
return;
|
||
ofstream f(std::string(path.toUtf8()));
|
||
if(f.is_open())
|
||
{
|
||
std::string data= std::string(ui->te_flat_log->toPlainText().toUtf8());
|
||
f.write(data.data(),data.length());
|
||
f.close();
|
||
}
|
||
else{
|
||
QMessageBox::warning(this,"¾¯¸æ","δ³É¹¦´´½¨Îļþ");
|
||
}
|
||
}
|
||
|
||
void Widget::on_btn_getrollernum_clicked()
|
||
{
|
||
int value = 0;
|
||
m_drv->GetOrSetRoller(value,false);
|
||
ui->le_rollernum->setText(QString::number(value));
|
||
}
|
||
|
||
void Widget::on_btn_clearroller_clicked()
|
||
{
|
||
int value = 0;
|
||
m_drv->GetOrSetRoller(value,true);
|
||
ui->le_rollernum->setText(QString::number(value));
|
||
}
|
||
|
||
|
||
|
||
void Widget::on_bt_getmotorversion_clicked()
|
||
{
|
||
ui->le_motorversion->setText(m_drv->GetMBVersion().c_str());
|
||
}
|
||
|
||
void Widget::on_bt_getsysinfo_clicked()
|
||
{
|
||
QMessageBox::information(this,"SystemInfo",m_drv->GetSysInfo().c_str(),QMessageBox::Ok);
|
||
}
|
||
|
||
void Widget::on_bt_getgraybright_clicked()
|
||
{
|
||
ui->le_garybright->setText(m_drv->GetOrSetbright(true,false,0).c_str());
|
||
}
|
||
|
||
void Widget::on_bt_getcolorbright_clicked()
|
||
{
|
||
ui->le_colorbright->setText(m_drv->GetOrSetbright(true,true,0).c_str());
|
||
}
|
||
|
||
void Widget::on_bt_setgarybright_clicked()
|
||
{
|
||
uint value = ui->le_garybright->text().toUInt();
|
||
if(value > 100)
|
||
m_drv->GetOrSetbright(false,false,value).c_str();
|
||
}
|
||
|
||
void Widget::on_bt_setcolorbright_clicked()
|
||
{
|
||
uint value = ui->le_colorbright->text().toUInt();
|
||
if(value > 100)
|
||
m_drv->GetOrSetbright(false,true,value).c_str();
|
||
}
|