mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-14 20:10:11 +03:00
Merge pull request #1485 from kernel-machine/blackbox_gui_for_fields
Blackbox gui for fields
This commit is contained in:
commit
2e6be9fdcc
5 changed files with 145 additions and 41 deletions
|
@ -4065,5 +4065,35 @@
|
|||
},
|
||||
"illegalStateRestartRequired": {
|
||||
"message": "Illegal state. Restart required."
|
||||
},
|
||||
"blackboxFields": {
|
||||
"message": "Blackbox fields"
|
||||
},
|
||||
"BLACKBOX_FEATURE_NAV_ACC": {
|
||||
"message": "Navigation accelerometer"
|
||||
},
|
||||
"BLACKBOX_FEATURE_NAV_POS": {
|
||||
"message": "Navigation position estimation"
|
||||
},
|
||||
"BLACKBOX_FEATURE_NAV_PID": {
|
||||
"message": "Navigation PID"
|
||||
},
|
||||
"BLACKBOX_FEATURE_MAG": {
|
||||
"message": "Magnetometer"
|
||||
},
|
||||
"BLACKBOX_FEATURE_ACC": {
|
||||
"message": "Accelerometer"
|
||||
},
|
||||
"BLACKBOX_FEATURE_ATTITUDE": {
|
||||
"message": "Attitude"
|
||||
},
|
||||
"BLACKBOX_FEATURE_RC_DATA": {
|
||||
"message": "RC data"
|
||||
},
|
||||
"BLACKBOX_FEATURE_RC_COMMAND": {
|
||||
"message": "RC command"
|
||||
},
|
||||
"BLACKBOX_FEATURE_MOTORS": {
|
||||
"message": "Motors output"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1429,6 +1429,7 @@ var mspHelper = (function (gui) {
|
|||
BLACKBOX.blackboxDevice = data.getUint8(1);
|
||||
BLACKBOX.blackboxRateNum = data.getUint16(2);
|
||||
BLACKBOX.blackboxRateDenom = data.getUint16(4);
|
||||
BLACKBOX.blackboxIncludeFlags = data.getUint32(6,true);
|
||||
break;
|
||||
case MSPCodes.MSP2_SET_BLACKBOX_CONFIG:
|
||||
console.log("Blackbox config saved");
|
||||
|
@ -2111,6 +2112,7 @@ var mspHelper = (function (gui) {
|
|||
buffer.push(highByte(BLACKBOX.blackboxRateNum));
|
||||
buffer.push(lowByte(BLACKBOX.blackboxRateDenom));
|
||||
buffer.push(highByte(BLACKBOX.blackboxRateDenom));
|
||||
buffer.push32(BLACKBOX.blackboxIncludeFlags);
|
||||
//noinspection JSUnusedLocalSymbols
|
||||
MSP.send_message(messageId, buffer, false, function (response) {
|
||||
onDataCallback();
|
||||
|
|
|
@ -296,3 +296,13 @@
|
|||
text-shadow: none;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.tab-onboard_logging .leftWrapper {
|
||||
float: left;
|
||||
width: calc(50% - 20px);
|
||||
}
|
||||
|
||||
.tab-onboard_logging .rightWrapper {
|
||||
float: right;
|
||||
width: calc(50%);
|
||||
}
|
|
@ -25,11 +25,12 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="require-blackbox-supported">
|
||||
<div class="gui_box grey require-blackbox-config-supported">
|
||||
<div class="leftWrapper">
|
||||
<div class="config-section gui_box grey">
|
||||
<div class="gui_box_titlebar">
|
||||
<div class="spacer_box_title" data-i18n="blackboxConfiguration"></div>
|
||||
</div>
|
||||
<div class="spacer_box config-section">
|
||||
<div class="spacer_box">
|
||||
<div class="checkbox">
|
||||
<input checked type="checkbox" data-bit="19" class="feature toggle" name="BLACKBOX" title="BLACKBOX" id="feature-19-2">
|
||||
<label for="feature-19-2">
|
||||
|
@ -46,8 +47,15 @@
|
|||
</select>
|
||||
<span>Portion of flight loop iterations to log (logging rate)</span>
|
||||
</div>
|
||||
<div class="line">
|
||||
<a href="#" class="save-settings regular-button" data-i18n="blackboxButtonSave"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rightWrapper">
|
||||
<div class="config-section gui_box grey">
|
||||
<div class="gui_box_titlebar">
|
||||
<div class="spacer_box_title" data-i18n="blackboxFields"></div>
|
||||
</div>
|
||||
<div id="blackBoxFlagsDiv" class="spacer_box config-section">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -153,4 +161,9 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content_toolbar">
|
||||
<div class="btn save_btn">
|
||||
<a href="#" class="save-settings regular-button" data-i18n="blackboxButtonSave"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -11,6 +11,19 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
let
|
||||
saveCancelled, eraseCancelled;
|
||||
|
||||
//Add future blackbox values here and in messages.json, the checkbox are drawn by js
|
||||
const blackBoxFields = [
|
||||
"BLACKBOX_FEATURE_NAV_ACC",
|
||||
"BLACKBOX_FEATURE_NAV_POS",
|
||||
"BLACKBOX_FEATURE_NAV_PID",
|
||||
"BLACKBOX_FEATURE_MAG",
|
||||
"BLACKBOX_FEATURE_ACC",
|
||||
"BLACKBOX_FEATURE_ATTITUDE",
|
||||
"BLACKBOX_FEATURE_RC_DATA",
|
||||
"BLACKBOX_FEATURE_RC_COMMAND",
|
||||
"BLACKBOX_FEATURE_MOTORS",
|
||||
];
|
||||
|
||||
if (GUI.active_tab != 'onboard_logging') {
|
||||
GUI.active_tab = 'onboard_logging';
|
||||
googleAnalytics.sendAppView('onboard_logging');
|
||||
|
@ -97,7 +110,7 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
BLACKBOX.blackboxRateNum = parseInt(rate[0], 10);
|
||||
BLACKBOX.blackboxRateDenom = parseInt(rate[1], 10);
|
||||
BLACKBOX.blackboxDevice = parseInt($(".blackboxDevice select").val(), 10);
|
||||
|
||||
BLACKBOX.blackboxIncludeFlags = getIncludeFlags();
|
||||
helper.features.reset();
|
||||
helper.features.fromUI($('.require-blackbox-supported'));
|
||||
helper.features.execute(function () {
|
||||
|
@ -106,6 +119,29 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
});
|
||||
}
|
||||
|
||||
//Add checkboxes for each blackbox field
|
||||
const blackboxFieldsDiv = $("#blackBoxFlagsDiv");
|
||||
for (let i = 0; i < blackBoxFields.length; i++) {
|
||||
const FIELD_ID = blackBoxFields[i];
|
||||
const isEnabled = (BLACKBOX.blackboxIncludeFlags & 1<<i) !==0;
|
||||
const input = $('<input type="checkbox" class="toggle feature" />')
|
||||
input.attr("id",FIELD_ID);
|
||||
input.attr("checked",isEnabled);
|
||||
|
||||
const label = $("<label></label>");
|
||||
label.attr("for",FIELD_ID)
|
||||
|
||||
const span = $('<span></span>');
|
||||
span.html(chrome.i18n.getMessage(FIELD_ID))
|
||||
label.append(span);
|
||||
|
||||
const checkbox = $('<div class="checkbox"></div>')
|
||||
.append([
|
||||
input,label
|
||||
])
|
||||
blackboxFieldsDiv.append(checkbox);
|
||||
}
|
||||
|
||||
populateLoggingRates();
|
||||
populateDevices();
|
||||
|
||||
|
@ -389,6 +425,19 @@ TABS.onboard_logging.initialize = function (callback) {
|
|||
eraseCancelled = true;
|
||||
$(".dataflash-confirm-erase")[0].close();
|
||||
}
|
||||
|
||||
function getIncludeFlags(){
|
||||
let flags = 0;
|
||||
for (let i = 0; i < blackBoxFields.length; i++) {
|
||||
const FIELD_ID = blackBoxFields[i];
|
||||
|
||||
const checkbox = $("#"+FIELD_ID);
|
||||
if(checkbox.prop("checked")){
|
||||
flags=flags|1<<i;
|
||||
}
|
||||
}
|
||||
return flags;
|
||||
}
|
||||
};
|
||||
|
||||
TABS.onboard_logging.cleanup = function (callback) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue