This commit is contained in:
gangphon 2023-05-25 10:00:00 +08:00
parent 9f37fabd4b
commit a560e62af7
6 changed files with 114 additions and 96 deletions

View File

@ -38,11 +38,14 @@ win32 {
CONFIG -= debug_and_release
LIBS += -lwinmm
LIBS += -lDbghelp
}
RESOURCES += res.qrc
win32:RC_ICONS = res/Logo.ico
osx:ICON = res/Logo-raw.png
RC_ICONS = res/Logo.ico
}
osx {
ICON = res/Logo-raw.png
}
RESOURCES += res.qrc
copydir.files += AClock

View File

@ -720,74 +720,6 @@ CtrlAdvancedPanel::CtrlAdvancedPanel(QWidget *parent) : QWidget(parent) {
vBox->addWidget(grpM80);
{
grpY50 = new QGroupBox;
hBox = new HBox(grpY50);
auto fdY50Resolu = new QComboBox;
auto dirs = QDir(QApplication::applicationDirPath()+"/y50 param").entryList(QDir::Dirs | QDir::NoDotAndDotDot);
foreach(auto dir, dirs) fdY50Resolu->addItem(dir);
fdY50Resolu->setMinimumWidth(160);
hBox->addWidget(fdY50Resolu);
btnY50Set = new QPushButton;
btnY50Set->setProperty("ssType", "progManageTool");
connect(btnY50Set, &QPushButton::clicked, this, [=] {
if(gSelCards.isEmpty()) {
QMessageBox::information(this, tr("Tip"), tr("NoSelectedController"));
return;
}
auto filePath = QApplication::applicationDirPath()+"/y50 param/"+fdY50Resolu->currentText()+"/rk_lcd_parameters";
QFile qFile(filePath);
if(! qFile.exists()) {
QMessageBox::information(this, tr("Tip"), tr("File not exist"));
return;
}
if(! qFile.open(QIODevice::ReadOnly)) {
QMessageBox::information(this, tr("Tip"), tr("Cannot Open File")+": "+qFile.errorString()+"\n"+filePath);
return;
}
auto fileData = qFile.readAll();
qFile.close();
auto Boundary = "----QtLedOK_.oOo._"+QUuid::createUuid().toByteArray(QUuid::WithoutBraces);
QByteArray data;
data.append("--").append(Boundary).append("\r\nContent-Disposition: form-data; name=\"rk_lcd_parameters\"; filename=\"rk_lcd_parameters\"\r\n\r\n").append(fileData).append("\r\n");
data.append("--").append(Boundary).append("--\r\n");
if(gSelCards.count() == 1) {
auto waitingDlg = new WaitingDlg(this, tr("Uploading")+" ...");
waitingDlg->show();
NetReq req("http://"+gSelCards[0].ip+":2016/upload?type=update_display");
auto reply = req.timeout(120000).type("multipart/form-data; boundary="+Boundary).post(data);
waitingDlg->connAbort(reply);
connect(reply, &QNetworkReply::finished, this, [=] {
QString err = checkReply(reply);
if(! err.isEmpty()) {
waitingDlg->close();
QMessageBox::critical(this, tr("Error"), err);
return;
}
waitingDlg->success();
});
} else {
foreach(auto card, gSelCards) {
NetReq req("http://"+card.ip+":2016/upload?type=update_display");
auto reply = req.timeout(120000).type("multipart/form-data; boundary="+Boundary).post(data);
connect(reply, &QNetworkReply::finished, this, [=] {
QString err = checkReply(reply);
gFdResInfo->append(card.id+" "+tr("Update")+" "+(err.isEmpty()?tr("Success"):err));
});
}
}
});
hBox->addWidget(btnY50Set);
hBox->addStretch();
vBox->addWidget(grpY50);
}
hBox = new HBox(vBox);
lbDisMode = new QLabel;
@ -999,7 +931,7 @@ CtrlAdvancedPanel::CtrlAdvancedPanel(QWidget *parent) : QWidget(parent) {
});
hBox->addWidget(btnLedSet4);
#ifndef Q_OS_WINDOWS
#ifndef Q_OS_WIN
btnLedSet3->setVisible(false);
btnLedSet4->setVisible(false);
#endif
@ -1624,6 +1556,72 @@ CtrlAdvancedPanel::CtrlAdvancedPanel(QWidget *parent) : QWidget(parent) {
line->setFrameStyle(QFrame::HLine | QFrame::Sunken);
vBox->addWidget(line);
grpY50 = new QGroupBox;
{
hBox = new HBox(grpY50);
auto fdY50Resolu = new QComboBox;
auto dirs = QDir(QApplication::applicationDirPath()+"/y50 param").entryList(QDir::Dirs | QDir::NoDotAndDotDot);
foreach(auto dir, dirs) fdY50Resolu->addItem(dir);
fdY50Resolu->setMinimumWidth(160);
hBox->addWidget(fdY50Resolu);
btnY50Set = new QPushButton;
btnY50Set->setProperty("ssType", "progManageTool");
connect(btnY50Set, &QPushButton::clicked, this, [=] {
if(gSelCards.isEmpty()) {
QMessageBox::information(this, tr("Tip"), tr("NoSelectedController"));
return;
}
auto filePath = QApplication::applicationDirPath()+"/y50 param/"+fdY50Resolu->currentText()+"/rk_lcd_parameters";
QFile qFile(filePath);
if(! qFile.exists()) {
QMessageBox::information(this, tr("Tip"), tr("File not exist"));
return;
}
if(! qFile.open(QIODevice::ReadOnly)) {
QMessageBox::information(this, tr("Tip"), tr("Cannot Open File")+": "+qFile.errorString()+"\n"+filePath);
return;
}
auto fileData = qFile.readAll();
qFile.close();
auto Boundary = "----QtLedOK_.oOo._"+QUuid::createUuid().toByteArray(QUuid::WithoutBraces);
QByteArray data;
data.append("--").append(Boundary).append("\r\nContent-Disposition: form-data; name=\"rk_lcd_parameters\"; filename=\"rk_lcd_parameters\"\r\n\r\n").append(fileData).append("\r\n");
data.append("--").append(Boundary).append("--\r\n");
if(gSelCards.count() == 1) {
auto waitingDlg = new WaitingDlg(this, tr("Uploading")+" ...");
waitingDlg->show();
NetReq req("http://"+gSelCards[0].ip+":2016/upload?type=update_display");
auto reply = req.timeout(120000).type("multipart/form-data; boundary="+Boundary).post(data);
waitingDlg->connAbort(reply);
connect(reply, &QNetworkReply::finished, this, [=] {
QString err = checkReply(reply);
if(! err.isEmpty()) {
waitingDlg->close();
QMessageBox::critical(this, tr("Error"), err);
return;
}
waitingDlg->success();
});
} else {
foreach(auto card, gSelCards) {
NetReq req("http://"+card.ip+":2016/upload?type=update_display");
auto reply = req.timeout(120000).type("multipart/form-data; boundary="+Boundary).post(data);
connect(reply, &QNetworkReply::finished, this, [=] {
QString err = checkReply(reply);
gFdResInfo->append(card.id+" "+tr("Update")+" "+(err.isEmpty()?tr("Success"):err));
});
}
}
});
hBox->addWidget(btnY50Set);
hBox->addStretch();
}
vBox->addWidget(grpY50);
hBox = new HBox(vBox);
lbRotate = new QLabel;

View File

@ -85,10 +85,14 @@ void wUpgradeApkItem::OnCheckFpgaVersions() {
QString strBuf;
auto vers = json["versions"].toArray();
for(int i=0; i<vers.size(); i++) {
if(i==0) strBuf += "["+QString::number(i)+"]:"+vers[i].toString();
else strBuf +="\r\n["+QString::number(i)+"]:"+vers[i].toString();
if(i) strBuf += "\n";
strBuf += "["+QString::number(i)+"]:"+vers[i].toString();
}
setData(Upgrade_FPAG_VERSION, 0, strBuf);
auto item = findItem(mCard.id);
if(item) {
item->mCard.HardVersion = strBuf;
}
});
}
void wUpgradeApkItem::OnCheckSoftVersions() {

View File

@ -1,4 +1,4 @@
#include "deviceitem.h"
#include "deviceitem.h"
#include "globaldefine.h"
#include "base/waitingdlg.h"
#include "gutil/qgui.h"
@ -124,6 +124,7 @@ void DeviceItem::DeviceItemHttpPost() {
mCard.FirmwareVersion = json["FirmwareVersion"].toString();
mCard.HardVersion = json["HardVersion"].toString();
mCard.ScreenResolution = json["ScreenResolution"].toString();
mCard.IMEI = json["IMEI"].toString();
auto androidVersion = json["AndroidVersion"].toString();
if(! androidVersion.isEmpty()) mCard.androidVersion = androidVersion;
});

