feat(cpn): add Express LRS script to update options (#6974)

This commit is contained in:
Neil Horne
2026-01-21 13:19:23 +10:00
committed by GitHub
parent a7f0bac004
commit 2cbf372f92
5 changed files with 91 additions and 0 deletions
+1
View File
@@ -12,6 +12,7 @@ set(${PROJECT_NAME}_NAMES
reporeleases
updatecloudbuild
updatecompanion
updateexpresslrs
updatefactories
updatefirmware
updateinterface
@@ -0,0 +1,50 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "updateexpresslrs.h"
UpdateExpressLRS::UpdateExpressLRS(QWidget * parent) :
UpdateInterface(parent, CID_ExpressLRS, tr("ExpressLRS"), Repo::REPO_TYPE_GITHUB,
QString(GH_API_REPOS).append("/ExpressLRS/ExpressLRS"), "", 100)
{
init(); // call after UpdateInterface ctor due to virtual functions
}
void UpdateExpressLRS::assetSettingsInit()
{
if (!isSettingsIndexValid())
return;
g.component[id()].initAllAssets();
{
ComponentAssetData &cad = g.component[id()].asset[0];
cad.desc("script");
cad.processes(UPDFLG_Common_Asset &~ UPDFLG_Decompress);
cad.flags(cad.processes() | UPDFLG_CopyFiles);
cad.filterType(UpdateParameters::UFT_Pattern);
cad.filter("^elrs.*\\.lua$");
cad.maxExpected(1);
cad.destSubDir("SCRIPTS/TOOLS");
}
qDebug() << "Asset settings initialised";
}
+37
View File
@@ -0,0 +1,37 @@
/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#pragma once
#include "updateinterface.h"
class UpdateExpressLRS : public UpdateInterface
{
Q_DECLARE_TR_FUNCTIONS(UpdateExpressLRS)
public:
explicit UpdateExpressLRS(QWidget * parent);
virtual ~UpdateExpressLRS() {}
protected:
virtual void assetSettingsInit() override;
};
@@ -27,6 +27,7 @@
#include "updatethemes.h"
#include "updatemultiprotocol.h"
#include "updatecloudbuild.h"
#include "updateexpresslrs.h"
UpdateFactories::UpdateFactories(QWidget * parent) :
QWidget(parent)
@@ -94,6 +95,7 @@ void UpdateFactories::registerUpdateFactories()
registerUpdateFactory(new UpdateFactory<UpdateThemes>(this));
registerUpdateFactory(new UpdateFactory<UpdateMultiProtocol>(this));
registerUpdateFactory(new UpdateFactory<UpdateCloudBuild>(this));
registerUpdateFactory(new UpdateFactory<UpdateExpressLRS>(this));
// Note: Companion must be last as its install requires the app to be closed and thus would interrupt the update loop
registerUpdateFactory(new UpdateFactory<UpdateCompanion>(this));
+1
View File
@@ -49,6 +49,7 @@ class UpdateInterface : public QWidget
CID_MultiProtocol = 4,
CID_Companion = 5,
CID_CloudBuild = 6,
CID_ExpressLRS = 7,
};
Q_ENUM(ComponentIdentity)