Skip to content

Commit 488c66f

Browse files
author
Tony Cabello
committed
enhanced sat list for M8N/M9N
1 parent 9ece824 commit 488c66f

File tree

4 files changed

+218
-14
lines changed

4 files changed

+218
-14
lines changed

locales/en/messages.json

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2432,11 +2432,47 @@
24322432
"gpsSignalStr": {
24332433
"message": "Signal Strength"
24342434
},
2435+
"gpsSignalGnssId": {
2436+
"message": "Gnss ID"
2437+
},
24352438
"gpsSignalSatId": {
24362439
"message": "Sat ID"
24372440
},
2438-
"gpsSignalQty": {
2439-
"message": "Qty"
2441+
"gpsSignalStatusQly": {
2442+
"message": "Status / Quality"
2443+
},
2444+
"gnssQualityNoSignal": {
2445+
"message": "no signal"
2446+
},
2447+
"gnssQualitySearching": {
2448+
"message": "searching"
2449+
},
2450+
"gnssQualityAcquired": {
2451+
"message": "acquired"
2452+
},
2453+
"gnssQualityUnusable": {
2454+
"message": "unusable"
2455+
},
2456+
"gnssQualityLocked": {
2457+
"message": "locked"
2458+
},
2459+
"gnssQualityFullyLocked": {
2460+
"message": "fully locked"
2461+
},
2462+
"gnssUsedUnused": {
2463+
"message": "unused"
2464+
},
2465+
"gnssUsedUsed": {
2466+
"message": "used"
2467+
},
2468+
"gnssHealthyUnknown": {
2469+
"message": "unknown"
2470+
},
2471+
"gnssHealthyHealthy": {
2472+
"message": "healthy"
2473+
},
2474+
"gnssHealthyUnhealthy": {
2475+
"message": "unhealthy"
24402476
},
24412477

24422478
"motorsVoltage": {

src/css/tabs/gps.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
.tab-gps .GPS_signal_strength table td:nth-child(2) {
2+
text-align: center;
3+
}
4+
5+
.tab-gps .GPS_signal_strength table td:nth-child(3) {
6+
text-align: center;
7+
}
8+
9+
.tab-gps .GPS_signal_strength table td:nth-child(4) {
10+
text-align: left;
11+
padding-left: 10px;
12+
}
13+
114
.tab-gps progress {
215
width: 100%;
316
border-radius: 3px;

src/js/tabs/gps.js

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ TABS.gps.initialize = function (callback) {
4848
const lat = FC.GPS_DATA.lat / 10000000;
4949
const lon = FC.GPS_DATA.lon / 10000000;
5050
const url = `https://maps.google.com/?q=${lat},${lon}`;
51+
const gnssArray = ['GPS', 'SBAS', 'Galileo', 'BeiDou', 'IMES', 'QZSS', 'Glonass'];
52+
const qualityArray = ['gnssQualityNoSignal', 'gnssQualitySearching', 'gnssQualityAcquired', 'gnssQualityUnusable', 'gnssQualityLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked'];
53+
const usedArray = ['gnssUsedUnused', 'gnssUsedUsed'];
54+
const healthyArray = ['gnssHealthyUnknown', 'gnssHealthyHealthy', 'gnssHealthyUnhealthy', 'gnssHealthyUnknown'];
5155
let alt = FC.GPS_DATA.alt;
5256
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_39)) {
5357
alt = alt / 10;
@@ -64,12 +68,51 @@ TABS.gps.initialize = function (callback) {
6468
// Update GPS Signal Strengths
6569
const eSsTable = $('div.GPS_signal_strength table tr:not(.titles)');
6670

67-
for (let i = 0; i < FC.GPS_DATA.chn.length; i++) {
68-
const row = eSsTable.eq(i);
71+
if (FC.GPS_DATA.chn.length <= 16) {
72+
// Legacy code path: old BF firmware or old ublox module
73+
for (let i = 0; i < FC.GPS_DATA.chn.length; i++) {
74+
const row = eSsTable.eq(i);
6975

70-
$('td', row).eq(0).text(FC.GPS_DATA.svid[i]);
71-
$('td', row).eq(1).text(FC.GPS_DATA.quality[i]);
72-
$('td', row).eq(2).find('progress').val(FC.GPS_DATA.cno[i]);
76+
$('td', row).eq(0).text('-');
77+
$('td', row).eq(1).text(FC.GPS_DATA.svid[i]);
78+
$('td', row).eq(2).find('progress').val(FC.GPS_DATA.cno[i]);
79+
$('td', row).eq(3).text(FC.GPS_DATA.quality[i]);
80+
}
81+
// Cleanup the rest of the table
82+
for (let i = FC.GPS_DATA.chn.length; i < 32; i++) {
83+
const row = eSsTable.eq(i);
84+
85+
$('td', row).eq(0).text('-');
86+
$('td', row).eq(1).text('-');
87+
$('td', row).eq(2).find('progress').val(0);
88+
$('td', row).eq(3).text(' ');
89+
}
90+
} else {
91+
// M8N/M9N on newer firmware
92+
for (let i = 0; i < FC.GPS_DATA.chn.length; i++) {
93+
const row = eSsTable.eq(i);
94+
95+
if (FC.GPS_DATA.chn[i] <= 6) {
96+
$('td', row).eq(0).text(gnssArray[FC.GPS_DATA.chn[i]]);
97+
} else {
98+
$('td', row).eq(0).text('-');
99+
}
100+
101+
if (FC.GPS_DATA.chn[i] >= 7) {
102+
$('td', row).eq(1).text('-');
103+
$('td', row).eq(2).find('progress').val(0);
104+
$('td', row).eq(3).text(' ');
105+
} else {
106+
$('td', row).eq(1).text(FC.GPS_DATA.svid[i]);
107+
$('td', row).eq(2).find('progress').val(FC.GPS_DATA.cno[i]);
108+
109+
const quality = i18n.getMessage(qualityArray[FC.GPS_DATA.quality[i] & 0x7]);
110+
const used = i18n.getMessage(usedArray[(FC.GPS_DATA.quality[i] & 0x8) >> 3]);
111+
const healthy = i18n.getMessage(healthyArray[(FC.GPS_DATA.quality[i] & 0x30) >> 4]);
112+
113+
$('td', row).eq(3).text(`${quality} | ${used} | ${healthy}`);
114+
}
115+
}
73116
}
74117

75118
const message = {

src/tabs/gps.html

Lines changed: 119 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88

99
<div class="grid-row">
10-
<div class="grid-col col3">
10+
<div class="grid-col col5">
1111
<div class="gui_box grey">
1212
<div class="gui_box_titlebar">
1313
<div class="spacer_box_title" i18n="gpsHead"></div>
@@ -45,104 +45,216 @@
4545
</table>
4646
</div>
4747
</div>
48-
</div>
49-
<div class="grid-col col3">
48+
5049
<div class="gui_box grey">
5150
<div class="gui_box_titlebar">
5251
<div class="spacer_box_title" i18n="gpsSignalStrHead"></div>
5352
</div>
5453
<div class="spacer_box GPS_signal_strength">
5554
<table class="cf_table">
5655
<tr class="titles">
57-
<td style="width: 20%;" i18n="gpsSignalSatId"></td>
58-
<td style="width: 15%;" i18n="gpsSignalQty"></td>
59-
<td style="width: 65%;" i18n="gpsSignalStr"></td>
56+
<td style="width: 12%;" i18n="gpsSignalGnssId"></td>
57+
<td style="width: 10%;" i18n="gpsSignalSatId"></td>
58+
<td style="width: 25%;" i18n="gpsSignalStr"></td>
59+
<td style="width: 53%;" i18n="gpsSignalStatusQly"></td>
60+
</tr>
61+
<tr>
62+
<td>0</td>
63+
<td>0</td>
64+
<td><progress value="0" max="99"></progress></td>
65+
<td>0</td>
66+
</tr>
67+
<tr>
68+
<td>0</td>
69+
<td>0</td>
70+
<td><progress value="0" max="99"></progress></td>
71+
<td>0</td>
72+
</tr>
73+
<tr>
74+
<td>0</td>
75+
<td>0</td>
76+
<td><progress value="0" max="99"></progress></td>
77+
<td>0</td>
78+
</tr>
79+
<tr>
80+
<td>0</td>
81+
<td>0</td>
82+
<td><progress value="0" max="99"></progress></td>
83+
<td>0</td>
84+
</tr>
85+
<tr>
86+
<td>0</td>
87+
<td>0</td>
88+
<td><progress value="0" max="99"></progress></td>
89+
<td>0</td>
90+
</tr>
91+
<tr>
92+
<td>0</td>
93+
<td>0</td>
94+
<td><progress value="0" max="99"></progress></td>
95+
<td>0</td>
96+
</tr>
97+
<tr>
98+
<td>0</td>
99+
<td>0</td>
100+
<td><progress value="0" max="99"></progress></td>
101+
<td>0</td>
102+
</tr>
103+
<tr>
104+
<td>0</td>
105+
<td>0</td>
106+
<td><progress value="0" max="99"></progress></td>
107+
<td>0</td>
108+
</tr>
109+
<tr>
110+
<td>0</td>
111+
<td>0</td>
112+
<td><progress value="0" max="99"></progress></td>
113+
<td>0</td>
114+
</tr>
115+
<tr>
116+
<td>0</td>
117+
<td>0</td>
118+
<td><progress value="0" max="99"></progress></td>
119+
<td>0</td>
60120
</tr>
61121
<tr>
62122
<td>0</td>
63123
<td>0</td>
64124
<td><progress value="0" max="99"></progress></td>
125+
<td>0</td>
65126
</tr>
66127
<tr>
67128
<td>0</td>
68129
<td>0</td>
69130
<td><progress value="0" max="99"></progress></td>
131+
<td>0</td>
70132
</tr>
71133
<tr>
72134
<td>0</td>
73135
<td>0</td>
74136
<td><progress value="0" max="99"></progress></td>
137+
<td>0</td>
75138
</tr>
76139
<tr>
77140
<td>0</td>
78141
<td>0</td>
79142
<td><progress value="0" max="99"></progress></td>
143+
<td>0</td>
80144
</tr>
81145
<tr>
82146
<td>0</td>
83147
<td>0</td>
84148
<td><progress value="0" max="99"></progress></td>
149+
<td>0</td>
85150
</tr>
86151
<tr>
87152
<td>0</td>
88153
<td>0</td>
89154
<td><progress value="0" max="99"></progress></td>
155+
<td>0</td>
90156
</tr>
91157
<tr>
92158
<td>0</td>
93159
<td>0</td>
94160
<td><progress value="0" max="99"></progress></td>
161+
<td>0</td>
95162
</tr>
96163
<tr>
97164
<td>0</td>
98165
<td>0</td>
99166
<td><progress value="0" max="99"></progress></td>
167+
<td>0</td>
100168
</tr>
101169
<tr>
102170
<td>0</td>
103171
<td>0</td>
104172
<td><progress value="0" max="99"></progress></td>
173+
<td>0</td>
105174
</tr>
106175
<tr>
107176
<td>0</td>
108177
<td>0</td>
109178
<td><progress value="0" max="99"></progress></td>
179+
<td>0</td>
110180
</tr>
111181
<tr>
112182
<td>0</td>
113183
<td>0</td>
114184
<td><progress value="0" max="99"></progress></td>
185+
<td>0</td>
186+
</tr>
187+
<tr>
188+
<td>0</td>
189+
<td>0</td>
190+
<td><progress value="0" max="99"></progress></td>
191+
<td>0</td>
115192
</tr>
116193
<tr>
117194
<td>0</td>
118195
<td>0</td>
119196
<td><progress value="0" max="99"></progress></td>
197+
<td>0</td>
120198
</tr>
121199
<tr>
122200
<td>0</td>
123201
<td>0</td>
124202
<td><progress value="0" max="99"></progress></td>
203+
<td>0</td>
125204
</tr>
126205
<tr>
127206
<td>0</td>
128207
<td>0</td>
129208
<td><progress value="0" max="99"></progress></td>
209+
<td>0</td>
130210
</tr>
131211
<tr>
132212
<td>0</td>
133213
<td>0</td>
134214
<td><progress value="0" max="99"></progress></td>
215+
<td>0</td>
216+
</tr>
217+
<tr>
218+
<td>0</td>
219+
<td>0</td>
220+
<td><progress value="0" max="99"></progress></td>
221+
<td>0</td>
222+
</tr>
223+
<tr>
224+
<td>0</td>
225+
<td>0</td>
226+
<td><progress value="0" max="99"></progress></td>
227+
<td>0</td>
228+
</tr>
229+
<tr>
230+
<td>0</td>
231+
<td>0</td>
232+
<td><progress value="0" max="99"></progress></td>
233+
<td>0</td>
234+
</tr>
235+
<tr>
236+
<td>0</td>
237+
<td>0</td>
238+
<td><progress value="0" max="99"></progress></td>
239+
<td>0</td>
240+
</tr>
241+
<tr>
242+
<td>0</td>
243+
<td>0</td>
244+
<td><progress value="0" max="99"></progress></td>
245+
<td>0</td>
135246
</tr>
136247
<tr class="noboarder">
137248
<td>0</td>
138249
<td>0</td>
139250
<td><progress value="0" max="99"></progress></td>
251+
<td>0</td>
140252
</tr>
141253
</table>
142254
</div>
143255
</div>
144256
</div>
145-
<div class="grid-col col6">
257+
<div class="grid-col col7">
146258
<div class="gui_box grey gps_map">
147259
<div class="gui_box_titlebar" style="margin-bottom: 0px;">
148260
<div class="spacer_box_title" i18n="gpsMapHead"></div>

0 commit comments

Comments
 (0)