| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617 |
- #include "dfotaConfig.h"
- #include "./src/dfota.h"
- #include "./src/crc32.h"
- #include "mainwindow.h"
- #include "./ui_mainwindow.h"
- #include "build_date_time.h"
- #include "./src/dfota.h"
- #include "iostream"
- #include "string.h"
- #include <string>
- #include <QMutex>
- #include <QDateTime>
- #include <QDebug>
- #include <QDir>
- #include <iostream>
- //#include <QDialog>//
- #include <QFileDialog>
- #include <QMessageBox>
- using namespace std;
- DFOTA dfota;
- typedef struct WindowLE{
- QLineEdit le_devType;
- QLineEdit le_newFile;
- QLineEdit le_oldFile[MAX_OLDFILES_NUM];
- QLineEdit le_pkgFile;
- }WindowLE_t;
- //void appendMsgOut(MainWindow *w,QString msg){
- // emit w->MainWindow::qdebug_signals(msg);
- //};
- QMutex mutex;
- Ui::MainWindow *pui;
- void MainWindow::appendlog(QString msg){
- emit this->process_bar_signals(0,"开始...");
- }
- void MainWindow::myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
- {
- pui->textEdit_log->append(msg);
- pui->textEdit_log->moveCursor(QTextCursor::End);
- // pw->appendMsgOut(msg);
- //创建log文件夹
- QDir dir("log");
- if (!dir.exists())
- {
- QDir dir;
- dir.mkdir("log");
- }
- //创建log文件
- QString currentDate = QDateTime::currentDateTime().toString("yyyyMMdd");
- QString logName = "log" + currentDate + ".txt";
- QString logFileName = "log/" + logName;
- // 加锁
- mutex.lock();
- QByteArray localMsg = msg.toLocal8Bit();
- //信息分类
- QString strMsg("");
- switch(type)
- {
- case QtDebugMsg:
- strMsg = QString("Debug:");
- break;
- case QtInfoMsg:
- strMsg = QString("Info:");
- break;
- case QtWarningMsg:
- strMsg = QString("Warning:");
- break;
- case QtCriticalMsg:
- strMsg = QString("Critical:");
- break;
- case QtFatalMsg:
- strMsg = QString("Fatal:");
- break;
- default:
- break;
- }
- //Release 版本默认不包含context这些信息:文件名、函数名、行数,需要在.pro项目文件加入以下代码,加入后最好重新构建项目使之生效:
- //DEFINES += QT_MESSAGELOGCONTEXT
- //在.pro文件定义以下的宏,可以屏蔽相应的日志输出
- //DEFINES += QT_NO_WARNING_OUTPUT
- //DEFINES += QT_NO_DEBUG_OUTPUT
- //DEFINES += QT_NO_INFO_OUTPUT
- //文件名、函数名、行数
- strMsg += QString("Function: %1 File: %2 Line: %3 ").arg(context.function).arg(context.file).arg(context.line);
- // 时间和内容
- QString strDateTime = QDateTime::currentDateTime().toString("hh:mm:ss");
- // QString strMessage = QString("%1 %2:%3").arg(strDateTime).arg(strMsg).arg(localMsg.constData());
- QString strMessage = QString("%1 %2").arg(strDateTime).arg(strMsg);
- strMessage += msg;
- //写入文件
- QFile file(logFileName);
- if (!file.open(QIODevice::WriteOnly | QIODevice::Append))
- {
- file.close();
- // return ;
- }
- QTextStream stream(&file);
- stream << strMessage << "\r\n";;
- file.flush();
- file.close();
- // 解锁
- mutex.unlock();
- }
- void MainWindow::getConfig()
- {
- QDir dir("tmp");
- if (!dir.exists())
- {
- QDir dir;
- dir.mkdir("tmp");
- }
- char get_string[MAX_PATH];
- memset(get_string,0,sizeof (get_string));
- // qDebug("%s\r\n",DFOTACONFIG_FILE);
- GetPrivateProfileString("newBinFile", "ep", "", get_string, 9, DFOTACONFIG_FILE);
- bool ok;
- uint32_t ep = ui->lineEdit_ep->text().toUInt(&ok,16);
- if((not ok)||(ep < 0x08000000)||(ep>(0x80000000+0x40000000))){
- ui->lineEdit_ep->setText("80000000");
- WritePrivateProfileString("newBinFile", "ep", "80000000", DFOTACONFIG_FILE);
- }
- ui->lineEdit_ep->setText(get_string);
- // qDebug("%s\r\n",get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("newBinFile", "file", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_newFile->setText(get_string);
- // qDebug("%s\r\n",get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("oldBinFile", "file_1", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_oldFile0->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("oldBinFile", "file_2", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_oldFile1->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("oldBinFile", "file_3", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_oldFile2->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("oldBinFile", "file_4", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_oldFile3->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("oldBinFile", "file_5", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_oldFile4->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("oldBinFile", "file_6", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_oldFile5->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("oldBinFile", "file_7", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_oldFile6->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("oldBinFile", "file_8", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_oldFile7->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- GetPrivateProfileString("pkgBinFile", "file", "", get_string, MAX_PATH, DFOTACONFIG_FILE);
- ui->lineEdit_pkgFile->setText(get_string);
- memset(get_string,0,sizeof (get_string));
- // ui->textEdit_log->setText("");
- }
- void MainWindow::ep_slot(){
- bool ok;
- uint32_t ep = ui->lineEdit_ep->text().toUInt(&ok,16);
- if((not ok)||(ep < 0x08000000)||(ep>(0x80000000+0x40000000))){
- ui->lineEdit_ep->setText("80000000");
- return;
- }
- WritePrivateProfileString("newBinFile", "ep", ui->lineEdit_ep->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- QString getFileDir(const char* path){
- char drive[MAX_PATH] = {0};
- char dir[MAX_PATH] = {0};
- char filename[MAX_PATH] = {0};
- char ext[MAX_PATH] = {0};
- QString FileDir;
- _splitpath_s(path, drive, dir,filename, ext);
- if(strlen(path) == 0)
- FileDir = "";
- else
- FileDir = QString::fromStdString(drive)+QString::fromStdString(dir);
- return FileDir;
- }
- void MainWindow::openNewFile_slot(){
- QString fileDir = getFileDir(ui->lineEdit_newFile->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("newBinFile", "file", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_newFile->setText(s);
- }
- void MainWindow::openOldFile0_slot(){
- QString fileDir = getFileDir(ui->lineEdit_oldFile0->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("oldBinFile", "file_1", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_oldFile0->setText(s);
- }
- void MainWindow::openOldFile1_slot(){
- QString fileDir = getFileDir(ui->lineEdit_oldFile1->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("oldBinFile", "file_2", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_oldFile1->setText(s);
- }
- void MainWindow::openOldFile2_slot(){
- QString fileDir = getFileDir(ui->lineEdit_oldFile2->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("oldBinFile", "file_3", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_oldFile2->setText(s);
- }
- void MainWindow::openOldFile3_slot(){
- QString fileDir = getFileDir(ui->lineEdit_oldFile3->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("oldBinFile", "file_4", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_oldFile3->setText(s);
- }
- void MainWindow::openOldFile4_slot(){
- QString fileDir = getFileDir(ui->lineEdit_oldFile4->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("oldBinFile", "file_5", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_oldFile4->setText(s);
- }
- void MainWindow::openOldFile5_slot(){
- QString fileDir = getFileDir(ui->lineEdit_oldFile5->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("oldBinFile", "file_6", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_oldFile5->setText(s);
- }
- void MainWindow::openOldFile6_slot(){
- QString fileDir = getFileDir(ui->lineEdit_oldFile6->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("oldBinFile", "file_7", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_oldFile6->setText(s);
- }
- void MainWindow::openOldFile7_slot(){
- QString fileDir = getFileDir(ui->lineEdit_oldFile7->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("oldBinFile", "file_8", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_oldFile7->setText(s);
- }
- void MainWindow::openPkgFolder_slot(){
- QString fileDir = getFileDir(ui->lineEdit_pkgFile->text().toStdString().c_str());
- QString s = QFileDialog::getOpenFileName(this,"open file dialog",fileDir,"二进制文件(*.bin)");
- if(s.length()==0)return;
- WritePrivateProfileString("pkgBinFile", "file", s.toStdString().c_str(), DFOTACONFIG_FILE);
- ui->lineEdit_pkgFile->setText(s);
- }
- void MainWindow::editNewFile_slot(){
- WritePrivateProfileString("newBinFile", "file", ui->lineEdit_newFile->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editOldFile0_slot(){
- WritePrivateProfileString("oldBinFile", "file_1", ui->lineEdit_oldFile0->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editOldFile1_slot(){
- WritePrivateProfileString("oldBinFile", "file_2", ui->lineEdit_oldFile1->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editOldFile2_slot(){
- WritePrivateProfileString("oldBinFile", "file_3", ui->lineEdit_oldFile2->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editOldFile3_slot(){
- WritePrivateProfileString("oldBinFile", "file_4", ui->lineEdit_oldFile3->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editOldFile4_slot(){
- WritePrivateProfileString("oldBinFile", "file_5", ui->lineEdit_oldFile4->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editOldFile5_slot(){
- WritePrivateProfileString("oldBinFile", "file_6", ui->lineEdit_oldFile5->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editOldFile6_slot(){
- WritePrivateProfileString("oldBinFile", "file_7", ui->lineEdit_oldFile6->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editOldFile7_slot(){
- WritePrivateProfileString("oldBinFile", "file_8", ui->lineEdit_oldFile7->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- void MainWindow::editPkgFolder_slot(){
- WritePrivateProfileString("pkgBinFile", "file", ui->lineEdit_pkgFile->text().toStdString().c_str(), DFOTACONFIG_FILE);
- }
- InputData_t inputData;
- void MainWindow::pkg_creater_slot()
- {
- bool ok;
- memset(&inputData,0,sizeof(inputData));
- // 获取输入参数
- // inputData.devType = ui->lineEdit_devType->text().toUShort(&ok,16);
- inputData.ep = ui->lineEdit_ep->text().toUInt(&ok,16);
- memcpy_s(inputData.newFilePath,MAX_PATH,ui->lineEdit_newFile->text().toStdString().c_str(),ui->lineEdit_newFile->text().toStdString().length());
- if(ui->checkBox_old0->checkState())
- memcpy_s(inputData.oldFilePath[0],MAX_PATH,ui->lineEdit_oldFile0->text().toStdString().c_str(),ui->lineEdit_oldFile0->text().toStdString().length());
- if(ui->checkBox_old1->checkState())
- memcpy_s(inputData.oldFilePath[1],MAX_PATH,ui->lineEdit_oldFile1->text().toStdString().c_str(),ui->lineEdit_oldFile1->text().toStdString().length());
- if(ui->checkBox_old2->checkState())
- memcpy_s(inputData.oldFilePath[2],MAX_PATH,ui->lineEdit_oldFile2->text().toStdString().c_str(),ui->lineEdit_oldFile2->text().toStdString().length());
- if(ui->checkBox_old3->checkState())
- memcpy_s(inputData.oldFilePath[3],MAX_PATH,ui->lineEdit_oldFile3->text().toStdString().c_str(),ui->lineEdit_oldFile3->text().toStdString().length());
- if(ui->checkBox_old4->checkState())
- memcpy_s(inputData.oldFilePath[4],MAX_PATH,ui->lineEdit_oldFile4->text().toStdString().c_str(),ui->lineEdit_oldFile4->text().toStdString().length());
- if(ui->checkBox_old5->checkState())
- memcpy_s(inputData.oldFilePath[5],MAX_PATH,ui->lineEdit_oldFile5->text().toStdString().c_str(),ui->lineEdit_oldFile5->text().toStdString().length());
- if(ui->checkBox_old6->checkState())
- memcpy_s(inputData.oldFilePath[6],MAX_PATH,ui->lineEdit_oldFile6->text().toStdString().c_str(),ui->lineEdit_oldFile6->text().toStdString().length());
- if(ui->checkBox_old7->checkState())
- memcpy_s(inputData.oldFilePath[7],MAX_PATH,ui->lineEdit_oldFile7->text().toStdString().c_str(),ui->lineEdit_oldFile7->text().toStdString().length());
- memcpy_s(inputData.pkgFilePath,MAX_PATH,ui->lineEdit_pkgFile->text().toStdString().c_str(),ui->lineEdit_pkgFile->text().toStdString().length());
- inputData.check_d = ui->checkBox_d->checkState();
- inputData.check_z = ui->checkBox_z->checkState();
- dfota.bsdiff_task(this,&inputData);
- }
- void MainWindow::pkg_read_slot(){
- memset(&inputData,0,sizeof(inputData));
- memcpy_s(inputData.pkgFilePath,MAX_PATH,ui->lineEdit_pkgFile->text().toStdString().c_str(),ui->lineEdit_pkgFile->text().toStdString().length());
- dfota.read_task(this,&inputData);
- }
- void MainWindow::pkg_check_slot(){
- bool ok;
- memset(&inputData,0,sizeof(inputData));
- // 获取输入参数
- memcpy_s(inputData.newFilePath,MAX_PATH,ui->lineEdit_newFile->text().toStdString().c_str(),ui->lineEdit_newFile->text().toStdString().length());
- if(ui->checkBox_old0->checkState())
- memcpy_s(inputData.oldFilePath[0],MAX_PATH,ui->lineEdit_oldFile0->text().toStdString().c_str(),ui->lineEdit_oldFile0->text().toStdString().length());
- if(ui->checkBox_old1->checkState())
- memcpy_s(inputData.oldFilePath[1],MAX_PATH,ui->lineEdit_oldFile1->text().toStdString().c_str(),ui->lineEdit_oldFile1->text().toStdString().length());
- if(ui->checkBox_old2->checkState())
- memcpy_s(inputData.oldFilePath[2],MAX_PATH,ui->lineEdit_oldFile2->text().toStdString().c_str(),ui->lineEdit_oldFile2->text().toStdString().length());
- if(ui->checkBox_old3->checkState())
- memcpy_s(inputData.oldFilePath[3],MAX_PATH,ui->lineEdit_oldFile3->text().toStdString().c_str(),ui->lineEdit_oldFile3->text().toStdString().length());
- if(ui->checkBox_old4->checkState())
- memcpy_s(inputData.oldFilePath[4],MAX_PATH,ui->lineEdit_oldFile4->text().toStdString().c_str(),ui->lineEdit_oldFile4->text().toStdString().length());
- if(ui->checkBox_old5->checkState())
- memcpy_s(inputData.oldFilePath[5],MAX_PATH,ui->lineEdit_oldFile5->text().toStdString().c_str(),ui->lineEdit_oldFile5->text().toStdString().length());
- if(ui->checkBox_old6->checkState())
- memcpy_s(inputData.oldFilePath[6],MAX_PATH,ui->lineEdit_oldFile6->text().toStdString().c_str(),ui->lineEdit_oldFile6->text().toStdString().length());
- if(ui->checkBox_old7->checkState())
- memcpy_s(inputData.oldFilePath[7],MAX_PATH,ui->lineEdit_oldFile7->text().toStdString().c_str(),ui->lineEdit_oldFile7->text().toStdString().length());
- memcpy_s(inputData.pkgFilePath,MAX_PATH,ui->lineEdit_pkgFile->text().toStdString().c_str(),ui->lineEdit_pkgFile->text().toStdString().length());
- inputData.check_d = ui->checkBox_d->checkState();
- inputData.check_z = ui->checkBox_z->checkState();
- dfota.check_task(this,&inputData);
- }
- void MainWindow::bt_clrLog_solt(){
- ui->textEdit_log->setText("");
- }
- void MainWindow::process_bar_solt(int p,QString msg){
- ui->progressBar->setValue(p);
- ui->label_bar_msg->setText(msg);
- }
- void MainWindow::pkg_set_path_solt(QString msg){
- ui->lineEdit_pkgFile->setText(msg);
- WritePrivateProfileString("pkgBinFile", "file", msg.toStdString().c_str(), DFOTACONFIG_FILE);
- }
- //PartiallyChecked
- void MainWindow::checkBox_all_solt(){
- ui->checkBox_old0->setCheckState(Qt::Checked);
- ui->checkBox_old1->setCheckState(Qt::Checked);
- ui->checkBox_old2->setCheckState(Qt::Checked);
- ui->checkBox_old3->setCheckState(Qt::Checked);
- ui->checkBox_old4->setCheckState(Qt::Checked);
- ui->checkBox_old5->setCheckState(Qt::Checked);
- ui->checkBox_old6->setCheckState(Qt::Checked);
- ui->checkBox_old7->setCheckState(Qt::Checked);
- }
- void MainWindow::checkBox_none_solt(){
- ui->checkBox_old0->setCheckState(Qt::Unchecked);
- ui->checkBox_old1->setCheckState(Qt::Unchecked);
- ui->checkBox_old2->setCheckState(Qt::Unchecked);
- ui->checkBox_old3->setCheckState(Qt::Unchecked);
- ui->checkBox_old4->setCheckState(Qt::Unchecked);
- ui->checkBox_old5->setCheckState(Qt::Unchecked);
- ui->checkBox_old6->setCheckState(Qt::Unchecked);
- ui->checkBox_old7->setCheckState(Qt::Unchecked);
- }
- void MainWindow::checkBox_d_solt(){
- // d=0,z=0,-> d=0,z=0
- // d=0,z=Z,-> d=0,z=Z
- // d=1,z=0,-> 禁止
- // d=D,z=Z,-> d=D,z=Z
- if(ui->checkBox_d->checkState()==Qt::Checked&&ui->checkBox_z->checkState()==Qt::Unchecked){
- QMessageBox::warning(this,"DFOTA","不允许的操作,有差分则必须有压缩");
- ui->checkBox_d->setCheckState(Qt::Checked);ui->checkBox_z->setCheckState(Qt::Checked);
- }
- }
- void MainWindow::checkBox_z_solt(){
- // d=0,z=0,-> d=0,z=0
- // d=0,z=Z,-> d=0,z=Z
- // d=1,z=0,-> 禁止
- // d=D,z=Z,-> d=D,z=Z
- if(ui->checkBox_d->checkState()==Qt::Checked&&ui->checkBox_z->checkState()==Qt::Unchecked){
- QMessageBox::warning(this,"DFOTA","不允许的操作,有差分则必须有压缩");
- ui->checkBox_d->setCheckState(Qt::Checked);ui->checkBox_z->setCheckState(Qt::Checked);
- }
- }
- void MainWindow::editTimeStamp_slot(){
- char logMsg[256]={0};
- bool ok;
- time_t stamp = ui->lineEdit_time_stamp->text().toUInt();
- get_stamp2string_s(stamp,logMsg);
- ui->lineEdit_time_string->setText(logMsg);
- return;
- }
- void MainWindow::editTimeString_slot(){
- return;
- }
- void MainWindow::crc32_test_slot(){
- bool ok;
- int tail =0;
- QString path = "";
- uint8_t* buff = nullptr;
- int size=0;
- uint32_t crc=0;
- int result=0;
- char logMsg[256]={0};
- int logLen=0;
- path = QFileDialog::getOpenFileName(this,"请打开需要crc32计算的bin文件","./","二进制文件(*.bin)");
- if(path.length() == 0) return;
- buff = (uint8_t*)malloc(MAX_BIN_SIZE);
- if(buff==nullptr) return;
- result = my_fr(path.toStdString().c_str(),buff,&size);
- if(result<=0)return;
- if(size>MAX_BIN_SIZE){
- QMessageBox::warning(this,"crc32测试结果","选择的文件 太大 了");
- if(buff) free(buff);
- return;
- }
- if((size-tail)<4){
- QMessageBox::warning(this,"crc32测试结果","选择的文件 太小 了");
- if(buff) free(buff);
- return;
- }
- tail = ui->lineEdit_crc32_test->text().toUInt(&ok);
- crc = crc32((uint32_t*)buff,(size-tail)/4);
- snprintf(logMsg,sizeof(logMsg),"tail=%d,crc32 = 0x%08X.\r\n%s.\r\n",tail,crc,path.toStdString().c_str());
- qDebug() << logMsg;
- QMessageBox::warning(this,"crc32测试结果",logMsg);
- if(buff) free(buff);
- }
- void MainWindow::test_solt(){
- dfota_test();
- }
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- char logMsg[256]={0};
- ui->setupUi(this);
- snprintf(logMsg,sizeof(logMsg),"%s (build %s)",APP_VERSION,g_build_date_time);
- this->setWindowTitle(logMsg);
- pui = ui;
- qInstallMessageHandler(MainWindow::myMessageOutput);
- getConfig();
- ui->lineEdit_time_stamp->setText(QString::number(time(NULL)));
- get_stamp2string_s(time(NULL),logMsg);
- ui->lineEdit_time_string->setText(logMsg);
- connect(ui->lineEdit_ep, SIGNAL(editingFinished()),this,SLOT(ep_slot()));
- connect(ui->pushButton_newFile, SIGNAL(clicked()),this,SLOT(openNewFile_slot()));
- connect(ui->pushButton_oldFile0,SIGNAL(clicked()),this,SLOT(openOldFile0_slot()));
- connect(ui->pushButton_oldFile1,SIGNAL(clicked()),this,SLOT(openOldFile1_slot()));
- connect(ui->pushButton_oldFile2,SIGNAL(clicked()),this,SLOT(openOldFile2_slot()));
- connect(ui->pushButton_oldFile3,SIGNAL(clicked()),this,SLOT(openOldFile3_slot()));
- connect(ui->pushButton_oldFile4,SIGNAL(clicked()),this,SLOT(openOldFile4_slot()));
- connect(ui->pushButton_oldFile5,SIGNAL(clicked()),this,SLOT(openOldFile5_slot()));
- connect(ui->pushButton_oldFile6,SIGNAL(clicked()),this,SLOT(openOldFile6_slot()));
- connect(ui->pushButton_oldFile7,SIGNAL(clicked()),this,SLOT(openOldFile7_slot()));
- connect(ui->pushButton_pkgFile, SIGNAL(clicked()),this,SLOT(openPkgFolder_slot()));
- connect(ui->lineEdit_newFile,SIGNAL(editingFinished()),this,SLOT(editNewFile_slot()));
- connect(ui->lineEdit_oldFile0,SIGNAL(editingFinished()),this,SLOT(editOldFile0_slot()));
- connect(ui->lineEdit_oldFile1,SIGNAL(editingFinished()),this,SLOT(editOldFile1_slot()));
- connect(ui->lineEdit_oldFile2,SIGNAL(editingFinished()),this,SLOT(editOldFile2_slot()));
- connect(ui->lineEdit_oldFile3,SIGNAL(editingFinished()),this,SLOT(editOldFile3_slot()));
- connect(ui->lineEdit_oldFile4,SIGNAL(editingFinished()),this,SLOT(editOldFile4_slot()));
- connect(ui->lineEdit_oldFile5,SIGNAL(editingFinished()),this,SLOT(editOldFile5_slot()));
- connect(ui->lineEdit_oldFile6,SIGNAL(editingFinished()),this,SLOT(editOldFile6_slot()));
- connect(ui->lineEdit_oldFile7,SIGNAL(editingFinished()),this,SLOT(editOldFile7_slot()));
- connect(ui->lineEdit_pkgFile,SIGNAL(editingFinished()),this,SLOT(editPkgFolder_slot()));
- connect(ui->pushButton_pkg_create,SIGNAL(clicked()),this,SLOT(pkg_creater_slot()));
- connect(ui->pushButton_pkg_check,SIGNAL(clicked()),this,SLOT(pkg_check_slot()));
- connect(ui->pushButton_pkg_read,SIGNAL(clicked()),this,SLOT(pkg_read_slot()));
- connect(ui->pushButton_clrLog,SIGNAL(clicked()),this,SLOT(bt_clrLog_solt()));
- connect(ui->pushButton_exit,SIGNAL(clicked()),this,SLOT(close()));
- connect(ui->pushButton_check_all,SIGNAL(clicked()),this,SLOT(checkBox_all_solt()));
- connect(ui->pushButton_check_none,SIGNAL(clicked()),this,SLOT(checkBox_none_solt()));
- connect(ui->checkBox_d,SIGNAL(released()),this,SLOT(checkBox_d_solt()));
- connect(ui->checkBox_z,SIGNAL(released()),this,SLOT(checkBox_z_solt()));
- connect(this,SIGNAL(process_bar_signals(int,QString)),this,SLOT(process_bar_solt(int,QString)));
- connect(this,SIGNAL(qdebug_signals(QString)),ui->textEdit_log,SLOT(append(QString)));
- connect(this,SIGNAL(pkg_set_path_signals(QString)),this,SLOT(pkg_set_path_solt(QString)));
- connect(ui->lineEdit_time_stamp,SIGNAL(editingFinished()),this,SLOT(editTimeStamp_slot()));
- connect(ui->lineEdit_time_string,SIGNAL(editingFinished()),this,SLOT(editTimeString_slot()));
- connect(ui->pushButton_test,SIGNAL(clicked()),this,SLOT(test_solt()));
- connect(ui->pushButton_crc32_test,SIGNAL(clicked()),this,SLOT(crc32_test_slot()));
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
|