Firmware info on setup tab (#3369)
* More messages * caps API * More buiold info * buildinfo * buildinfo test * Added build options * Added build options * Change of label * chang loop * Add buildkey and sensors * Show config and log based on buildkeymaster
parent
9705c1e040
commit
36628523db
|
@ -865,7 +865,7 @@
|
||||||
"message": "Magnetometer"
|
"message": "Magnetometer"
|
||||||
},
|
},
|
||||||
"initialSetupInfoHead": {
|
"initialSetupInfoHead": {
|
||||||
"message": "Info"
|
"message": "System info"
|
||||||
},
|
},
|
||||||
"initialSetupBattery": {
|
"initialSetupBattery": {
|
||||||
"message": "Battery voltage:"
|
"message": "Battery voltage:"
|
||||||
|
@ -888,6 +888,9 @@
|
||||||
"initialSetupRSSI": {
|
"initialSetupRSSI": {
|
||||||
"message": "RSSI:"
|
"message": "RSSI:"
|
||||||
},
|
},
|
||||||
|
"initialSetupSensorHardware": {
|
||||||
|
"message": "Sensors:"
|
||||||
|
},
|
||||||
"initialSetupRSSIValue": {
|
"initialSetupRSSIValue": {
|
||||||
"message": "$1 %"
|
"message": "$1 %"
|
||||||
},
|
},
|
||||||
|
@ -1014,6 +1017,30 @@
|
||||||
"initialSetupInstrumentsHead": {
|
"initialSetupInstrumentsHead": {
|
||||||
"message": "Instruments"
|
"message": "Instruments"
|
||||||
},
|
},
|
||||||
|
"initialSetupInfoAPIversion": {
|
||||||
|
"message": "MSP API:"
|
||||||
|
},
|
||||||
|
"initialSetupInfoBuild": {
|
||||||
|
"message": "Firmware info"
|
||||||
|
},
|
||||||
|
"initialSetupInfoBuildDate": {
|
||||||
|
"message": "Build date:"
|
||||||
|
},
|
||||||
|
"initialSetupInfoBuildInfo": {
|
||||||
|
"message": "Build info:"
|
||||||
|
},
|
||||||
|
"initialSetupInfoBuildInfoConfig": {
|
||||||
|
"message": "Build config"
|
||||||
|
},
|
||||||
|
"initialSetupInfoBuildInfoLog": {
|
||||||
|
"message": "Build log"
|
||||||
|
},
|
||||||
|
"initialSetupInfoBuildOptions": {
|
||||||
|
"message": "Build Options:"
|
||||||
|
},
|
||||||
|
"initialSetupInfoBuildOptionsEmpty": {
|
||||||
|
"message": "Local Build - no Defines"
|
||||||
|
},
|
||||||
"initialSetupButtonSave": {
|
"initialSetupButtonSave": {
|
||||||
"message": "Save"
|
"message": "Save"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1731,6 +1731,13 @@ dialog {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
.buildKeyInfoClass {
|
||||||
|
background-color: #ffcc3f;
|
||||||
|
padding: 2px 5px;
|
||||||
|
border-radius: 3px;
|
||||||
|
color: #272727;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
.cf_tooltiptext {
|
.cf_tooltiptext {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,7 +197,14 @@ setup.initialize = function (callback) {
|
||||||
gpsLon_e = $('.gpsLon'),
|
gpsLon_e = $('.gpsLon'),
|
||||||
roll_e = $('dd.roll'),
|
roll_e = $('dd.roll'),
|
||||||
pitch_e = $('dd.pitch'),
|
pitch_e = $('dd.pitch'),
|
||||||
heading_e = $('dd.heading');
|
heading_e = $('dd.heading'),
|
||||||
|
// Sensor info
|
||||||
|
sensor_e = $('.sensor-hw'),
|
||||||
|
// Firmware info
|
||||||
|
msp_api_e = $('.api-version'),
|
||||||
|
build_date_e = $('.build-date'),
|
||||||
|
build_info_e = $('.build-info'),
|
||||||
|
build_opt_e = $('.build-options');
|
||||||
|
|
||||||
// DISARM FLAGS
|
// DISARM FLAGS
|
||||||
// We add all the arming/disarming flags available, and show/hide them if needed.
|
// We add all the arming/disarming flags available, and show/hide them if needed.
|
||||||
|
@ -265,7 +272,99 @@ setup.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const showSensorInfo = function() {
|
||||||
|
let accElements = [
|
||||||
|
'DEFAULT',
|
||||||
|
'NONE',
|
||||||
|
'ADXL345',
|
||||||
|
'MPU6050',
|
||||||
|
'MMA8452',
|
||||||
|
'BMA280',
|
||||||
|
'LSM303DLHC',
|
||||||
|
'MPU6000',
|
||||||
|
'MPU6500',
|
||||||
|
'MPU9250',
|
||||||
|
'ICM20601',
|
||||||
|
'ICM20602',
|
||||||
|
'ICM20608G',
|
||||||
|
'ICM20649',
|
||||||
|
'ICM20689',
|
||||||
|
'ICM42605',
|
||||||
|
'ICM42688P',
|
||||||
|
'BMI160',
|
||||||
|
'BMI270',
|
||||||
|
'LSM6DSO',
|
||||||
|
'VIRTUAL',
|
||||||
|
];
|
||||||
|
|
||||||
|
let baroElements = [
|
||||||
|
'DEFAULT',
|
||||||
|
'NONE',
|
||||||
|
'BMP085',
|
||||||
|
'MS5611',
|
||||||
|
'BMP280',
|
||||||
|
'LPS',
|
||||||
|
'QMP6988',
|
||||||
|
'BMP388',
|
||||||
|
'DPS310',
|
||||||
|
'2SMPB_02B',
|
||||||
|
'VIRTUAL',
|
||||||
|
];
|
||||||
|
|
||||||
|
let magElements = [
|
||||||
|
'DEFAULT',
|
||||||
|
'NONE',
|
||||||
|
'HMC5883',
|
||||||
|
'AK8975',
|
||||||
|
'AK8963',
|
||||||
|
'QMC5883',
|
||||||
|
'LIS3MDL',
|
||||||
|
'MPU925X_AK8963',
|
||||||
|
];
|
||||||
|
|
||||||
|
MSP.send_message(MSPCodes.MSP_SENSOR_CONFIG, false, false, function() {
|
||||||
|
// Sensor info
|
||||||
|
sensor_e.text('');
|
||||||
|
if(have_sensor(FC.CONFIG.activeSensors, "acc") && FC.SENSOR_CONFIG.acc_hardware > 1) {
|
||||||
|
sensor_e.append(i18n.getMessage('sensorStatusAccelShort'), ': ', accElements[[FC.SENSOR_CONFIG.acc_hardware]], ', ');
|
||||||
|
}
|
||||||
|
if(have_sensor(FC.CONFIG.activeSensors, "baro") && FC.SENSOR_CONFIG.baro_hardware > 1) {
|
||||||
|
sensor_e.append(i18n.getMessage('sensorStatusBaroShort'), ': ', baroElements[[FC.SENSOR_CONFIG.baro_hardware]], ', ');
|
||||||
|
}
|
||||||
|
if(have_sensor(FC.CONFIG.activeSensors, "mag") && FC.SENSOR_CONFIG.mag_hardware > 1) {
|
||||||
|
sensor_e.append(i18n.getMessage('sensorStatusMagShort'), ': ', magElements[[FC.SENSOR_CONFIG.mag_hardware]]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const showFirmwareInfo = function() {
|
||||||
|
MSP.send_message(MSPCodes.MSP_STATUS_EX, false, false, function() {
|
||||||
|
// Firmware info
|
||||||
|
msp_api_e.text([FC.CONFIG.apiVersion]);
|
||||||
|
build_date_e.text([FC.CONFIG.buildInfo]);
|
||||||
|
if(FC.CONFIG.buildInfo.length > 0) {
|
||||||
|
const buildRoot = `https://build.betaflight.com/api/builds/${FC.CONFIG.buildKey}`;
|
||||||
|
const buildConfig = `<span class="buildKeyInfoClass" title="${i18n.getMessage('initialSetupInfoBuildInfoConfig')}: ${FC.CONFIG.buildKey}">
|
||||||
|
<a href="${buildRoot}/json" target="_blank">${i18n.getMessage('initialSetupInfoBuildInfoConfig')}</a></span>`;
|
||||||
|
const buildLog = `<span class="buildKeyInfoClass" title="${i18n.getMessage('initialSetupInfoBuildInfoLog')}: ${FC.CONFIG.buildKey}">
|
||||||
|
<a href="${buildRoot}/log" target="_blank">${i18n.getMessage('initialSetupInfoBuildInfoLog')}</a></span>`;
|
||||||
|
build_info_e.html(`${buildConfig}   ${buildLog}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(FC.CONFIG.buildOptions.length > 0) {
|
||||||
|
build_opt_e.text = "";
|
||||||
|
for (const buildOption of FC.CONFIG.buildOptions) {
|
||||||
|
build_opt_e.append(buildOption, ' ');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
build_opt_e.text(i18n.getMessage('initialSetupInfoBuildOptionsEmpty'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
prepareDisarmFlags();
|
prepareDisarmFlags();
|
||||||
|
showSensorInfo();
|
||||||
|
showFirmwareInfo();
|
||||||
|
|
||||||
function get_slow_data() {
|
function get_slow_data() {
|
||||||
|
|
||||||
|
@ -279,13 +378,7 @@ setup.initialize = function (callback) {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
MSP.send_message(MSPCodes.MSP_ANALOG, false, false, function () {
|
// GPS info
|
||||||
bat_voltage_e.text(i18n.getMessage('initialSetupBatteryValue', [FC.ANALOG.voltage]));
|
|
||||||
bat_mah_drawn_e.text(i18n.getMessage('initialSetupBatteryMahValue', [FC.ANALOG.mAhdrawn]));
|
|
||||||
bat_mah_drawing_e.text(i18n.getMessage('initialSetupBatteryAValue', [FC.ANALOG.amperage.toFixed(2)]));
|
|
||||||
rssi_e.text(i18n.getMessage('initialSetupRSSIValue', [((FC.ANALOG.rssi / 1023) * 100).toFixed(0)]));
|
|
||||||
});
|
|
||||||
|
|
||||||
if (have_sensor(FC.CONFIG.activeSensors, 'gps')) {
|
if (have_sensor(FC.CONFIG.activeSensors, 'gps')) {
|
||||||
MSP.send_message(MSPCodes.MSP_RAW_GPS, false, false, function () {
|
MSP.send_message(MSPCodes.MSP_RAW_GPS, false, false, function () {
|
||||||
gpsFix_e.html((FC.GPS_DATA.fix) ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse'));
|
gpsFix_e.html((FC.GPS_DATA.fix) ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse'));
|
||||||
|
@ -294,6 +387,14 @@ setup.initialize = function (callback) {
|
||||||
gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} deg`);
|
gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} deg`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// System info
|
||||||
|
MSP.send_message(MSPCodes.MSP_ANALOG, false, false, function () {
|
||||||
|
bat_voltage_e.text(i18n.getMessage('initialSetupBatteryValue', [FC.ANALOG.voltage]));
|
||||||
|
bat_mah_drawn_e.text(i18n.getMessage('initialSetupBatteryMahValue', [FC.ANALOG.mAhdrawn]));
|
||||||
|
bat_mah_drawing_e.text(i18n.getMessage('initialSetupBatteryAValue', [FC.ANALOG.amperage.toFixed(2)]));
|
||||||
|
rssi_e.text(i18n.getMessage('initialSetupRSSIValue', [((FC.ANALOG.rssi / 1023) * 100).toFixed(0)]));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_fast_data() {
|
function get_fast_data() {
|
||||||
|
|
|
@ -88,35 +88,26 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid-col col3">
|
<div class="grid-col col3">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey instrumentsbox" align="center">
|
||||||
|
<div class="gui_box_titlebar" align="left">
|
||||||
|
<div class="spacer_box_title" i18n="initialSetupInstrumentsHead"></div>
|
||||||
|
</div>
|
||||||
|
<span id="attitude"></span> <span id="heading"></span>
|
||||||
|
</div>
|
||||||
|
<div class="gui_box grey backupRestore">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title" i18n="initialSetupInfoHead"></div>
|
<div class="spacer_box_title" i18n="initialSetupBackupRestoreHeader"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer_box">
|
<div class="spacer_box">
|
||||||
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="cf_table">
|
<div class="default_btn">
|
||||||
<tbody>
|
<a class="backup" href="#" i18n="initialSetupButtonBackup"></a>
|
||||||
<tr>
|
</div>
|
||||||
<td id="arming-disable-flag" i18n="initialSetupArmingDisableFlags" class="cf_tip"></td>
|
<div class="default_btn">
|
||||||
<td class="arming-disable-flags"></td>
|
<a class="restore" href="#" i18n="initialSetupButtonRestore"></a>
|
||||||
</tr>
|
</div>
|
||||||
<tr>
|
<div class="cell_setup">
|
||||||
<td i18n="initialSetupBattery"></td>
|
<span i18n="initialSetupBackupRestoreText"></span>
|
||||||
<td class="bat-voltage">0 V</td>
|
</div>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td i18n="initialSetupDrawn"></td>
|
|
||||||
<td class="bat-mah-drawn">0 mAh</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td i18n="initialSetupDrawing"></td>
|
|
||||||
<td class="bat-mah-drawing">0.00 A</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="noboarder">
|
|
||||||
<td i18n="initialSetupRSSI"></td>
|
|
||||||
<td class="rssi">0 %</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
|
@ -146,26 +137,67 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="gui_box grey instrumentsbox" align="center">
|
<div class="gui_box grey">
|
||||||
<div class="gui_box_titlebar" align="left">
|
|
||||||
<div class="spacer_box_title" i18n="initialSetupInstrumentsHead"></div>
|
|
||||||
</div>
|
|
||||||
<span id="attitude"></span> <span id="heading"></span>
|
|
||||||
</div>
|
|
||||||
<div class="gui_box grey backupRestore">
|
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title" i18n="initialSetupBackupRestoreHeader"></div>
|
<div class="spacer_box_title" i18n="initialSetupInfoHead"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer_box">
|
<div class="spacer_box">
|
||||||
<div class="default_btn">
|
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="cf_table">
|
||||||
<a class="backup" href="#" i18n="initialSetupButtonBackup"></a>
|
<tbody>
|
||||||
</div>
|
<tr>
|
||||||
<div class="default_btn">
|
<td id="arming-disable-flag" i18n="initialSetupArmingDisableFlags" class="cf_tip"></td>
|
||||||
<a class="restore" href="#" i18n="initialSetupButtonRestore"></a>
|
<td class="arming-disable-flags"></td>
|
||||||
</div>
|
</tr>
|
||||||
<div class="cell_setup">
|
<tr>
|
||||||
<span i18n="initialSetupBackupRestoreText"></span>
|
<td i18n="initialSetupBattery"></td>
|
||||||
</div>
|
<td class="bat-voltage">0 V</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td i18n="initialSetupDrawn"></td>
|
||||||
|
<td class="bat-mah-drawn">0 mAh</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td i18n="initialSetupDrawing"></td>
|
||||||
|
<td class="bat-mah-drawing">0.00 A</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="noboarder">
|
||||||
|
<td i18n="initialSetupRSSI"></td>
|
||||||
|
<td class="rssi">0 %</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="sensor-hw" i18n="initialSetupSensorHardware"></td>
|
||||||
|
<td class="sensor-hw"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="gui_box grey">
|
||||||
|
<div class="gui_box_titlebar">
|
||||||
|
<div class="spacer_box_title" i18n="initialSetupInfoBuild"></div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer_box">
|
||||||
|
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="cf_table">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td id="api-version" i18n="initialSetupInfoAPIversion"></td>
|
||||||
|
<td class="api-version"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="build-date" i18n="initialSetupInfoBuildDate"></td>
|
||||||
|
<td class="build-date"></td>
|
||||||
|
</tr>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="build-info" i18n="initialSetupInfoBuildInfo"></td>
|
||||||
|
<td class="build-info"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="build-options" i18n="initialSetupInfoBuildOptions"></td>
|
||||||
|
<td class="build-options"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue