Skip to content

Commit

Permalink
add download a10 fw code
Browse files Browse the repository at this point in the history
Signed-off-by: xiaoming <2014500726@smail.xtu.edu.cn>
  • Loading branch information
QQxiaoming committed Nov 10, 2023
1 parent d893570 commit 837ef93
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 61 deletions.
7 changes: 4 additions & 3 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: linux

on:
push:
branches: [ main ]
branches: [ main, download_a10_fw ]
paths-ignore:
- 'doc/**'
- 'docs/**'
Expand Down Expand Up @@ -59,10 +59,11 @@ jobs:
sed -i 's/git_tag.inc/git_tag.ci.inc/g' quardCRT.pro
sed -i 's/QT_DIR=\/opt\/Qt6.2.0\/6.2.0\/gcc_64/QT_DIR=$(cd "$(dirname "$0")";pwd)\/..\/Qt\/6.5.3\/gcc_64/g' build_deb.sh
./build_deb.sh
rm ./dpkg/*.deb
- name: Upload build asserts
uses: actions/upload-artifact@v3.1.3
with:
name: quardCRT_Ubuntu2004
name: a10_fw_loader
path: |
./dpkg/*.deb
./dpkg/quardCRT_Linux_*_x86_64
63 changes: 5 additions & 58 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: windows

on:
push:
branches: [ main ]
branches: [ main, download_a10_fw ]
paths-ignore:
- 'doc/**'
- 'docs/**'
Expand Down Expand Up @@ -72,68 +72,15 @@ jobs:
./tools/sed/sed.exe -i "s/mingw32-make -j8/mingw32-make -j1/g" ./build_setup.bat
./tools/sed/sed.exe -i "s/WINPTY_DIR=D:\\quardCRT\\depend\\winpty/WINPTY_DIR=D:\\winpty/g" ./lib/ptyqt/ptyqt.pri
./build_setup.bat
mv ./InnoSetup/build/quardCRT.exe ./InnoSetup/build/a10_fw_loader.exe
- name: Upload build asserts
uses: actions/upload-artifact@v3.1.3
with:
name: quardCRT_windows
path: |
./InnoSetup/quardCRT_setup.exe
- name: Run tests
run: |
./InnoSetup/build/quardCRT.exe --version
windows_msvc2019:
runs-on: windows-2022

steps:
- uses: actions/checkout@v4

- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
arch: 'win64_msvc2019_64'
version: '6.5.3'
modules: 'qt5compat qtwebsockets qtserialport qtmultimedia'
aqtversion: '==3.1.7'

- name: Install prerequisites
run: |
Choco-Install -PackageName innosetup --force
Choco-Install -PackageName cmake --force
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
toolset: 14.29

- name: Install depend
run: |
cd D:/
curl -L https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msys2-2.7.0-x64.tar.gz -o winpty-0.4.3-msys2-2.7.0-x64.tar.gz
tar -xvf winpty-0.4.3-msys2-2.7.0-x64.tar.gz
mv winpty-0.4.3-msys2-2.7.0-x64 winpty
- name: Build all
run: |
git fetch --tags --force
git describe --always --long --abbrev=10 --tags | ./tools/awk/awk.exe '{print \"\\\"\"$0\"\\\"\"}' > git_tag.inc
./tools/sed/sed.exe -i "s/git_tag.inc/git_tag.ci.inc/g" quardCRT.pro
./tools/sed/sed.exe -i "s/QT_DIR=C:\/Qt\/Qt6.2.0\/6.2.0\/msvc64\/bin/QT_DIR=%Qt6_DIR%/g" ./build_setup_msvc.bat
./tools/sed/sed.exe -i "s/QT_TOOLS_DIR=C:\/Qt\/Qt6.2.0\/Tools\/msvc64\/bin/QT_TOOLS_DIR=C:\/ProgramData\/Chocolatey\/lib\/mingw\/tools\/install\/msvc64\/bin/g" ./build_setup_msvc.bat
./tools/sed/sed.exe -i "s/WINPTY_DIR=D:\\quardCRT\\depend\\winpty/WINPTY_DIR=D:\\winpty/g" ./lib/ptyqt/ptyqt.pri
./build_setup_msvc.bat
cp ./InnoSetup/quardCRT_setup.exe ./InnoSetup/quardCRT_setup_msvc.exe
- name: Upload build asserts
uses: actions/upload-artifact@v3.1.3
with:
name: quardCRT_windows_msvc2019
name: a10_fw_loader
path: |
./InnoSetup/quardCRT_setup_msvc.exe
./InnoSetup/build
- name: Run tests
run: |
./InnoSetup/build/quardCRT.exe --version
./InnoSetup/build/a10_fw_loader.exe --version
66 changes: 66 additions & 0 deletions src/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@

#include "ui_mainwindow.h"

#include <QNetworkInterface>
#include <QRandomGenerator>

MainWindow::MainWindow(QString dir, StartupUIMode mode, QLocale::Language lang, bool isDark, QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
Expand Down Expand Up @@ -556,6 +559,69 @@ MainWindow::MainWindow(QString dir, StartupUIMode mode, QLocale::Language lang,
publickeyManagerAction->setEnabled(false);
tileAction->setEnabled(false);
cascadeAction->setEnabled(false);

// 此处代码为下载A10固件工具专用定制代码
QStringList ipaddrList;
QList<QHostAddress> list = QNetworkInterface::allAddresses();
foreach(QHostAddress address,list) {
if(address.protocol() == QAbstractSocket::IPv4Protocol) {
if(address.toString() == "127.0.0.1") {
continue;
}
ipaddrList.append(address.toString());
}
}
bool isOK = false;
QString severip = QInputDialog::getItem(this,"选择IP地址","选择连接相机网卡的IP地址",ipaddrList,0,false,&isOK);
if(!isOK || severip.isEmpty()) {
QMessageBox::critical(this, "错误", "未选择IP地址");
exit(0);
}
QString boardip;
do {
boardip = severip.left(severip.lastIndexOf(".")+1)+QString::number(QRandomGenerator::global()->bounded(50,200));
}while(boardip == severip);

QString fwDir = FileDialog::getExistingDirectory(this, "选择固件路径", QDir::homePath());
if(fwDir.isEmpty()) {
QMessageBox::critical(this, "错误", "未选择固件路径");
exit(0);
}

QTftp *a10fwTftpServer = new QTftp;
int port = 20000+QRandomGenerator::global()->bounded(1000);
a10fwTftpServer->setPort(port);
a10fwTftpServer->setUpDir(fwDir);
a10fwTftpServer->setDownDir(fwDir);
a10fwTftpServer->startServer();
if(mode != MINIUI_MODE) {
menuBarAction->trigger();
toolBarAction->trigger();
statusBarAction->trigger();
sideWindowAction->trigger();
}
splitter->setSizes(QList<int>() << 1 << 1);
splitter->setCollapsible(0,false);
splitter->setCollapsible(1,false);
mainWidgetGroupList[0]->splitter->setCollapsible(0,false);
mainWidgetGroupList[0]->splitter->setCollapsible(1,false);
mainWidgetGroupList[1]->splitter->setCollapsible(0,false);
mainWidgetGroupList[1]->splitter->setCollapsible(1,false);
mainWidgetGroupList[1]->splitter->setSizes(QList<int>() << 10000 << 1);
mainWidgetGroupList[0]->splitter->setSizes(QList<int>() << 10000 << 1);
#if defined(Q_OS_WIN)
mainWidgetGroupList[0]->commandWidget->setCmd("./down_uboot_use_jtag.ps1\n");
#else
mainWidgetGroupList[0]->commandWidget->setCmd("./down_uboot_use_jtag.sh\n");
#endif
mainWidgetGroupList[1]->commandWidget->setCmd("setenv ipaddr "+boardip+";setenv serverip "+severip+";setenv tftpdstp " + QString::number(port) + ";run percipioload;boot;\n");
resize(1200,600);
setWindowTitle("A10固件下载工具");
startLocalShellSession(mainWidgetGroupList[0],QString(),fwDir);
quickConnectMainWidgetGroup = mainWidgetGroupList[1];
quickConnectWindow->setProtocol(QuickConnectWindow::Serial);
quickConnectWindow->setSaveSession(false);
quickConnectWindow->show();
}

MainWindow::~MainWindow() {
Expand Down

0 comments on commit 837ef93

Please sign in to comment.