1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-19 14:25:14 +03:00

enhanced sat list for M8N/M9N

This commit is contained in:
Tony Cabello 2021-09-09 22:12:25 +02:00
parent 9ece824971
commit cbfeb25d9b
4 changed files with 224 additions and 15 deletions

View file

@ -1,3 +1,16 @@
.tab-gps .GPS_signal_strength table td:nth-child(2) {
text-align: center;
}
.tab-gps .GPS_signal_strength table td:nth-child(3) {
text-align: center;
}
.tab-gps .GPS_signal_strength table td:nth-child(4) {
text-align: left;
padding-left: 10px;
}
.tab-gps progress {
width: 100%;
border-radius: 3px;

View file

@ -48,6 +48,11 @@ TABS.gps.initialize = function (callback) {
const lat = FC.GPS_DATA.lat / 10000000;
const lon = FC.GPS_DATA.lon / 10000000;
const url = `https://maps.google.com/?q=${lat},${lon}`;
const gnssArray = ['GPS', 'SBAS', 'Galileo', 'BeiDou', 'IMES', 'QZSS', 'Glonass'];
const qualityArray = ['gnssQualityNoSignal', 'gnssQualitySearching', 'gnssQualityAcquired', 'gnssQualityUnusable', 'gnssQualityLocked',
'gnssQualityFullyLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked'];
const usedArray = ['gnssUsedUnused', 'gnssUsedUsed'];
const healthyArray = ['gnssHealthyUnknown', 'gnssHealthyHealthy', 'gnssHealthyUnhealthy', 'gnssHealthyUnknown'];
let alt = FC.GPS_DATA.alt;
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_39)) {
alt = alt / 10;
@ -64,12 +69,55 @@ TABS.gps.initialize = function (callback) {
// Update GPS Signal Strengths
const eSsTable = $('div.GPS_signal_strength table tr:not(.titles)');
for (let i = 0; i < FC.GPS_DATA.chn.length; i++) {
const row = eSsTable.eq(i);
if (FC.GPS_DATA.chn.length <= 16) {
// Legacy code path: old BF firmware or old ublox module
for (let i = 0; i < FC.GPS_DATA.chn.length; i++) {
const row = eSsTable.eq(i);
$('td', row).eq(0).text(FC.GPS_DATA.svid[i]);
$('td', row).eq(1).text(FC.GPS_DATA.quality[i]);
$('td', row).eq(2).find('progress').val(FC.GPS_DATA.cno[i]);
$('td', row).eq(0).text('-');
$('td', row).eq(1).text(FC.GPS_DATA.svid[i]);
$('td', row).eq(2).find('progress').val(FC.GPS_DATA.cno[i]);
$('td', row).eq(3).text(FC.GPS_DATA.quality[i]);
}
// Cleanup the rest of the table
for (let i = FC.GPS_DATA.chn.length; i < 32; i++) {
const row = eSsTable.eq(i);
$('td', row).eq(0).text('-');
$('td', row).eq(1).text('-');
$('td', row).eq(2).find('progress').val(0);
$('td', row).eq(3).text(' ');
}
} else {
// M8N/M9N on newer firmware
const maxUIChannels = 32; //the list in html can only show 32 channels but future firmware could send more
let channels = Math.min(maxUIChannels, FC.GPS_DATA.chn.length);
for (let i = 0; i < channels; i++) {
const row = eSsTable.eq(i);
if (FC.GPS_DATA.chn[i] <= 6) {
$('td', row).eq(0).text(gnssArray[FC.GPS_DATA.chn[i]]);
} else {
$('td', row).eq(0).text('-');
}
if (FC.GPS_DATA.chn[i] >= 7) {
$('td', row).eq(1).text('-');
$('td', row).eq(2).find('progress').val(0);
$('td', row).eq(3).text(' ');
} else {
$('td', row).eq(1).text(FC.GPS_DATA.svid[i]);
$('td', row).eq(2).find('progress').val(FC.GPS_DATA.cno[i]);
const quality = i18n.getMessage(qualityArray[FC.GPS_DATA.quality[i] & 0x7]);
const used = i18n.getMessage(usedArray[(FC.GPS_DATA.quality[i] & 0x8) >> 3]);
const healthy = i18n.getMessage(healthyArray[(FC.GPS_DATA.quality[i] & 0x30) >> 4]);
$('td', row).eq(3).text(`${quality} | ${used} | ${healthy}`);
}
}
}
const message = {

View file

@ -7,7 +7,7 @@
<div class="grid-row">
<div class="grid-col col3">
<div class="grid-col col5">
<div class="gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" i18n="gpsHead"></div>
@ -45,8 +45,7 @@
</table>
</div>
</div>
</div>
<div class="grid-col col3">
<div class="gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" i18n="gpsSignalStrHead"></div>
@ -54,95 +53,208 @@
<div class="spacer_box GPS_signal_strength">
<table class="cf_table">
<tr class="titles">
<td style="width: 20%;" i18n="gpsSignalSatId"></td>
<td style="width: 15%;" i18n="gpsSignalQty"></td>
<td style="width: 65%;" i18n="gpsSignalStr"></td>
<td style="width: 12%;" i18n="gpsSignalGnssId"></td>
<td style="width: 10%;" i18n="gpsSignalSatId"></td>
<td style="width: 25%;" i18n="gpsSignalStr"></td>
<td style="width: 53%;" i18n="gpsSignalStatusQly"></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
<tr class="noboarder">
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
<td>0</td>
</tr>
</table>
</div>
</div>
</div>
<div class="grid-col col6">
<div class="grid-col col7">
<div class="gui_box grey gps_map">
<div class="gui_box_titlebar" style="margin-bottom: 0px;">
<div class="spacer_box_title" i18n="gpsMapHead"></div>