View File

@ -1,4 +1,4 @@
#include "devicepanel.h"
#include "devicepanel.h"
#include "globaldefine.h"
#include "gutil/qgui.h"
#include "gutil/qnetwork.h"
@ -182,30 +182,41 @@ QPushButton:hover {background-color: #08b;}
item->mCard.ip = addr;
}
connect(item->m_bnCardDetailInfo, &QPushButton::clicked, item, [=] {
QString msgpre;
msgpre.append(tr("Current Brightness")).append(": ").append(QString::number(item->mCard.bright)).append("%").append("\n");
msgpre.append(tr("Brightness Level")).append(": ").append(QString::number(item->mCard.BrightnessLevel)).append("\n");
msgpre.append(tr("Android OS Resolution")).append(": ").append(item->mCard.ScreenResolution).append("\n");
msgpre.append(tr("Android Version")).append(": ").append(item->mCard.androidVersion).append("\n");
msgpre.append(tr("FPGA Version")).append(": ").append(item->mCard.HardVersion).append("\n");
msgpre.append(tr("Firmware Version")).append(": ").append(item->mCard.FirmwareVersion).append("\n");
msgpre.append(tr("IMEI")).append(": ").append(item->mCard.IMEI).append("\n");
QMessageBox msgBox(QMessageBox::Information, item->mCard.id+" "+tr("Detail Info"), msgpre + tr("Player Version")+": "+tr("Getting")+" ...");
QJsonObject json;
json.insert("_id", "CheckSoftVersions");
json.insert("_type", "CheckSoftVersions");
auto waitingDlg = new WaitingDlg(this, tr("CheckSoftVersions")+" ...");
waitingDlg->show();
auto card = item->mCard;
auto reply = NetReq("http://"+card.ip+":2016/settings").timeout(120000).post(json);
waitingDlg->connAbort(reply);
connect(reply, &QNetworkReply::finished, this, [=] {
Def_CtrlSingleGetReply
waitingDlg->close();
QString strTip;
strTip.append(tr("Current Brightness")).append(": ").append(QString::number(item->mCard.bright)).append("%").append("\n");
strTip.append(tr("Brightness Level")).append(": ").append(QString::number(item->mCard.BrightnessLevel)).append("\n");
strTip.append(tr("Android OS Resolution")).append(": ").append(item->mCard.ScreenResolution).append("\n");
strTip.append(tr("Android Version")).append(": ").append(item->mCard.androidVersion).append("\n");
strTip.append(tr("FPGA Version")).append(": ").append(item->mCard.HardVersion).append("\n");
strTip.append(tr("Firmware Version")).append(": ").append(item->mCard.FirmwareVersion).append("\n");
foreach(QJsonValue value, json["apps"].toArray()) {
QJsonObject app = value.toObject();
if(app["packageName"].toString().contains("xixunplayer")) strTip.append(tr("Player Version")).append(": ").append(app["versionName"].toString()).append("\n");
}
QMessageBox::information(this, tr("Detail Info"), strTip);
connect(&msgBox, &QMessageBox::finished, reply, [reply] {
abortSilence(reply);
});
connect(reply, &QNetworkReply::finished, &msgBox, [=, &msgBox] {
QJsonDocument json;
QString err = checkReplyForJson(reply, &json);
if(! err.isEmpty()) {
msgBox.setText(msgpre + tr("Player Version")+": "+err);
return;
}
auto apps = json["apps"].toArray();
foreach(QJsonValue value, apps) {
QJsonObject app = value.toObject();
if(app["packageName"].toString().contains("xixunplayer")) {
msgBox.setText(msgpre + tr("Player Version")+": "+app["versionName"].toString());
return;
}
}
msgBox.setText(msgpre + tr("Player Version")+":");
});
msgBox.exec();
});
item->init();
item->DeviceItemHttpPost();

View File

@ -1,4 +1,4 @@
#ifndef GLOBALDEFINE_H
#ifndef GLOBALDEFINE_H
#define GLOBALDEFINE_H
#include <QJsonDocument>
@ -17,6 +17,7 @@ public:
QString ScreenResolution;
QString androidVersion;
QString alias;
QString IMEI;
bool hasPassword{false};
bool isLocked{true};
bool isScreenOn{true};