qt-correction-tool/tool_ui/widget.cpp

983 lines
22 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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*)&ratio;
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*)&ratio;
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();
}