1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-20 23:05:15 +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

@ -1455,7 +1455,7 @@
"description": "Option to use Galileo in the GPS configuration"
},
"configurationGPSGalileoHelp": {
"message": "When enabled, this removes the QZSS system (Japanese) and replaces it for the Galileo system (European).",
"message": "When enabled, the GPS module will also track the Galileo satellite system, usually resulting in more locked satellites. On Betaflight 4.2.x or earlier, it also disables the QZSS augmentation system.",
"description": "Help text for the option to use Galileo in the GPS configuration"
},
"configurationGPSHomeOnce": {
@ -2432,11 +2432,47 @@
"gpsSignalStr": {
"message": "Signal Strength"
},
"gpsSignalGnssId": {
"message": "Gnss ID"
},
"gpsSignalSatId": {
"message": "Sat ID"
},
"gpsSignalQty": {
"message": "Qty"
"gpsSignalStatusQly": {
"message": "Status / Quality"
},
"gnssQualityNoSignal": {
"message": "no signal"
},
"gnssQualitySearching": {
"message": "searching"
},
"gnssQualityAcquired": {
"message": "acquired"
},
"gnssQualityUnusable": {
"message": "unusable"
},
"gnssQualityLocked": {
"message": "locked"
},
"gnssQualityFullyLocked": {
"message": "fully locked"
},
"gnssUsedUnused": {
"message": "unused"
},
"gnssUsedUsed": {
"message": "used"
},
"gnssHealthyUnknown": {
"message": "unknown"
},
"gnssHealthyHealthy": {
"message": "healthy"
},
"gnssHealthyUnhealthy": {
"message": "unhealthy"
},
"motorsVoltage": {

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)');
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(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>