Skip to content

Commit

Permalink
Select blackbox debug fields
Browse files Browse the repository at this point in the history
  • Loading branch information
haslinghuis committed Feb 27, 2023
1 parent d153205 commit 0ac8278
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 3 deletions.
3 changes: 3 additions & 0 deletions locales/en/messages.json
Expand Up @@ -6376,6 +6376,9 @@
"onboardLoggingRateOfLogging": {
"message": "Blackbox logging rate"
},
"onboardLoggingDebugFields": {
"message": "Blackbox debug fields"
},
"onboardLoggingDebugMode": {
"message": "Blackbox debug mode"
},
Expand Down
13 changes: 13 additions & 0 deletions src/css/tabs/onboard_logging.less
Expand Up @@ -177,6 +177,19 @@
line-height: 20px;
}
}
.blackboxDebugFields {
select {
float: left;
width: 180px;
height: 20px;
margin: 0 10px 5px 0;
border: 1px solid var(--subtleAccent);
border-radius: 3px;
}
span {
line-height: 20px;
}
}
.blackboxDebugMode {
select {
float: left;
Expand Down
1 change: 1 addition & 0 deletions src/js/fc.js
Expand Up @@ -399,6 +399,7 @@ const FC = {
blackboxRateDenom: 1,
blackboxPDenom: 0,
blackboxSampleRate: 0,
blackboxDisabledMask: 0,
};

this.TRANSPONDER = {
Expand Down
7 changes: 7 additions & 0 deletions src/js/msp/MSPHelper.js
Expand Up @@ -1294,6 +1294,9 @@ MspHelper.prototype.process_data = function(dataHandler) {
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
FC.BLACKBOX.blackboxSampleRate = data.readU8();
}
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
FC.BLACKBOX.blackboxDisabledMask = data.readU32();
}
break;
case MSPCodes.MSP_SET_BLACKBOX_CONFIG:
console.log("Blackbox config saved");
Expand Down Expand Up @@ -2069,6 +2072,10 @@ MspHelper.prototype.crunch = function(code, modifierCode = undefined) {
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
buffer.push8(FC.BLACKBOX.blackboxSampleRate);
}
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
buffer.push32(FC.BLACKBOX.blackboxDisabledMask);
}

break;

case MSPCodes.MSP_COPY_PROFILE:
Expand Down
59 changes: 56 additions & 3 deletions src/js/tabs/onboard_logging.js
Expand Up @@ -115,25 +115,42 @@ onboard_logging.initialize = function (callback) {
const deviceSelect = $(".blackboxDevice select");
const loggingRatesSelect = $(".blackboxRate select");
const debugModeSelect = $(".blackboxDebugMode select");
const debugFieldsSelect = $(".blackboxDebugFields select");

if (FC.BLACKBOX.supported) {
$(".tab-onboard_logging a.save-settings").click(function() {
$(".tab-onboard_logging a.save-settings").on('click', async function() {
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
let fieldsMask = 0;
const selectedOptions = debugFieldsSelect.val();

$(".blackboxDebugFields select option:not(:selected)").each(function() {
fieldsMask |= (1 << $(this).val());
});

FC.BLACKBOX.blackboxDisabledMask = fieldsMask;
}
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
FC.BLACKBOX.blackboxSampleRate = parseInt(loggingRatesSelect.val(), 10);
FC.BLACKBOX.blackboxPDenom = parseInt(loggingRatesSelect.val(), 10);
}
FC.BLACKBOX.blackboxDevice = parseInt(deviceSelect.val(), 10);

await MSP.promise(MSPCodes.MSP_SET_BLACKBOX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_BLACKBOX_CONFIG));

if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) {
FC.PID_ADVANCED_CONFIG.debugMode = parseInt(debugModeSelect.val());
MSP.send_message(MSPCodes.MSP_SET_ADVANCED_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG), false, save_to_eeprom);

await MSP.promise(MSPCodes.MSP_SET_ADVANCED_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG));
}
MSP.send_message(MSPCodes.MSP_SET_BLACKBOX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_BLACKBOX_CONFIG), false, save_to_eeprom);

save_to_eeprom();
});
}

populateLoggingRates(loggingRatesSelect);
populateDevices(deviceSelect);
populateDebugModes(debugModeSelect);
populateDebugFields(debugFieldsSelect);

deviceSelect.change(function() {
if ($(this).val() === "0") {
Expand Down Expand Up @@ -354,6 +371,42 @@ onboard_logging.initialize = function (callback) {
}
}

function populateDebugFields(debugFieldsSelect) {
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
$('.blackboxDebugFields').show();

const debugFields = [
{ text: "PID Data" },
{ text: "RC Commands Data" },
{ text: "Setpoint Data" },
{ text: "Battery Data" },
{ text: "Magnetometer Data" },
{ text: "Altitude Data" },
{ text: "RSSI Data" },
{ text: "Gyro Data" },
{ text: "Accelerometer Data" },
{ text: "Debug Log Data" },
{ text: "Motor Data" },
{ text: "GPS Data" },
];

debugFieldsSelect.empty();

let fieldsMask = FC.BLACKBOX.blackboxDisabledMask;

for (let i = 0; i < debugFields.length; i++) {
const enabled = (fieldsMask & (1 << i)) === 0;
debugFieldsSelect.append(new Option(debugFields[i].text, i, false, enabled));
}

// Convert to select2 and order alphabetic
debugFieldsSelect.select2({ placeholder: 'Enabled debug fields' }).sortSelect();

} else {
$('.blackboxDebugFields').hide();
}
}

function formatFilesizeKilobytes(kilobytes) {
if (kilobytes < 1024) {
return `${Math.round(kilobytes)}kB`;
Expand Down
4 changes: 4 additions & 0 deletions src/tabs/onboard_logging.html
Expand Up @@ -31,6 +31,10 @@
</select>
<span class="blackboxDebugModeText" i18n="onboardLoggingDebugMode"></span>
</div>
<div class="line blackboxDebugFields">
<select name="blackboxDebugFields" multiple="multiple"></select>
<span i18n="onboardLoggingDebugFields"></span>
</div>
<div class="line">
<a href="#" class="save-settings regular-button" i18n="blackboxButtonSave"></a>
</div>
Expand Down

0 comments on commit 0ac8278

Please sign in to comment.