Skip to content

Commit

Permalink
Add buildOptions from MSP
Browse files Browse the repository at this point in the history
  • Loading branch information
haslinghuis committed Feb 1, 2024
1 parent da3a732 commit 22088f5
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 1 deletion.
68 changes: 68 additions & 0 deletions src/js/fc.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,59 @@ const INITIAL_BATTERY_CONFIG = {
currentMeterSource: 0,
};

const FIRMWARE_BUILD_OPTIONS = {
// Radio Protocols
USE_SERIALRX_CRSF: 4097,
USE_SERIALRX_FPORT: 4098,
USE_SERIALRX_GHST: 4099,
USE_SERIALRX_IBUS: 4100,
USE_SERIALRX_JETIEXBUS: 4101,
USE_RX_PPM: 4102,
USE_SERIALRX_SBUS: 4103,
USE_SERIALRX_SPEKTRUM: 4104,
USE_SERIALRX_SRXL2: 4105,
USE_SERIALRX_SUMD: 4106,
USE_SERIALRX_SUMH: 4107,
USE_SERIALRX_XBUS: 4108,

// Motor Protocols
USE_BRUSHED: 8230,
USE_DSHOT: 8231,
USE_MULTISHOT: 8232,
USE_ONESHOT: 8233,
USE_PROSHOT: 8234,
USE_PWM_OUTPUT: 8235,

// Telemetry Protocols
USE_TELEMETRY_FRSKY_HUB: 12301,
USE_TELEMETRY_HOTT: 12302,
USE_TELEMETRY_IBUS_EXTENDED:12303,
USE_TELEMETRY_LTM: 12304,
USE_TELEMETRY_MAVLINK: 12305,
USE_TELEMETRY_SMARTPORT: 12306,
USE_TELEMETRY_SRXL: 12307,

// General Options
USE_ACRO_TRAINER: 16404,
USE_AKK_SMARTAUDIO: 16405,
USE_BATTERY_CONTINUE: 16406,
USE_CAMERA_CONTROL: 16407,
USE_DASHBOARD: 16408,
USE_EMFAT_TOOLS: 16409,
USE_ESCSERIAL_SIMONK: 16410,
USE_FRSKYOSD: 16411,
USE_GPS: 16412,
USE_LED_STRIP: 16413,
USE_LED_STRIP_64: 16414,
USE_MAG: 16415,
USE_OSD_SD: 16416,
USE_OSD_HD: 16417,
USE_PINIO: 16418,
USE_RACE_PRO: 16419,
USE_SERVOS: 16420,
USE_VTX: 16421,
};

const FC = {

// define all the global variables that are uses to hold FC state
Expand All @@ -87,6 +140,7 @@ const FC = {
// Shallow copy of original config and added getter
// getter allows this to be used with simple dot notation
// and bridges the vue and rest of the code
BUILD_OPTIONS: {...FIRMWARE_BUILD_OPTIONS},
CONFIG: {
...INITIAL_CONFIG,
get hardwareName() {
Expand Down Expand Up @@ -823,6 +877,20 @@ const FC = {
MOTOR_PROTOCOL_DISABLED: 1,
},

processBuildOptions() {
let buildOptions = [];

for (const [key, value] of Object.entries(FIRMWARE_BUILD_OPTIONS)) {
for (const option of this.CONFIG.buildOptions) {
if (option === value) {
buildOptions.push(key);
}
}
}

this.CONFIG.buildOptions = buildOptions;
},

boardHasVcp() {
return bit_check(this.CONFIG.targetCapabilities, this.TARGET_CAPABILITIES_FLAGS.HAS_VCP);
},
Expand Down
16 changes: 16 additions & 0 deletions src/js/msp/MSPHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -782,6 +782,22 @@ MspHelper.prototype.process_data = function(dataHandler) {
buff.push(data.readU8());
}
FC.CONFIG.buildInfo = String.fromCharCode.apply(null, buff);

const gitRevisionLength = 7;
buff = [];
for (let i = 0; i < gitRevisionLength; i++) {
buff.push(data.readU8());
}
console.log("Fw git rev:", String.fromCharCode.apply(null, buff));

if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) {
let option = data.readU16();
while (option) {
FC.CONFIG.buildOptions.push(option);
option = data.readU16();
}
}

break;

case MSPCodes.MSP_BOARD_INFO:
Expand Down
3 changes: 2 additions & 1 deletion src/js/serial_backend.js
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,7 @@ function processBoardInfo() {
gui_log(i18n.getMessage('boardInfoReceived', [FC.getHardwareName(), FC.CONFIG.boardVersion]));

if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) {
FC.processBuildOptions();
checkReportProblems();
} else {
processCustomDefaults();
Expand Down Expand Up @@ -548,7 +549,7 @@ async function processUid() {

gui_log(i18n.getMessage('uniqueDeviceIdReceived', FC.CONFIG.deviceIdentifier));

if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
if (semver.eq(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
processBuildConfiguration();
} else {
processCraftName();
Expand Down

0 comments on commit 22088f5

Please sign in to comment.