mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-26 09:45:28 +03:00
Expose Cloud Build Options and hide tabs and features (#3332)
Expose Cloud Build Options Add cloud build options to auto-detect
This commit is contained in:
parent
65d0ab3796
commit
584e672c4d
13 changed files with 208 additions and 113 deletions
|
@ -23,6 +23,7 @@ import { get as getConfig, set as setConfig } from "./ConfigStorage";
|
|||
import { tracking } from "./Analytics";
|
||||
import semver from 'semver';
|
||||
import CryptoES from "crypto-es";
|
||||
import BuildApi from "./BuildApi";
|
||||
|
||||
let mspHelper;
|
||||
let connectionTimestamp;
|
||||
|
@ -458,17 +459,39 @@ function checkReportProblems() {
|
|||
});
|
||||
}
|
||||
|
||||
function processUid() {
|
||||
MSP.send_message(MSPCodes.MSP_UID, false, false, function () {
|
||||
const deviceIdentifier = FC.CONFIG.deviceIdentifier;
|
||||
|
||||
tracking.setFlightControllerData(tracking.DATA.MCU_ID, CryptoES.SHA1(deviceIdentifier));
|
||||
tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected');
|
||||
connectionTimestamp = Date.now();
|
||||
gui_log(i18n.getMessage('uniqueDeviceIdReceived', [deviceIdentifier]));
|
||||
async function processBuildConfiguration() {
|
||||
const buildApi = new BuildApi();
|
||||
|
||||
function onLoadCloudBuild(options) {
|
||||
FC.CONFIG.buildOptions = options.Request.Options;
|
||||
processCraftName();
|
||||
});
|
||||
}
|
||||
|
||||
await MSP.promise(MSPCodes.MSP2_GET_TEXT, mspHelper.crunch(MSPCodes.MSP2_GET_TEXT, MSPCodes.BUILD_KEY));
|
||||
|
||||
if (FC.CONFIG.buildKey.length === 32 && navigator.onLine) {
|
||||
gui_log(i18n.getMessage('buildKey', FC.CONFIG.buildKey));
|
||||
buildApi.requestBuildOptions(FC.CONFIG.buildKey, onLoadCloudBuild, processCraftName);
|
||||
} else {
|
||||
processCraftName();
|
||||
}
|
||||
}
|
||||
|
||||
async function processUid() {
|
||||
await MSP.promise(MSPCodes.MSP_UID);
|
||||
|
||||
tracking.setFlightControllerData(tracking.DATA.MCU_ID, CryptoES.SHA1(FC.CONFIG.deviceIdentifier));
|
||||
tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected');
|
||||
|
||||
connectionTimestamp = Date.now();
|
||||
|
||||
gui_log(i18n.getMessage('uniqueDeviceIdReceived', FC.CONFIG.deviceIdentifier));
|
||||
|
||||
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||
processBuildConfiguration();
|
||||
} else {
|
||||
processCraftName();
|
||||
}
|
||||
}
|
||||
|
||||
async function processCraftName() {
|
||||
|
@ -494,7 +517,19 @@ function setRtc() {
|
|||
|
||||
function finishOpen() {
|
||||
CONFIGURATOR.connectionValid = true;
|
||||
GUI.allowedTabs = GUI.defaultAllowedFCTabsWhenConnected.slice();
|
||||
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && FC.CONFIG.buildKey.length === 32) {
|
||||
|
||||
GUI.allowedTabs = GUI.defaultAllowedTabsCloudBuild;
|
||||
|
||||
for (const tab of GUI.defaultCloudBuildTabOptions) {
|
||||
if (FC.CONFIG.buildOptions.some(opt => opt.toLowerCase().includes(tab))) {
|
||||
GUI.allowedTabs.push(tab);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
GUI.allowedTabs = GUI.defaultAllowedFCTabsWhenConnected.slice();
|
||||
}
|
||||
|
||||
if (GUI.isCordova()) {
|
||||
UI_PHONES.reset();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue