275 lines
11 KiB
C++
275 lines
11 KiB
C++
|
#include "dialog.h"
|
|||
|
#include "ui_dialog.h"
|
|||
|
#include <QMessageBox>
|
|||
|
#include <QFile>
|
|||
|
#include "GScanO1003399.h"
|
|||
|
#include "GScanO400.h"
|
|||
|
|
|||
|
Dialog::Dialog(QWidget* parent)
|
|||
|
: QDialog(parent)
|
|||
|
, ui(new Ui::Dialog)
|
|||
|
{
|
|||
|
ui->setupUi(this);
|
|||
|
ui->lineEdit_sp->setValidator(new QIntValidator(500, 10000, this));
|
|||
|
ui->lineEdit_cuo_A->setValidator(new QIntValidator(1, 1000, this));
|
|||
|
ui->lineEdit_cuo_FinalDelay->setValidator(new QIntValidator(1, 10000, this));
|
|||
|
ui->lineEdit_cuo_FinalPeriod->setValidator(new QIntValidator(1, 1000000, this));
|
|||
|
ui->lineEdit_cuo_Fmin->setValidator(new QIntValidator(1, 1000000, this));
|
|||
|
ui->lineEdit_cuo_Offsct->setValidator(new QIntValidator(1, 10, this));
|
|||
|
ui->lineEdit_cuo_StepNum->setValidator(new QIntValidator(1, 10, this));
|
|||
|
ui->lineEdit_exposureB_B->setValidator(new QIntValidator(1, 10000, this));
|
|||
|
ui->lineEdit_exposureB_G->setValidator(new QIntValidator(1, 10000, this));
|
|||
|
ui->lineEdit_exposureB_R->setValidator(new QIntValidator(1, 10000, this));
|
|||
|
ui->lineEdit_exposureF_B->setValidator(new QIntValidator(1, 10000, this));
|
|||
|
ui->lineEdit_exposureF_G->setValidator(new QIntValidator(1, 10000, this));
|
|||
|
ui->lineEdit_exposureF_R->setValidator(new QIntValidator(1, 10000, this));
|
|||
|
ui->lineEdit_zuo_A->setValidator(new QIntValidator(1, 1000, this));
|
|||
|
ui->lineEdit_zuo_FinalDelay->setValidator(new QIntValidator(1, 1000000, this));
|
|||
|
ui->lineEdit_zuo_FinalPeriod->setValidator(new QIntValidator(1, 1000000, this));
|
|||
|
ui->lineEdit_zuo_Fmin->setValidator(new QIntValidator(1, 1000000, this));
|
|||
|
ui->lineEdit_zuo_Offsct->setValidator(new QIntValidator(1, 10, this));
|
|||
|
ui->lineEdit_zuo_StepNum->setValidator(new QIntValidator(1, 10, this));
|
|||
|
RefreshDevice();
|
|||
|
}
|
|||
|
|
|||
|
void Dialog::RefreshDevice()
|
|||
|
{
|
|||
|
|
|||
|
ui->comboBox_speedmode->clear();
|
|||
|
m_usbinfo.clear();
|
|||
|
m_usbinfo = UsbScan_List::find_all_usb();
|
|||
|
if (m_usbinfo.size())
|
|||
|
{
|
|||
|
disconnect(ui->comboBox_online, SIGNAL(currentIndexChanged(int)), this, SLOT(on_comboBox_online_currentIndexChanged(int)));
|
|||
|
ui->comboBox_online->clear();
|
|||
|
connect(ui->comboBox_online, SIGNAL(currentIndexChanged(int)), this, SLOT(on_comboBox_online_currentIndexChanged(int)));
|
|||
|
auto info = m_usbinfo.begin();
|
|||
|
while (info != m_usbinfo.end())
|
|||
|
{
|
|||
|
QString strinfo = QString("vid04x1% pid04x%2").arg(QString::number(info->vid, 16)).arg(QString::number(info->pid, 16));
|
|||
|
ui->comboBox_online->addItem(strinfo);
|
|||
|
info++;
|
|||
|
}
|
|||
|
ui->comboBox_online->setCurrentIndex(0);
|
|||
|
}
|
|||
|
else {
|
|||
|
QMessageBox::information(this, QString::fromLocal8Bit("<EFBFBD><EFBFBD>ʾ"), QString::fromLocal8Bit("δ<EFBFBD>ҵ<EFBFBD><EFBFBD>豸<EFBFBD><EFBFBD>"), QMessageBox::Ok);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
Dialog::~Dialog()
|
|||
|
{
|
|||
|
delete ui;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void Dialog::on_pushButton_online_clicked()
|
|||
|
{
|
|||
|
RefreshDevice();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void Dialog::on_comboBox_online_currentIndexChanged(int index)
|
|||
|
{
|
|||
|
reinitdevice(m_usbinfo[index]);
|
|||
|
if (m_usbinfo.size() && ((m_usbinfo.size() - 1) >= index))
|
|||
|
{
|
|||
|
if (m_dev->is_open())
|
|||
|
m_dev->close();
|
|||
|
m_dev->open(m_usbinfo[index].vid, m_usbinfo[index].pid);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void Dialog::on_pushButton_sp_get_clicked()
|
|||
|
{
|
|||
|
std::string Sp_json = m_dev->GetJson(cameraparam);
|
|||
|
if (Sp_json.empty())
|
|||
|
{
|
|||
|
ui->lineEdit_sp->setText(QString::fromLocal8Bit("0"));
|
|||
|
return;
|
|||
|
}
|
|||
|
auto param = DUNNAN_CorrectParam().GetFpgaparam(ui->comboBox_dpi->currentIndex() + 1, ui->comboBox_colormode->currentIndex() == 0 ? 1 : 0, json::parse(Sp_json));
|
|||
|
ui->lineEdit_sp->setText(QString::number(param.Sp));
|
|||
|
ui->lineEdit_exposureB_B->setText(QString::number(param.ExposureB[2]));
|
|||
|
ui->lineEdit_exposureB_G->setText(QString::number(param.ExposureB[1]));
|
|||
|
ui->lineEdit_exposureB_R->setText(QString::number(param.ExposureB[0]));
|
|||
|
ui->lineEdit_exposureF_R->setText(QString::number(param.ExposureF[0]));
|
|||
|
ui->lineEdit_exposureF_G->setText(QString::number(param.ExposureF[1]));
|
|||
|
ui->lineEdit_exposureF_B->setText(QString::number(param.ExposureF[2]));
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void Dialog::on_pushButton_sp_set_clicked()
|
|||
|
{
|
|||
|
if (!(ui->lineEdit_sp->text().size() && ui->lineEdit_exposureB_B->text().size() && ui->lineEdit_exposureB_G->text().size() && ui->lineEdit_exposureB_R->text().size() &&
|
|||
|
ui->lineEdit_exposureF_R->text().size() && ui->lineEdit_exposureF_R->text().size() && ui->lineEdit_exposureF_R->text().size()))
|
|||
|
return;
|
|||
|
if (ui->lineEdit_sp->text().toUInt() < 100 && (ui->lineEdit_sp->text().toUInt() > 10000))
|
|||
|
{
|
|||
|
ui->lineEdit_sp->setText(QString::fromLocal8Bit("0"));
|
|||
|
return;
|
|||
|
}
|
|||
|
std::string Sp_json = m_dev->GetJson(cameraparam);
|
|||
|
if (Sp_json.size() < 1)
|
|||
|
{
|
|||
|
ui->lineEdit_sp->setText(QString::fromLocal8Bit("0"));
|
|||
|
return;
|
|||
|
}
|
|||
|
auto param = DUNNAN_CorrectParam().GetFpgaparam(ui->comboBox_dpi->currentIndex() + 1, ui->comboBox_colormode->currentIndex() == 0 ? 1 : 0, json::parse(Sp_json));
|
|||
|
param.Sp = ui->lineEdit_sp->text().toUInt();
|
|||
|
param.ExposureB[2] = ui->lineEdit_exposureB_B->text().toUInt();
|
|||
|
param.ExposureB[1] = ui->lineEdit_exposureB_G->text().toUInt();
|
|||
|
param.ExposureB[0] = ui->lineEdit_exposureB_R->text().toUInt();
|
|||
|
param.ExposureF[0] = ui->lineEdit_exposureF_R->text().toUInt();
|
|||
|
param.ExposureF[1] = ui->lineEdit_exposureF_G->text().toUInt();
|
|||
|
param.ExposureF[2] = ui->lineEdit_exposureF_B->text().toUInt();
|
|||
|
m_dev->SetJson(cameraparam, DUNNAN_CorrectParam().SaveCorrectParam(param, json::parse(Sp_json)).dump());
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void Dialog::on_pushButton_motor_get_clicked()
|
|||
|
{
|
|||
|
MotorSpeedParamEx param_cuo;
|
|||
|
MotorSpeedParamEx param_zuo;
|
|||
|
std::string mt_zuo_json;
|
|||
|
std::string mt_cuo_json = m_dev->GetJson(ui->checkBox_motor_istmc->isChecked() ? MT_TMC216_CUO_PATH : MT_DRV888_CUO_PATH);
|
|||
|
if (mt_cuo_json.empty()) {
|
|||
|
goto Exit0;
|
|||
|
}
|
|||
|
param_cuo = MotorConfig().GetMotorSpeedParam(ui->comboBox_dpi->currentIndex() + 1, ui->comboBox_colormode->currentIndex() == 0 ? 1 : 0, ui->comboBox_speedmode->currentIndex() + 1, mt_cuo_json);
|
|||
|
if (param_cuo.empty()) {
|
|||
|
goto Exit0;
|
|||
|
}
|
|||
|
ui->lineEdit_cuo_A->setText(QString::number(param_cuo.mt_param.a));
|
|||
|
ui->lineEdit_cuo_FinalDelay->setText(QString::number(param_cuo.mt_param.finalDelay));
|
|||
|
ui->lineEdit_cuo_FinalPeriod->setText(QString::number(param_cuo.mt_param.finalPeriod));
|
|||
|
ui->lineEdit_cuo_Fmin->setText(QString::number(param_cuo.mt_param.Fmin));
|
|||
|
ui->lineEdit_cuo_Offsct->setText(QString::number(param_cuo.mt_param.offset));
|
|||
|
ui->lineEdit_cuo_StepNum->setText(QString::number(param_cuo.mt_param.stepnum));
|
|||
|
mt_zuo_json = m_dev->GetJson(ui->checkBox_motor_istmc->isChecked() ? MT_TMC216_ZOU_PATH : MT_DRV888_ZOU_PATH);
|
|||
|
if (mt_zuo_json.empty()) {
|
|||
|
goto Exit0;
|
|||
|
}
|
|||
|
param_zuo = MotorConfig().GetMotorSpeedParam(ui->comboBox_dpi->currentIndex() + 1, ui->comboBox_colormode->currentIndex() == 0 ? 1 : 0, ui->comboBox_speedmode->currentIndex() + 1, mt_zuo_json);
|
|||
|
if (param_zuo.empty()) {
|
|||
|
goto Exit0;
|
|||
|
}
|
|||
|
ui->lineEdit_zuo_A->setText(QString::number(param_zuo.mt_param.a));
|
|||
|
ui->lineEdit_zuo_FinalDelay->setText(QString::number(param_zuo.mt_param.finalDelay));
|
|||
|
ui->lineEdit_zuo_FinalPeriod->setText(QString::number(param_zuo.mt_param.finalPeriod));
|
|||
|
ui->lineEdit_zuo_Fmin->setText(QString::number(param_zuo.mt_param.Fmin));
|
|||
|
ui->lineEdit_zuo_Offsct->setText(QString::number(param_zuo.mt_param.offset));
|
|||
|
ui->lineEdit_zuo_StepNum->setText(QString::number(param_zuo.mt_param.stepnum));
|
|||
|
ui->lineEdit_sp->setText(QString::number(param_zuo.sp));
|
|||
|
|
|||
|
return;
|
|||
|
|
|||
|
Exit0:
|
|||
|
{
|
|||
|
ui->lineEdit_cuo_A->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_FinalDelay->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_FinalPeriod->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_Fmin->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_Offsct->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_StepNum->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_A->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_FinalDelay->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_FinalPeriod->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_Fmin->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_Offsct->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_StepNum->setText(QString::fromLocal8Bit("0"));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void Dialog::on_pushButton_motor_set_clicked()
|
|||
|
{
|
|||
|
MotorSpeedParamEx param_cuo;
|
|||
|
MotorSpeedParamEx param_zuo;
|
|||
|
std::string mt_zuo_json;
|
|||
|
std::string mt_cuo_json;
|
|||
|
mt_cuo_json = m_dev->GetJson(ui->checkBox_motor_istmc->isChecked() ? MT_TMC216_CUO_PATH : MT_DRV888_CUO_PATH);
|
|||
|
if (mt_cuo_json.empty()) {
|
|||
|
goto Exit0;
|
|||
|
}
|
|||
|
param_cuo = MotorConfig().GetMotorSpeedParam(ui->comboBox_dpi->currentIndex() + 1, ui->comboBox_colormode->currentIndex() == 0 ? 1 : 0, ui->comboBox_speedmode->currentIndex() + 1, mt_cuo_json);
|
|||
|
if (param_cuo.empty()) {
|
|||
|
goto Exit0;
|
|||
|
}
|
|||
|
param_cuo.mt_param.a = ui->lineEdit_cuo_A->text().toUInt();
|
|||
|
param_cuo.mt_param.finalDelay = ui->lineEdit_cuo_FinalDelay->text().toUInt();
|
|||
|
param_cuo.mt_param.finalPeriod = ui->lineEdit_cuo_FinalPeriod->text().toUInt();
|
|||
|
param_cuo.mt_param.Fmin = ui->lineEdit_cuo_Fmin->text().toUInt();
|
|||
|
param_cuo.mt_param.offset = ui->lineEdit_cuo_Offsct->text().toUInt();
|
|||
|
param_cuo.mt_param.stepnum = ui->lineEdit_cuo_StepNum->text().toUInt();
|
|||
|
m_dev->SetJson(ui->checkBox_motor_istmc->isChecked() ? MT_TMC216_CUO_PATH : MT_DRV888_CUO_PATH, MotorConfig().SetParams(param_cuo, json::parse(mt_cuo_json)).dump());
|
|||
|
|
|||
|
mt_zuo_json = m_dev->GetJson(ui->checkBox_motor_istmc->isChecked() ? MT_TMC216_ZOU_PATH : MT_DRV888_ZOU_PATH);
|
|||
|
if (mt_zuo_json.empty()) {
|
|||
|
goto Exit1;
|
|||
|
}
|
|||
|
param_zuo = MotorConfig().GetMotorSpeedParam(ui->comboBox_dpi->currentIndex() + 1, ui->comboBox_colormode->currentIndex() == 0 ? 1 : 0, ui->comboBox_speedmode->currentIndex() + 1, mt_zuo_json);
|
|||
|
if (param_zuo.empty()) {
|
|||
|
goto Exit1;
|
|||
|
}
|
|||
|
param_zuo.mt_param.a = ui->lineEdit_zuo_A->text().toUInt();
|
|||
|
param_zuo.mt_param.finalDelay = ui->lineEdit_zuo_FinalDelay->text().toUInt();
|
|||
|
param_zuo.mt_param.finalPeriod = ui->lineEdit_zuo_FinalPeriod->text().toUInt();
|
|||
|
param_zuo.mt_param.Fmin = ui->lineEdit_zuo_Fmin->text().toUInt();
|
|||
|
param_zuo.mt_param.offset = ui->lineEdit_zuo_Offsct->text().toUInt();
|
|||
|
param_zuo.mt_param.stepnum = ui->lineEdit_zuo_StepNum->text().toUInt();
|
|||
|
param_zuo.sp = ui->lineEdit_sp->text().toUInt();
|
|||
|
m_dev->SetJson(ui->checkBox_motor_istmc->isChecked() ? MT_TMC216_ZOU_PATH : MT_DRV888_ZOU_PATH, MotorConfig().SetParams(param_zuo, json::parse(mt_zuo_json)).dump());
|
|||
|
return;
|
|||
|
|
|||
|
Exit0:
|
|||
|
{
|
|||
|
ui->lineEdit_cuo_A->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_FinalDelay->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_FinalPeriod->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_Fmin->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_Offsct->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_cuo_StepNum->setText(QString::fromLocal8Bit("0"));
|
|||
|
return;
|
|||
|
}
|
|||
|
Exit1:
|
|||
|
{
|
|||
|
ui->lineEdit_zuo_A->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_FinalDelay->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_FinalPeriod->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_Fmin->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_Offsct->setText(QString::fromLocal8Bit("0"));
|
|||
|
ui->lineEdit_zuo_StepNum->setText(QString::fromLocal8Bit("0"));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void Dialog::reinitdevice(usb_scan_dev_info info)
|
|||
|
{
|
|||
|
if (m_dev.get())
|
|||
|
m_dev.reset();
|
|||
|
switch (info.pid) {
|
|||
|
case 0x239:
|
|||
|
ui->comboBox_speedmode->addItems({ "100ppm","110ppm","120ppm","130ppm" });
|
|||
|
break;
|
|||
|
case 0x139:
|
|||
|
ui->comboBox_speedmode->addItems({ "70ppm","80ppm","90ppm","110ppm" });
|
|||
|
break;
|
|||
|
case 0x339:
|
|||
|
case 0x0300:
|
|||
|
ui->comboBox_speedmode->addItems({ "40ppm","50ppm","60ppm","70ppm" });
|
|||
|
break;
|
|||
|
case 0x439:
|
|||
|
case 0x0400:
|
|||
|
ui->comboBox_speedmode->addItems({ "40ppm","50ppm","60ppm","70ppm","80ppm" });
|
|||
|
break;
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
if (info.pid == 0x0139 || info.pid == 0x0239 || info.pid == 0x0339 || info.pid == 0x0439)
|
|||
|
m_dev.reset(new GScanO1003399());
|
|||
|
else
|
|||
|
m_dev.reset(new GScanO400());
|
|||
|
}
|