#include "controladvparamwidget.h" #include "ui_controladvparamwidget.h" #include "LoUIClass/x_uimsgboxokcancel.h" #include "LoUIClass/x_uimsgboxok.h" #include #include #include #include #include #include #include #include #include #include #include "loappconfig.h" #include #include #include #include #include #include #include "QTextCodec" #include "upgradeapkdialog.h" void setDebugOutput(const QString &targetFilePath, const bool &argDateFlag = false); ControlAdvParamWidget::ControlAdvParamWidget(QWidget *parent,QList *list) : QWidget(parent), ui(new Ui::ControlAdvParamWidget) { m_pLedlist=list; ui->setupUi(this); refreshLable(); ui->pushButtonSetPhyPixels->setProperty("ssType", "progManageTool"); ui->pushButtonSetPhyPixels->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonStartConfigLedScreenSoft->setProperty("ssType", "progManageTool"); ui->pushButtonStartConfigLedScreenSoft->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSetWebServerParam->setProperty("ssType", "progManageTool"); ui->pushButtonSetWebServerParam->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSetREaltimeServer->setProperty("ssType", "progManageTool"); ui->pushButtonSetREaltimeServer->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonClearRealtimerAddress->setProperty("ssType", "progManageTool"); ui->pushButtonClearRealtimerAddress->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonRestart->setProperty("ssType", "progManageTool"); ui->pushButtonRestart->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSoftUpgrade->setProperty("ssType", "progManageTool"); ui->pushButtonApkCheck->setProperty("ssType", "progManageTool"); ui->pushButton_unistall->setProperty("ssType", "progManageTool"); ui->pushButtonRunningCheck->setProperty("ssType", "progManageTool"); ui->pushButtonFpgaUpgrade->setProperty("ssType", "progManageTool"); ui->pushButtonFpgaVerCheck->setProperty("ssType", "progManageTool"); ui->pushButtonSyncFpgaVer->setProperty("ssType", "progManageTool"); ui->pushButtonCheckLog->setProperty("ssType", "progManageTool"); ui->pushButtonClear->setProperty("ssType", "progManageTool"); ui->pushButtonSoftUpgrade->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonApkCheck->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButton_unistall->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonRunningCheck->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonFpgaUpgrade->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonFpgaVerCheck->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSyncFpgaVer->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonCheckLog->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonClear->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonReadMinBrightness->setProperty("ssType", "progManageTool"); ui->pushButtonReadMinBrightness->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonReadbackMaxBrightess->setProperty("ssType", "progManageTool"); ui->pushButtonReadbackMaxBrightess->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSendMinBrightness->setProperty("ssType", "progManageTool"); ui->pushButtonSendMinBrightness->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSendMaxBrightness->setProperty("ssType", "progManageTool"); ui->pushButtonSendMaxBrightness->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButton_M80Set->setProperty("ssType", "progManageTool"); ui->pushButton_M80Set->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButton_M80Refresh->setProperty("ssType", "progManageTool"); ui->pushButton_M80Refresh->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButton_M80Restore->setProperty("ssType", "progManageTool"); ui->pushButton_M80Restore->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonReadbackTaxiTopScreen->setProperty("ssType", "progManageTool"); ui->pushButtonReadbackTaxiTopScreen->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSetTaxiTopScreen->setProperty("ssType", "progManageTool"); ui->pushButtonSetTaxiTopScreen->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonBindingIc->setProperty("ssType", "progManageTool"); ui->pushButtonBindingIc->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSetAlias->setProperty("ssType", "progManageTool"); ui->pushButtonSetAlias->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); ui->pushButtonSendCustomJson->setProperty("ssType", "progManageTool"); ui->pushButtonSendCustomJson->setStyleSheet("QPushButton{background:rgba(28,154,210,1);}"); //按钮事件绑定 //alahover 20211118 ui->pushButtonSetPhyPixels->setEnabled(false); ui->pushButtonStartConfigLedScreenSoft->setEnabled(false); ui->groupBoxRotate->setVisible(false); ui->groupBoxMinMaxBrightness->setVisible(false); ui->groupBox_2->setVisible(false); ui->groupBox_3->setVisible(false); ui->groupBox_4->setVisible(false); ui->checkBox_ADB->setVisible(false); oM80ResolutionsObject.insert("640×3840","660×3960"); oM80ResolutionsObject.insert("800×3200","825×3300"); oM80ResolutionsObject.insert("864×2686","900×2750"); oM80ResolutionsObject.insert("1080×2432","1125×2500"); oM80ResolutionsObject.insert("1080×1920","1125×2200"); oM80ResolutionsObject.insert("1280×1920","1320×2200"); oM80ResolutionsObject.insert("1472×1536","1500×1650"); oM80ResolutionsObject.insert("1536×1472","1650×1500"); oM80ResolutionsObject.insert("1920×1280","2200×1320"); oM80ResolutionsObject.insert("1920×1080","2200×1125"); oM80ResolutionsObject.insert("2048×1152","2200×1320"); oM80ResolutionsObject.insert("2400×1080","2500×1125"); oM80ResolutionsObject.insert("2686×864","2750×900"); oM80ResolutionsObject.insert("3200×800","3300×825"); oM80ResolutionsObject.insert("3840×640","3960×660"); oM80ResolutionsObject.insert("4096×480","4500×550"); QStringList strtempList=oM80ResolutionsObject.keys(); ui->comboBox_2->clear(); ui->comboBox_2->addItems(strtempList); connect(ui->pushButtonSetPhyPixels,SIGNAL(clicked()),this,SLOT(OnSetPhyPixels())); connect(ui->pushButtonSetAlias,SIGNAL(clicked()),this,SLOT(OnSetAlias())); connect(ui->pushButtonSetWebServerParam,SIGNAL(clicked()),this,SLOT(OnSetWebServerParam())); connect(ui->pushButtonSetREaltimeServer,SIGNAL(clicked()),this,SLOT(OnSetRealtimeServer())); connect(ui->pushButtonClearRealtimerAddress,SIGNAL(clicked()),this,SLOT(OnClearRealtimeServer())); connect(ui->pushButtonStartConfigLedScreenSoft,SIGNAL(clicked()),this,SLOT(OnStartConfigLedScreenSoft())); connect(ui->pushButtonRestart,SIGNAL(clicked()),this,SLOT(OnRestart())); connect(ui->pushButtonSoftUpgrade,SIGNAL(clicked()),this,SLOT(OnSoftUpgrade())); connect(ui->pushButtonApkCheck,SIGNAL(clicked()),this,SLOT(OnApkCheck())); connect(ui->pushButton_unistall,SIGNAL(clicked()),this,SLOT(OnUnistall())); connect(ui->pushButtonRunningCheck,SIGNAL(clicked()),this,SLOT(OnRunningCheck())); connect(ui->pushButtonFpgaUpgrade,SIGNAL(clicked()),this,SLOT(OnFpgaUpgrade())); connect(ui->pushButtonFpgaVerCheck,SIGNAL(clicked()),this,SLOT(OnFpgaVerCheck())); connect(ui->pushButtonSyncFpgaVer,SIGNAL(clicked()),this,SLOT(OnSyncFpgaVer())); connect(ui->pushButtonCheckLog,SIGNAL(clicked()),this,SLOT(OnCheckLog())); connect(ui->pushButtonClear,SIGNAL(clicked()),this,SLOT(OnClearPrograms())); connect(ui->radioButton0degrees,SIGNAL(clicked()),this,SLOT(On0degrees())); connect(ui->radioButton90degrees,SIGNAL(clicked()),this,SLOT(On90degrees())); connect(ui->radioButton180degrees,SIGNAL(clicked()),this,SLOT(On180degrees())); connect(ui->radioButton270degrees,SIGNAL(clicked()),this,SLOT(On270degrees())); connect(ui->pushButtonSendMinBrightness,SIGNAL(clicked()),this,SLOT(OnSendMinBrightness())); connect(ui->pushButtonSendMaxBrightness,SIGNAL(clicked()),this,SLOT(OnSendMaxBrightness())); connect(ui->pushButtonReadMinBrightness,SIGNAL(clicked()),this,SLOT(OnGetMinBrightness())); connect(ui->pushButtonReadbackMaxBrightess,SIGNAL(clicked()),this,SLOT(OnGetMaxBrightness())); connect(ui->pushButtonSendCustomJson,SIGNAL(clicked()),this,SLOT(OnSendCustomJson())); MARCO_DEFINE_CONTROL_FUNC2(parent->parent(),parent) connect(pHpptClient,SIGNAL(httpGetRspReady(QString , QByteArray )),this,SLOT(OnProHttpGetResponse(QString , QByteArray))); // connect(pHpptClient,SIGNAL(onHttpGetRspProgress(QString , QByteArray )),this,SLOT(OnProHttpGetResponse(QString , QByteArray))); // connect(pHpptClient,SIGNAL(onHttpGetRspFinished(QString , QByteArray )),this,SLOT(OnProHttpGetResponseFinished(QString , QByteArray))); connect(ui->pushButton_M80Set,SIGNAL(clicked()),this,SLOT(OnM80Set())); connect(ui->pushButton_M80Refresh,SIGNAL(clicked()),this,SLOT(OnM80Refresh())); connect(ui->pushButton_M80Restore,SIGNAL(clicked()),this,SLOT(OnM80Restore())); connect(ui->pushButtonSetTaxiTopScreen,SIGNAL(clicked()),this,SLOT(OnSetTaxiTopScreen())); connect(ui->pushButtonReadbackTaxiTopScreen,SIGNAL(clicked()),this,SLOT(OnReadbackTaxiTopScreen())); connect(ui->pushButtonBindingIc,SIGNAL(clicked()),this,SLOT(OnBindingIc())); connect(ui->checkBox_ADB,SIGNAL(clicked()),this,SLOT(OnOpenAdb())); ui->radioButtonHL->setChecked(true); // setDebugOutput( "d://%1.log", true ); } ControlAdvParamWidget::~ControlAdvParamWidget() { delete ui; if(pHpptClient != nullptr) { qDebug() <<"delete pHpptClient in ~NetComm"; delete pHpptClient; pHpptClient=nullptr; } if(pHpptClientAll != nullptr) { qDebug() <<"delete pHpptClientAll in ~NetComm"; delete pHpptClientAll; pHpptClientAll=nullptr; } } void ControlAdvParamWidget::refreshLable() { ui->labelPhyWidth->setText(tr("LED Screen Width(pixel):")); ui->labelPhyHeight->setText(tr("Height(pixel):")); ui->labelAdvParams->setText(tr("Advanced parameters")); ui->pushButtonSetPhyPixels->setText(tr("Set")); ui->pushButtonStartConfigLedScreenSoft->setText(tr("Start LedSet3.0 configure LED module")); ui->labelWebServer->setText(tr("Web Server Address:")); ui->labelCompanyId->setText(tr("Compant ID:")); ui->label->setText(tr("Realtimer Server Address:")); ui->pushButtonSetWebServerParam->setText(tr("Set")); ui->pushButtonSetREaltimeServer->setText(tr("Set")); ui->pushButtonClearRealtimerAddress->setText(tr("Clear")); ui->pushButtonSoftUpgrade->setText(tr("Apk upgrade")); ui->pushButtonRestart->setText(tr("Restart led controller system")); ui->pushButtonSoftUpgrade->setText(tr("Apk upgrade")); ui->pushButtonApkCheck->setText(tr("Check Apk")); ui->pushButton_unistall->setText(tr("Uninstall")); ui->pushButtonRunningCheck->setText(tr("Running check")); ui->pushButtonFpgaUpgrade->setText(tr("FPGA Upgrade")); ui->pushButtonFpgaVerCheck->setText(tr("FPGA version check")); ui->pushButtonSyncFpgaVer->setText(tr("Sync FPGA version")); ui->lineEdit->setPlaceholderText(tr("Width")); ui->lineEdit_2->setPlaceholderText(tr("Height")); ui->lineEditCompanyId->setPlaceholderText(tr("Compant ID")); ui->lineEditRealtimerServerAddress->setPlaceholderText(tr("Input Realtimer Server Address")); ui->pushButtonClear->setText(tr("Clear Program")); ui->pushButtonCheckLog->setText(tr("Check Log")); ui->pushButtonReadMinBrightness->setText(tr("Readback")); ui->pushButtonReadbackMaxBrightess->setText(tr("Readback")); ui->pushButtonSendMinBrightness->setText(tr("Send")); ui->pushButtonSendMaxBrightness->setText(tr("Send")); ui->label_2->setText(tr("Min brightness")); ui->label_4->setText(tr("(min:1)")); ui->label_3->setText(tr("Max brightness ")); ui->label_5->setText(tr("(max:255)")); ui->radioButton0degrees->setText(tr("0 degrees")); ui->radioButton90degrees->setText(tr("90 degrees")); ui->radioButton180degrees->setText(tr("180 degrees")); ui->radioButton270degrees->setText(tr("270 degrees")); ui->groupBoxRotate->setTitle(tr("Rotate")); ui->groupBox->setTitle(tr("M80 configuration")); ui->groupBox_2->setTitle(tr("Taxi top screen configuration")); ui->pushButton_M80Set->setText(tr("Set")); ui->pushButton_M80Refresh->setText(tr("Refresh")); ui->pushButton_M80Restore->setText(tr("Restore to default")); ui->radioButtonHL->setText(tr("Service:High Out of service:Low")); ui->radioButtonLH->setText(tr("Service:Low Out of service:High")); ui->pushButtonSetTaxiTopScreen->setText(tr("Set")); ui->pushButtonReadbackTaxiTopScreen->setText(tr("Readback")); ui->label_6->setText(tr("Alias")); ui->pushButtonSetAlias->setText(tr("Set")); } void ControlAdvParamWidget::OnSetWebServerParam() { if(m_pLedlist==nullptr) return; if(m_pLedlist->count()<=1) { if(m_pLedCard==nullptr||m_pLedlist->count()==0) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("NoSelectedController"),this,1); pDlg->exec(); return; } } QString strWebServerAddress=ui->comboBoxWebServerAddress->currentText(); if(strWebServerAddress.isEmpty()) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("InputWebServerAddressTip"),this,1); pDlg->exec(); ui->lineEdit->setFocus(); return; } if(ui->lineEditCompanyId->text().isEmpty()) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("InputCompanyIdTip"),this,1); pDlg->exec(); ui->lineEditCompanyId->setFocus(); return; } X_UIMsgBoxYesNoCancel *dlg = new X_UIMsgBoxYesNoCancel(tr("Tip Info"),tr("Do you want to modify webserveraddress and companyId?"), this); int iresult=dlg->exec(); if(iresult== QDialog::Accepted && dlg->m_flagSave==1) { QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetOnlineAddr"); json.insert("server", strWebServerAddress); json.insert("companyID", ui->lineEditCompanyId->text()); MACRO_DEFINE_TIPDLG_FUCN(tr("SetOnlineAddr"),tr("Success"),tr("failed")) } } void ControlAdvParamWidget::OnClearRealtimeServer() { MACRO_DEFINE_NO_SELECTED_CARD_TIP ui->lineEditRealtimerServerAddress->clear(); QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetRealtimeServer"); json.insert("server", ""); MACRO_DEFINE_TIPDLG_FUCN(tr("ClearRealtimeServer"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnSetRealtimeServer() { MACRO_DEFINE_NO_SELECTED_CARD_TIP if(ui->lineEditRealtimerServerAddress->text().isEmpty()) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("InputRealTimeAddressTip"),this,1); pDlg->exec(); ui->lineEditRealtimerServerAddress->setFocus(); return; } QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetRealtimeServer"); json.insert("server", ui->lineEditRealtimerServerAddress->text()); MACRO_DEFINE_TIPDLG_FUCN(tr("SetRealtimeServer"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnSetAlias() { MACRO_DEFINE_NO_SELECTED_CARD_TIP if(ui->lineEditAlias->text().isEmpty()) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("InputAliasTip"),this,1); pDlg->exec(); ui->lineEdit->setFocus(); return; } QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetCardAlias"); json.insert("alias", qs2B64(ui->lineEditAlias->text())); MACRO_DEFINE_TIPDLG_FUCN(tr("SetCardAlias"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnSetPhyPixels() { MACRO_DEFINE_NO_SELECTED_CARD_TIP if(ui->lineEdit->text().isEmpty()) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("InputWidthTip"),this,1); pDlg->exec(); ui->lineEdit->setFocus(); return; } if(ui->lineEdit_2->text().isEmpty()) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("InputHeightTip"),this,1); pDlg->exec(); ui->lineEdit_2->setFocus(); return; } QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetScreenSize"); json.insert("width", ui->lineEdit->text().toInt()); json.insert("height", ui->lineEdit_2->text().toInt()); MACRO_DEFINE_TIPDLG_FUCN(tr("SetScreenSize"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnStartConfigLedScreenSoft() { QString strAppPath=QApplication::applicationDirPath(); strAppPath.replace(MACRO_DANYINFANXIEGAN, MACRO_DANYINXIEGAN); QString strLedSetFile=strAppPath+"/LedSet/LedSet3.0.exe"; QFileInfo cc22(strLedSetFile); if(cc22.exists()) { QProcess::startDetached(strLedSetFile,QStringList()); } else { QString strReg = "HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\sysolution\\LedSet3.0"; QSettings *reg = new QSettings(strReg,QSettings::NativeFormat); if(reg!=nullptr)//64位系统 { QString strLedsetPath = reg->value("Program_path").toString(); delete reg; QFileInfo cc(strLedsetPath); if(!strLedsetPath.isEmpty()) { if(cc.exists()) { QProcess::startDetached(strLedsetPath,QStringList()); } else { X_UIMsgBoxOk *dlg = new X_UIMsgBoxOk(tr("Tip Info"),tr("Can not find LedSet3.0.exe,down you need download and install it")+strLedsetPath, this,1); if(dlg->exec() == QDialog::Accepted) { UpdateLedset3Dialog *pDlg=new UpdateLedset3Dialog(this); pDlg->exec(); } } } else { QString strReg1 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\sysolution\\LedSet3.0"; QSettings *reg1 = new QSettings(strReg1,QSettings::NativeFormat); if(reg1!=nullptr) { QString strLedsetPath = reg1->value("Program_path").toString(); delete reg1; QFileInfo cc(strLedsetPath); if(!strLedsetPath.isEmpty()) { if(cc.exists()) { QProcess::startDetached(strLedsetPath,QStringList()); } else { QString str1="C:/Program Files/sysolution/LedSet3.0/LedSet3.0.exe"; QFileInfo cc1(str1); if(cc1.exists()) { QProcess::startDetached(str1,QStringList()); } else { QString str2="C:/Program Files (x86)/sysolution/LedSet3.0/LedSet3.0.exe"; QFileInfo cc2(str1); if(cc2.exists()) { QProcess::startDetached(str2,QStringList()); } else { X_UIMsgBoxOk *dlg = new X_UIMsgBoxOk(tr("Tip Info"),tr("Can not find LedSet3.0.exe,down you need download and install it")+strLedsetPath, this,1); if(dlg->exec() == QDialog::Accepted) { UpdateLedset3Dialog *pDlg=new UpdateLedset3Dialog(this); pDlg->exec(); } } } } } else { QString str1="C:/Program Files/sysolution/LedSet3.0/LedSet3.0.exe"; QFileInfo cc1(str1); if(cc1.exists()) { QProcess::startDetached(str1,QStringList()); } else { QString str2="C:/Program Files (x86)/sysolution/LedSet3.0/LedSet3.0.exe"; QFileInfo cc2(str1); if(cc2.exists()) { QProcess::startDetached(str2,QStringList()); } else { X_UIMsgBoxOk *dlg = new X_UIMsgBoxOk(tr("Tip Info"),tr("Can not find LedSet3.0.exe,down you need download and install it")+strLedsetPath, this,1); if(dlg->exec() == QDialog::Accepted) { UpdateLedset3Dialog *pDlg=new UpdateLedset3Dialog(this); pDlg->exec(); } } } } } else { QString str1="C:/Program Files/sysolution/LedSet3.0/LedSet3.0.exe"; QFileInfo cc1(str1); if(cc1.exists()) { QProcess::startDetached(str1,QStringList()); } else { QString str2="C:/Program Files (x86)/sysolution/LedSet3.0/LedSet3.0.exe"; QFileInfo cc2(str1); if(cc2.exists()) { QProcess::startDetached(str2,QStringList()); } else { X_UIMsgBoxOk *dlg = new X_UIMsgBoxOk(tr("Tip Info"),tr("Can not find LedSet3.0.exe,down you need download and install it")+strLedsetPath, this,1); if(dlg->exec() == QDialog::Accepted) { UpdateLedset3Dialog *pDlg=new UpdateLedset3Dialog(this); pDlg->exec(); } } } } } } else//32位系统 { QString strReg1 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\sysolution\\LedSet3.0"; QSettings *reg1 = new QSettings(strReg1,QSettings::NativeFormat); if(reg1!=nullptr) { QString strLedsetPath = reg1->value("Program_path").toString(); delete reg1; QFileInfo cc(strLedsetPath); if(!strLedsetPath.isEmpty()) { if(cc.exists()) { QProcess::startDetached(strLedsetPath,QStringList()); } else { X_UIMsgBoxOk *dlg = new X_UIMsgBoxOk(tr("Tip Info"),tr("Can not find LedSet3.0.exe,down you need download and install it")+strLedsetPath, this,1); if(dlg->exec() == QDialog::Accepted) { UpdateLedset3Dialog *pDlg=new UpdateLedset3Dialog(this); pDlg->exec(); } } } else { X_UIMsgBoxOk *dlg = new X_UIMsgBoxOk(tr("Tip Info"),tr("Can not find LedSet3.0.exe,down you need download and install it")+strLedsetPath, this,1); if(dlg->exec() == QDialog::Accepted) { UpdateLedset3Dialog *pDlg=new UpdateLedset3Dialog(this); pDlg->exec(); } } } } } } void ControlAdvParamWidget::OnRestart() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "RestartAndroid"); MACRO_DEFINE_TIPDLG_FUCN(tr("RestartAndroid"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::onSelectedDeviceList(QList *list) { m_pLedlist=list; if(m_pLedlist==nullptr) return; // if(m_bSelected ) { //if(m_passwordOk) { if(m_pLedlist->count()==1) { ui->pushButtonSetPhyPixels->setEnabled(true); ui->pushButtonStartConfigLedScreenSoft->setEnabled(true); ui->pushButtonSoftUpgrade->setEnabled(true); ui->pushButtonApkCheck->setEnabled(true); ui->pushButton_unistall->setEnabled(true); ui->pushButtonRunningCheck->setEnabled(true); ui->pushButtonFpgaUpgrade->setEnabled(true); ui->pushButtonFpgaVerCheck->setEnabled(true); ui->pushButtonSyncFpgaVer->setEnabled(true); ui->pushButtonRestart->setEnabled(true); ui->pushButtonClear->setEnabled(true); ui->pushButtonCheckLog->setEnabled(true); //ui->pushButtonSetREaltimeServer->setEnabled(true); if(m_pLedCard!=nullptr) { if(m_pLedCard->m_strCardId.left(2)=="M8"||m_pLedCard->m_strCardId.left(2)=="m8") { ui->groupBox->setVisible(true); } else { ui->groupBox->setVisible(false); } } } else { //alahover 20211118 ui->pushButtonSetPhyPixels->setEnabled(false); ui->pushButtonStartConfigLedScreenSoft->setEnabled(true); ui->pushButtonSoftUpgrade->setEnabled(false); ui->pushButtonApkCheck->setEnabled(false); ui->pushButton_unistall->setEnabled(false); ui->pushButtonRunningCheck->setEnabled(false); ui->pushButtonFpgaUpgrade->setEnabled(false); ui->pushButtonFpgaVerCheck->setEnabled(false); ui->pushButtonSyncFpgaVer->setEnabled(false); ui->pushButtonRestart->setEnabled(false); ui->pushButtonClear->setEnabled(false); ui->pushButtonCheckLog->setEnabled(false); //ui->pushButtonSetREaltimeServer->setEnabled(false); ui->groupBox->setVisible(true); } } //else { // ui->pushButtonSetPhyPixels->setEnabled(false); // ui->pushButtonStartConfigLedScreenSoft->setEnabled(false); // } MACRO_DEFINE_CONTROL_FUNC3 } } #include "LoUIClass/changepasswordform.h" void ControlAdvParamWidget::OnControlTypeSwitchIndexChanged(int index) { if(index==ENUM_CONTRL_WIDGET_ADVPARAM) { this->hide(); if(!m_passwordOk) { InputPasswordDialog *pDlg=new InputPasswordDialog(this,2); pDlg->ShowChangePassword(); connect(pDlg, SIGNAL(sigAcceptData(QString)), this, SLOT(onInputPasswordPro(QString))); pDlg->setWindowModality(Qt::WindowModal); pDlg->exec(); } else { this->show(); } m_bSelected=true; if(m_pLedCard!=nullptr) onReadbackAllThisPage(); ui->lineEdit->setFocus(); } else { m_bSelected=false; } } QString ControlAdvParamWidget::GetPasswordPro() { LoAppConfig *cfg = LoAppConfig::getInstance(); QSettings *settings = new QSettings(cfg->OrganizationName(), cfg->ApplicationName()); #ifndef MACRO_YUANHENG_VERSION QString strMiWenPs=settings->value("advUiPs").toString(); #else QString strMiWenPs=settings->value("advUiPs_YuanHeng").toString(); #endif QString result = QTextCodec::codecForName("GBK")->toUnicode(QByteArray::fromBase64(strMiWenPs.toLocal8Bit())); QString strPs=result; if(strPs.isEmpty()) { #ifndef MACRO_YUANHENG_VERSION return "888"; #else return "Cargo10065!@#"; #endif } else { return strPs; } } void ControlAdvParamWidget::onInputPasswordPro(QString strPassword) { // #ifndef MACRO_YUANHENG_VERSION // if(strPassword==GetPasswordPro()) // #else // if(strPassword=="Cargo10065!@#") // #endif if(strPassword==GetPasswordPro()) { if(m_pLedlist==nullptr) return; if(m_pLedlist->count()==1) { ui->pushButtonSetPhyPixels->setEnabled(true); } else { //alahover 20211118 ui->pushButtonSetPhyPixels->setEnabled(false); } ui->pushButtonStartConfigLedScreenSoft->setEnabled(true); m_passwordOk=true; this->show(); } else { //alahover 20211118 ui->pushButtonSetPhyPixels->setEnabled(false); ui->pushButtonStartConfigLedScreenSoft->setEnabled(false); X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("Password is error"),this,1); pDlg->exec(); m_passwordOk=false; this->hide(); InputPasswordDialog *pDlg1=new InputPasswordDialog(this,2); pDlg1->ShowChangePassword(); connect(pDlg1, SIGNAL(sigAcceptData(QString)), this, SLOT(onInputPasswordPro(QString))); pDlg1->setWindowModality(Qt::WindowModal); pDlg1->exec(); } } void ControlAdvParamWidget::onReadbackAllThisPage() { if(m_pLedlist==nullptr) return; if(m_pLedlist->count()!=1) { ui->groupBox->setVisible(true); return; } else { if(m_pLedCard!=nullptr) { if(m_pLedCard->m_strCardId.left(2)=="M8"||m_pLedCard->m_strCardId.left(2)=="m8") ui->groupBox->setVisible(true); else ui->groupBox->setVisible(false); } } QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "GetScreenSize"); HttpPostByTypeJsonObject(pHpptClientAll,m_strUrl,json); QJsonObject json1; json1.insert("_id", getRandomString(10)); json1.insert("_type", "GetOnlineAddr"); HttpPostByTypeJsonObject(pHpptClientAll,m_strUrl,json1); QJsonObject json2; json2.insert("_id", getRandomString(10)); json2.insert("_type", "GetRealtimeServer"); HttpPostByTypeJsonObject(pHpptClientAll,m_strUrl,json2); QJsonObject json3; json3.insert("_id", getRandomString(10)); json3.insert("_type", "GetCardAlias"); HttpPostByTypeJsonObject(pHpptClientAll,m_strUrl,json3); if(m_pLedCard!=nullptr) { if(m_pLedCard->m_strCardId.contains("m8")||m_pLedCard->m_strCardId.contains("M8")) { QJsonObject json3; json3.insert("_id", getRandomString(10)); json3.insert("_type", "GetAllScreenSizeM80"); qDebug()<<"GetAllScreenSizeM80 send"; HttpPostByTypeJsonObject(pHpptClientAll,m_strUrl,json3); } } } //获取到httpPost的应答,如果参数变化需要出发修改控件item的内容 void ControlAdvParamWidget::OnProHttpResponse(QString url, QString postMD5, QByteArray data) { Q_UNUSED(postMD5) //qDebug()<< url + "\r\n"+m_strUrl; if(url == m_strUrl) { QJsonParseError parseJsonErr; QJsonDocument document = QJsonDocument::fromJson(data,&parseJsonErr); if(!(parseJsonErr.error == QJsonParseError::NoError)) { if(data.size()==0) qDebug()<<"json is empty"; else qDebug()<m_strCardId +"---------"+ strType; qDebug()<m_strCardId +"---------"+ strType; if(strType == "SetScreenSize") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "SetCardAlias"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "SetOnlineAddr"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "SetRealtimeServer"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "RestartAndroid"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "GetScreenshotFull"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "AliIotSetting") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "GetOnlineAddr"){ ui->comboBoxWebServerAddress->setCurrentText(jsonObject["server"].toString()); ui->lineEditCompanyId->setText(jsonObject["companuID"].toString()); MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "GetRealtimeServer"){ ui->lineEditRealtimerServerAddress->setText(jsonObject["server"].toString()); MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "GetCardAlias") { ui->lineEditAlias->setText(b64ToQs(jsonObject["alias"].toString())); MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType =="UpgradeSoftware") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("UpgradeSoftware")+tr("Success"),this,1); pDlg->exec(); } else if(strType == "UninstallSoftware"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "SynchronousHardwareVersion"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("SynchronousHardwareVersion")+tr("Success"),this,1); pDlg->exec(); } else if(strType == "DelPrograms") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "SetScreenRotation") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "SetMinBrightness") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "SetMaxBrightness") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "GetMinBrightness") { ui->lineEdit_3->setText(QString::number(jsonObject["brightness"].toInt())); MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "GetMaxBrightness") { ui->lineEdit_4->setText(QString::number(jsonObject["brightness"].toInt())); MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "GetSpecialResolution") { QString strCurDisplayResolution = jsonObject["displayResolution"].toString(); ui->comboBox_2->setCurrentText(strCurDisplayResolution); MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "CheckHardwareVersions"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK QString strtempVer=""; int itempVerCount=0; foreach(QJsonValue value, jsonObject["versions"].toArray()) { QString strtempIcount=QString::number(itempVerCount); strtempVer += "[card"+strtempIcount+"]:"+value.toString()+"\r\n"; itempVerCount++; } X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("FPGA Version"),strtempVer,this,1); pDlg->exec(); } else if(strType == "IsSoftwareRunning"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK if(jsonObject["running"].toBool()) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("running"),this,1); pDlg->exec(); } else { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("no running"),this,1); pDlg->exec(); } } else if (strType == "SetHighForBusy") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if(strType == "OpenAdb") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } else if (strType == "GetStateForBusy") { MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK if(jsonObject["result"].toInt()==0) { ui->radioButtonLH->setChecked(true); ui->radioButtonHL->setChecked(false); } else { ui->radioButtonLH->setChecked(false); ui->radioButtonHL->setChecked(true); } } else if(strType == "CheckSoftVersions"){ MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK ui->comboBox->clear(); QString strTip=""; QStringList strtempApkPackList; foreach(QJsonValue value, jsonObject["apps"].toArray()) { QJsonObject oApp = value.toObject(); QString strtempApkPackageName=oApp["packageName"].toString(); QString strtempVersion=oApp["versionName"].toString(); strtempApkPackList.append(strtempApkPackageName); strTip+=strtempApkPackageName+"["+tr("version")+":"+ strtempVersion +"]\r\n"; } ui->comboBox->addItems(strtempApkPackList); X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),strTip,this,1); pDlg->exec(); } // else { // MACRO_ASKTIME_STOP // MACRO_POSTING_DLG_UNLOCK // } } else { if(strType =="UpgradeSoftware") { qDebug()<<"slotUploadFinished failed ack"; MACRO_ASKTIME_STOP MACRO_POSTING_DLG_UNLOCK } } } if(url == m_strStartUrl) { QJsonParseError parseJsonErr; QJsonDocument document = QJsonDocument::fromJson(data,&parseJsonErr); if(!(parseJsonErr.error == QJsonParseError::NoError)) { if(data.size()==0) qDebug()<<"json is empty"; else qDebug()<m_strCardId +"---------"+ strType; if(strType == "GetScreenSize") { ui->lineEdit->setText(QString::number(jsonObject["width"].toInt())); ui->lineEdit_2->setText(QString::number(jsonObject["height"].toInt())); } else if(strType == "GetCardAlias") { ui->lineEditAlias->setText(b64ToQs(jsonObject["alias"].toString())); } else if(strType == "GetOnlineAddr") { ui->comboBoxWebServerAddress->setCurrentText(jsonObject["server"].toString()); ui->lineEditCompanyId->setText(jsonObject["companuID"].toString()); } else if(strType == "GetRealtimeServer") { qDebug()<<"GetRealtimeServer ack"<lineEditRealtimerServerAddress->setText(jsonObject["server"].toString()); } else if(strType == "GetAllScreenSizeM80") { oM80ResolutionsObject=jsonObject["result"].toObject(); QStringList strlist=oM80ResolutionsObject.keys(); ui->comboBox_2->clear(); ui->comboBox_2->addItems(strlist); ui->lineEditRealtimerServerAddress->setText(jsonObject["server"].toString()); } } } } void ControlAdvParamWidget::OnSoftUpgrade() { if(m_pLedlist==nullptr) return; if(m_pLedlist->count()<=1) { if(m_pLedCard!=nullptr) { OnSyncFirmware(); } } else { // UpgradeApkDialog *pDlg=new UpgradeApkDialog(this,"",""); // pDlg->exec(); } } void ControlAdvParamWidget::OnApkCheck() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "CheckSoftVersions"); MACRO_DEFINE_TIPDLG_FUCN(tr("CheckSoftVersions"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnUnistall() { if(ui->comboBox->currentText().isEmpty()) return; MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "UninstallSoftware"); json.insert("packageName", ui->comboBox->currentText()); MACRO_DEFINE_TIPDLG_FUCN(tr("UninstallSoftware"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnRunningCheck() { if(ui->comboBox->currentText().isEmpty()) return; MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "IsSoftwareRunning"); json.insert("packageName", ui->comboBox->currentText());//包名需要填写? MACRO_DEFINE_TIPDLG_FUCN(tr("IsSoftwareRunning"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnFpgaUpgrade() { QString url="http://"+m_pLedCard->m_strCardIp+":2016/upload?type=hardware"; QFileDialog dlg; m_strUpgradeFpgaFile = QFileDialog::getOpenFileName(this, "open file dialog", "", tr("apk package (*.rpd)")); QFileInfo file1(m_strUpgradeFpgaFile); QFile file(m_strUpgradeFpgaFile); QMap params_send; //上传的普通参数 在本程序中 需要上传一个普通参数为"username" params_send.insert("username","10005"); UpLoadForm(url,params_send,file1.fileName(),&file,file1.fileName(),1); } void ControlAdvParamWidget::OnFpgaVerCheck() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "CheckHardwareVersions"); MACRO_DEFINE_TIPDLG_FUCN(tr("CheckHardwareVersions"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnSyncFpgaVer() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SynchronousHardwareVersion"); MACRO_DEFINE_TIPDLG_FUCN(tr("SynchronousHardwareVersion"),tr("Check Screen untile fpga update finished"),tr("failed")) } void ControlAdvParamWidget::OnCheckLog() { MACRO_DEFINE_NO_SELECTED_CARD_TIP qDebug()<<"OnCheckLog"; if(m_pLedlist==nullptr) return; if(m_pLedlist->count()<=1) { if(m_pLedCard!=nullptr) { QString strTempUrl="http://"+m_pLedCard->m_strCardIp+":2016/download?file=logs"; qDebug()<httpGet(strTempUrl); } } // else { // emit sigSend(json,TIP); // } } void ControlAdvParamWidget::OnClearPrograms() { MACRO_DEFINE_NO_SELECTED_CARD_TIP // QJsonObject json;//=new QJsonObject(new LinkedHashMap()); // json.insert("_type", "DelPrograms"); // json.insert("_id", getRandomString(10)); // json.insert("zVer","xixun1"); // QVariantHash subData1; // subData1.insert("_type", "DelPrograms"); // subData1.insert("_id", getRandomString(10)); // subData1.insert("zVer","xixun1"); // QJsonObject json = QJsonObject::fromVariantHash(subData1); // QVariantMap subData1; // subData1.insert(const_iterator pos 0,"_type", "DelPrograms"); // subData1.insert(1,"_id", getRandomString(10)); // subData1.insert(2,"zVer","xixun1"); // QJsonObject json = QJsonObject::fromVariantMap(subData1); // QJsonDocument doc1; // doc1.setObject(json); // int itempLength=json.length(); if(m_pLedCard==nullptr) return; QByteArray sendArray;// = doc1.toJson(QJsonDocument::Compact); sendArray.append("{"); sendArray.append("\"_type\":\"DelPrograms\""); sendArray.append(",\"_id\":\""+getRandomString(10)+"\""); sendArray.append(",\"zVer\":\"xixun1\""); sendArray.append("}"); QTcpSocket *send = new QTcpSocket(); send->connectToHost(QHostAddress(m_pLedCard->m_strCardIp),3333); if(!send->waitForConnected(10000)) //等待连接返回 { return ; } qint64 iSendLength=send->write(sendArray,sendArray.length()); qDebug()<<"iSendLength="<waitForBytesWritten(3000)) { qDebug()<<"socket write timeout!"; return ; } if(send->waitForReadyRead(5000)) { QByteArray readBuf=send->read(send->bytesAvailable()); QJsonParseError parseJsonErr; QJsonDocument document = QJsonDocument::fromJson(readBuf,&parseJsonErr); QJsonObject jsonObject = document.object(); if(jsonObject["success"].toBool()) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("Clear program successed!"),this,1); pDlg->exec(); qDebug()<<"tcpsocket read result successed"; } else { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("Clear program failed!"),this,1); pDlg->exec(); qDebug()<<"tcpsocket read result failed"; } } else { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("Clear program timeout!"),this,1); pDlg->exec(); qDebug()<<"tcpsocket read timeout"; } send->close(); delete send; } void ControlAdvParamWidget::OnSyncFirmware() { MACRO_DEFINE_NO_SELECTED_CARD_TIP if(m_pLedCard->bPassword) { if(m_pLedCard->m_bLockStatus&& m_lockFlag == true) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("This screen is encrypted,Please decrypt and upgrade APK!"),this,0); pDlg->exec(); return; } } QString url="http://"+m_pLedCard->m_strCardIp+":2016/upload?type=software"; QFileDialog dlg; m_strUpgradeApkFile = QFileDialog::getOpenFileName(this, "open file dialog", "", tr("apk package (*.apk *.zip)")); QFileInfo file1(m_strUpgradeApkFile); QFile file(m_strUpgradeApkFile); QMap params_send; //上传的普通参数 在本程序中 需要上传一个普通参数为"username" params_send.insert("username","10005"); UpLoadForm(url,params_send,file1.fileName(),&file,file1.fileName(),0); //UpLoadForm(url,file1.fileName(),&file,file1.fileName()); } void ControlAdvParamWidget::slotUploadFpgaFinished() { QFileInfo file(m_strUpgradeApkFile); QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SynchronousHardwareVersion"); HttpPostByTypeJsonObject(pHpptClient,m_strUrl,json); emit sigSetTipTextContent(tr("SynchronousHardwareVersion")); qDebug()<<"slotUploadFinished"; } void ControlAdvParamWidget::slotUploadFinished() { QFileInfo file(m_strUpgradeApkFile); QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "UpgradeSoftware"); json.insert("fileName", file.fileName()); json.insert("isCustom", true); HttpPostByTypeJsonObject(pHpptClient,m_strUrl,json); emit sigSetTipTextContent(tr("install start...")); MACRO_ASKTIME_STOP m_pGetAskTimer->start(50000); qDebug()<<"slotUploadFinished"; } void ControlAdvParamWidget::slotUploadProgress(qint64 A,qint64 B) { if(B!=0) { QString strbaifenbi=tr("Uploadding")+":"+QString("%1%").arg(A*100/B); emit sigSetTipTextContent(strbaifenbi); m_pGetAskTimer->stop(); m_pGetAskTimer->start(30000); } } void ControlAdvParamWidget::UpLoadForm(QString Path,QMap params,QString fileFormName,QFile *uploadFile,QString newFileName,int iType) { QString BOUNDARY=QUuid::createUuid().toString(); QByteArray sb=QByteArray(); //先上传普通的表单数据 // for(QMap::Iteratort=params.begin();t!=params.end();t++) for(QMap::iterator t=params.begin();t!=params.end();t++) { sb.append("--"+BOUNDARY+"\r\n"); sb.append(QString("Content-Disposition: form-data;name=\"")+t.key()+QString("\"")+QString("\r\n")); sb.append("\r\n"); sb.append(t.value()+"\r\n"); } //上传文件的头部 sb.append("--"+BOUNDARY+"\r\n"); sb.append(QString("Content-Disposition: form-data;name=\"")+fileFormName+QString("\";filename=\"")+newFileName+QString("\"")+QString("\r\n")); sb.append("\r\n"); //上传文件内容 if(!uploadFile->open(QIODevice::ReadOnly)){ return; } sb.append(uploadFile->readAll()); sb.append("\r\n"); sb.append("--"+BOUNDARY+"\r\n"); //编辑HTTP头部 QNetworkAccessManager *_uploadManager=new QNetworkAccessManager(); QNetworkRequest request=QNetworkRequest(QUrl(Path)); request.setRawHeader(QString("Content-Type").toLatin1(),QString("multipart/form-data;boundary="+BOUNDARY).toLatin1()); request.setRawHeader(QString("Content-Length").toLatin1(),QString::number(sb.length()).toLatin1()); //执行post请求 if(m_PostingDlg==nullptr) { m_PostingDlg = new LoEmptyDialog(); connect(m_PostingDlg,SIGNAL(sigClose()),this,SLOT(DeletePostingDlg())); connect(m_pGetAskTimer,SIGNAL(timeout()),m_PostingDlg,SLOT(TimerOutUnlock())); m_PostingDlg->lock(tr("UpgradeSoftware"),tr("Success"),tr("UpgradeSoftware")+tr("failed")); m_pGetAskTimer->start(60000); QNetworkReply * m_netReply =_uploadManager->post(request,sb); connect(m_netReply, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(slotUploadProgress(qint64,qint64))); connect(this, SIGNAL(sigSetTipTextContent ( QString )), m_PostingDlg, SLOT( SetTipTextContent(QString))); if(iType==0)//apk { connect(m_netReply, SIGNAL(finished()), this, SLOT(slotUploadFinished())); } else if(iType==1)//fpga.rpd { connect(m_netReply, SIGNAL(finished()), this, SLOT(slotUploadFpgaFinished())); } m_PostingDlg->exec(); } } //void ControlAdvParamWidget::UpLoadForm(QString Path,QString fileFormName,QFile *uploadFile,QString newFileName) //void ControlAdvParamWidget::UpLoadForm(QString Path,QMap params,QString fileFormName,QFile *uploadFile,QString newFileName,int iType) //{ // QString BOUNDARY=QUuid::createUuid().toString(); // QByteArray sb=QByteArray(); // //先上传普通的表单数据 //// for(QMap::Iteratort=params.begin();t!=params.end();t++) // for(QMap::iterator t=params.begin();t!=params.end();t++) // { // sb.append("--"+BOUNDARY+"\r\n"); // sb.append(QString("Content-Disposition: form-data;name=\"")+t.key()+QString("\"")+QString("\r\n")); // sb.append("\r\n"); // sb.append(t.value()+"\r\n"); // } // //上传文件的头部 // sb.append("--"+BOUNDARY+"\r\n"); // sb.append(QString("Content-Disposition: form-data;name=\"")+fileFormName+QString("\";filename=\"")+newFileName+QString("\"")+QString("\r\n")); // sb.append("\r\n"); // //上传文件内容 // if(!uploadFile->open(QIODevice::ReadOnly)){ // return; // } // sb.append(uploadFile->readAll()); // sb.append("\r\n"); // sb.append("--"+BOUNDARY+"\r\n"); // //编辑HTTP头部 // QNetworkAccessManager *_uploadManager=new QNetworkAccessManager(); // QNetworkRequest request=QNetworkRequest(QUrl(Path)); // request.setRawHeader(QString("Content-Type").toLatin1(),QString("multipart/form-data;boundary="+BOUNDARY).toLatin1()); // request.setRawHeader(QString("Content-Length").toLatin1(),QString::number(sb.length()).toLatin1()); // //执行post请求 // if(m_PostingDlg==nullptr) // { // m_PostingDlg = new LoEmptyDialog(); // connect(m_PostingDlg,SIGNAL(sigClose()),this,SLOT(DeletePostingDlg())); // connect(m_pGetAskTimer,SIGNAL(timeout()),m_PostingDlg,SLOT(TimerOutUnlock())); // m_PostingDlg->lock(tr("UpgradeSoftware"),tr("Success"),tr("UpgradeSoftware")+tr("failed")); // m_pGetAskTimer->start(60000); // QNetworkReply * m_netReply =_uploadManager->post(request,sb); // connect(m_netReply, SIGNAL(uploadProgress ( qint64 ,qint64 )), this, SLOT( slotUploadProgress(qint64 ,qint64))); // connect(this, SIGNAL(sigSetTipTextContent ( QString )), m_PostingDlg, SLOT( SetTipTextContent(QString))); // if(iType==0)//apk // { // connect(m_netReply, SIGNAL(finished()), this, SLOT(slotUploadFinished())); // } // else if(iType==1)//fpga.rpd // { // connect(m_netReply, SIGNAL(finished()), this, SLOT(slotUploadFpgaFinished())); // } // m_PostingDlg->exec(); // } //} void ControlAdvParamWidget::OnProHttpGetResponse(QString url, QByteArray data) { if(url!="") { //QString str = QString(data); QString strAppPath=QApplication::applicationDirPath(); strAppPath.replace(MACRO_DANYINFANXIEGAN, MACRO_DANYINXIEGAN); QString strLogFile=strAppPath+"/"+m_pLedCard->m_strCardId+"_log.txt"; QFile fileTemp(strLogFile); fileTemp.remove(); QFile file(strLogFile); if(!file.open(QIODevice::WriteOnly|QIODevice::Text|QIODevice::Append)) { QMessageBox::warning(this,"sdf","can't open",QMessageBox::Yes); } QTextStream stream(&file); //stream<key() == Qt::Key_F5) { if(ui->groupBoxRotate->isVisible()) ui->groupBoxRotate->setVisible(false); else ui->groupBoxRotate->setVisible(true); } else if(ev->key() == Qt::Key_F3) { m_lockFlag=false; } else if(ev->key() == Qt::Key_F6) { if(ui->groupBoxMinMaxBrightness->isVisible()) ui->groupBoxMinMaxBrightness->setVisible(false); else ui->groupBoxMinMaxBrightness->setVisible(true); } else if(ev->key() == Qt::Key_F7) { if(ui->groupBox_3->isVisible()) ui->groupBox_3->setVisible(false); else ui->groupBox_3->setVisible(true); } else if(ev->key() == Qt::Key_F8) { if(ui->groupBox_2->isVisible()) ui->groupBox_2->setVisible(false); else ui->groupBox_2->setVisible(true); } else if(ev->key() == Qt::Key_F12) { setDebugOutput( "d://%1.log", true ); } QWidget::keyPressEvent(ev); } void ControlAdvParamWidget::mousePressEvent(QMouseEvent *event) { if(event->button()==Qt::RightButton) { ui->groupBox_3->setVisible(true); ui->groupBox_4->setVisible(true); ui->checkBox_ADB->setVisible(true); } } void ControlAdvParamWidget::On0degrees() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetScreenRotation"); json.insert("rotation", 0); MACRO_DEFINE_TIPDLG_FUCN(tr("SetScreenRotation"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::On90degrees() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetScreenRotation"); json.insert("rotation", 1); MACRO_DEFINE_TIPDLG_FUCN(tr("SetScreenRotation"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::On180degrees() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetScreenRotation"); json.insert("rotation", 2); MACRO_DEFINE_TIPDLG_FUCN(tr("SetScreenRotation"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::On270degrees() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetScreenRotation"); json.insert("rotation", 3); MACRO_DEFINE_TIPDLG_FUCN(tr("SetScreenRotation"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnSendMinBrightness() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetMinBrightness"); json.insert("brightness", ui->lineEdit_3->text().toInt()); MACRO_DEFINE_TIPDLG_FUCN(tr("SetMinBrightness"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnSendMaxBrightness() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetMaxBrightness"); json.insert("brightness", ui->lineEdit_4->text().toInt()); MACRO_DEFINE_TIPDLG_FUCN(tr("SetMaxBrightness"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnGetMinBrightness() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "GetMinBrightness"); MACRO_DEFINE_TIPDLG_FUCN(tr("GetMinBrightness"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnGetMaxBrightness() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "GetMaxBrightness"); MACRO_DEFINE_TIPDLG_FUCN(tr("GetMaxBrightness"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnM80Set() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetSpecialResolution"); json.insert("displayResolution",ui->comboBox_2->currentText()), //显示分辨率 json.insert("totalResolution",oM80ResolutionsObject[ui->comboBox_2->currentText()].toString() ); //显示分辨率 MACRO_DEFINE_TIPDLG_FUCN(tr("SetSpecialResolution"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnM80Refresh() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "GetSpecialResolution"); MACRO_DEFINE_TIPDLG_FUCN(tr("GetSpecialResolution"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnM80Restore() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "CleanDisplayScreenSize"); MACRO_DEFINE_TIPDLG_FUCN(tr("CleanDisplayScreenSize"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnSetTaxiTopScreen() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "SetHighForBusy"); if(ui->radioButtonLH->isChecked()) json.insert("busyState", 0); else if(ui->radioButtonHL->isChecked()) json.insert("busyState", 1); else { json.insert("busyState", 1); } MACRO_DEFINE_TIPDLG_FUCN(tr("SetHighForBusy"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnReadbackTaxiTopScreen() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "GetStateForBusy"); MACRO_DEFINE_TIPDLG_FUCN(tr("GetStateForBusy"),tr("Success"),tr("failed")) } void setDebugOutput(const QString &rawTargetFilePath_, const bool &argDateFlag_) { static QString rawTargetFilePath; static bool argDateFlag; rawTargetFilePath = rawTargetFilePath_; argDateFlag = argDateFlag_; class HelperClass { public: static void messageHandler(QtMsgType type, const QMessageLogContext &, const QString &message_) { QString message; switch ( type ) { case QtDebugMsg: { message = message_; break; } case QtWarningMsg: { message.append("Warning: "); message.append(message_); break; } case QtCriticalMsg: { message.append("Critical: "); message.append(message_); break; } case QtFatalMsg: { message.append("Fatal: "); message.append(message_); break; } default: { break; } } QString currentTargetFilePath; if ( argDateFlag ) { currentTargetFilePath = rawTargetFilePath.arg( ( ( argDateFlag ) ? ( QDateTime::currentDateTime().toString("yyyy_MM_dd") ) : ( "" ) ) ); } else { currentTargetFilePath = rawTargetFilePath; } if ( !QFileInfo::exists( currentTargetFilePath ) ) { QDir().mkpath( QFileInfo( currentTargetFilePath ).path() ); } QFile file( currentTargetFilePath ); file.open( QIODevice::WriteOnly | QIODevice::Append ); QTextStream textStream( &file ); textStream << QDateTime::currentDateTime().toString( "yyyy-MM-dd hh:mm:ss" ) << ": " << message << endl; } }; qInstallMessageHandler( HelperClass::messageHandler ); } //void ControlAdvParamWidget::OnBindingIc() //{ // MACRO_DEFINE_NO_SELECTED_CARD_TIP // m_strStartUrl="http://"+m_pLedCard->m_strCardIp+":3000"; // QFileDialog dlg; // QString m_strIcFile = QFileDialog::getOpenFileName(this, "open file dialog", // "", // tr("indentity voucher (*.ic)")); // if(m_strIcFile.isEmpty()) // return; // QFileInfo file1(m_strIcFile); // QFile file(m_strIcFile); // QJsonObject json; // json.insert("action", "InvokeTaxiAppFunction"); // QJsonObject subJson; // subJson.insert("action", "BindAccount"); // file.open(QIODevice::ReadOnly); // QJsonDocument document=QJsonDocument::fromJson(file.readAll()); // QJsonObject jsonObject = document.object(); // subJson.insert("accountIdToken", jsonObject["account_id_token"].toString()); // json.insert("jsonCommand", subJson); // if(m_pLedlist->count()<=1) // { // if(m_pLedCard!=nullptr) // { // HttpPostByTypeJsonObject(pHpptClient,m_strStartUrl,json); // if(m_PostingDlg==nullptr) // { // m_PostingDlg = new LoEmptyDialog(this); // connect(m_PostingDlg,SIGNAL(sigClose()),this,SLOT(DeletePostingDlg())); // connect(m_pGetAskTimer,SIGNAL(timeout()),m_PostingDlg,SLOT(TimerOutUnlock())); // m_PostingDlg->lock(tr("InvokeTaxiAppFunction"),tr("Success"),tr("failed")); // m_pGetAskTimer->start(5000); // m_PostingDlg->exec(); // } // } // } // else { // emit sigSend(json,tr("InvokeTaxiAppFunction")); // } // QJsonObject json1; // json1.insert("action", "InvokeTaxiAppFunction"); // json1.insert("type", "SetTaxiServer"); // json1.insert("server", jsonObject["taxiServerURL"].toString()); // json1.insert("tlsServer", jsonObject["taxiServerTLSURL"].toString()); // if(m_pLedlist->count()<=1) // { // if(m_pLedCard!=nullptr) // { // HttpPostByTypeJsonObject(pHpptClient,m_strStartUrl,json1); // } // } // else { // emit sigSend(json1,tr("SetTaxiServer")); // } //} void ControlAdvParamWidget::OnOpenAdb() { MACRO_DEFINE_NO_SELECTED_CARD_TIP QJsonObject json; json.insert("_id", getRandomString(10)); json.insert("_type", "OpenAdb"); if(ui->checkBox_ADB->isChecked()) { json.insert("open", true); } else { json.insert("open", false); } MACRO_DEFINE_TIPDLG_FUCN(tr("OpenAdb"),tr("Success"),tr("failed")) } void ControlAdvParamWidget::OnBindingIc() { MACRO_DEFINE_NO_SELECTED_CARD_TIP m_strStartUrl="http://"+m_pLedCard->m_strCardIp+":3000"; QFileDialog dlg; QString m_strIcFile = QFileDialog::getOpenFileName(this, "open file dialog", "", tr("indentity voucher (*.ic)")); if(m_strIcFile.isEmpty()) return; QFileInfo file1(m_strIcFile); QFile file(m_strIcFile); QJsonObject json; json.insert("action", "InvokeTaxiAppFunction"); QJsonObject subJson; subJson.insert("action", "BindAccount"); file.open(QIODevice::ReadOnly); QJsonDocument document=QJsonDocument::fromJson(file.readAll()); QJsonObject jsonObject = document.object(); subJson.insert("accountIdToken", jsonObject["account_id_token"].toString()); subJson.insert("server", jsonObject["taxiServerURL"].toString()); subJson.insert("tlsServer", jsonObject["taxiServerTLSURL"].toString()); json.insert("jsonCommand", subJson); if(m_pLedlist==nullptr) return; if(m_pLedlist->count()<=1) { if(m_pLedCard!=nullptr) { HttpPostByTypeJsonObject(pHpptClient,m_strStartUrl,json); if(m_PostingDlg==nullptr) { m_PostingDlg = new LoEmptyDialog(this); connect(m_PostingDlg,SIGNAL(sigClose()),this,SLOT(DeletePostingDlg())); connect(m_pGetAskTimer,SIGNAL(timeout()),m_PostingDlg,SLOT(TimerOutUnlock())); m_PostingDlg->lock(tr("InvokeTaxiAppFunction"),tr("Success"),tr("failed")); m_pGetAskTimer->start(5000); m_PostingDlg->exec(); } } } else { emit sigSend(json,tr("InvokeTaxiAppFunction")); } } void ControlAdvParamWidget::DeletePostingDlg() { if(m_PostingDlg!=nullptr) { delete m_PostingDlg; m_PostingDlg=nullptr; } } QString ControlAdvParamWidget::qs2B64(QString qs1){//ok // QByteArray ba; ba=qs1.toUtf8(); //QByteArray ba=ba.toBase64(); //Base64 char * cx=ba.data(); //char * QString b64qs1=QString(cx);//QString // return b64qs1; } QString ControlAdvParamWidget::b64ToQs(QString b64qs1){//ok QByteArray ba; std::string stdStr = b64qs1.toStdString();//std::string ba=QByteArray(stdStr.c_str() ); //QByteArray ba=ba.fromBase64(ba); //unBase64 QString qs1=QString::fromUtf8(ba); //QString return qs1; } void ControlAdvParamWidget::OnSendCustomJson(){//ok MACRO_DEFINE_NO_SELECTED_CARD_TIP m_strStartUrl="http://"+m_pLedCard->m_strCardIp+":3000"; QJsonObject json; QJsonParseError l_err; QJsonDocument l_doc = QJsonDocument::fromJson(ui->JsonEdit->toPlainText().toUtf8(), &l_err); if (l_err.error == QJsonParseError::NoError) { if (l_doc.isObject()) { json = l_doc.object(); } } if(json.count()<=0) { X_UIMsgBoxOk *pDlg=new X_UIMsgBoxOk(tr("Tip"),tr("Json format is error!"),this,0); pDlg->exec(); return; } if(m_pLedlist==nullptr) return; if(m_pLedlist->count()<=1) { if(m_pLedCard!=nullptr) { HttpPostByTypeJsonObject(pHpptClient,m_strStartUrl,json); if(m_PostingDlg==nullptr) { m_PostingDlg = new LoEmptyDialog(this); connect(m_PostingDlg,SIGNAL(sigClose()),this,SLOT(DeletePostingDlg())); connect(m_pGetAskTimer,SIGNAL(timeout()),m_PostingDlg,SLOT(TimerOutUnlock())); m_PostingDlg->lock(tr("AliIotSetting"),tr("Success"),tr("failed")); m_pGetAskTimer->start(5000); m_PostingDlg->exec(); } } } else { emit sigSend(json,tr("AliIotSetting")); } }