@@ -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 = [ 'no signal' , 'searching' , 'acquired' , 'unusable' , 'locked' , 'fully locked' , 'fully locked' , 'fully locked' ] ;
53+ const usedArray = [ 'unused' , 'used' ] ;
54+ const healthyArray = [ 'unknown' , 'healthy' , 'unhealthy' , 'unknown' ] ;
5155 let alt = FC . GPS_DATA . alt ;
5256 if ( semver . lt ( FC . CONFIG . apiVersion , API_VERSION_1_39 ) ) {
5357 alt = alt / 10 ;
@@ -65,6 +69,7 @@ TABS.gps.initialize = function (callback) {
6569 const eSsTable = $ ( 'div.GPS_signal_strength table tr:not(.titles)' ) ;
6670
6771 if ( FC . GPS_DATA . chn . length <= 16 ) {
72+ // Legacy code path: old BF firmware or old ublox module
6873 for ( let i = 0 ; i < FC . GPS_DATA . chn . length ; i ++ ) {
6974 const row = eSsTable . eq ( i ) ;
7075
@@ -74,6 +79,7 @@ TABS.gps.initialize = function (callback) {
7479 //$('td', row).eq(3).text(' ');
7580 $ ( 'td' , row ) . eq ( 2 ) . find ( 'progress' ) . val ( FC . GPS_DATA . cno [ i ] ) ;
7681 }
82+ // Cleanup the rest of the table
7783 for ( let i = FC . GPS_DATA . chn . length ; i < 32 ; i ++ ) {
7884 const row = eSsTable . eq ( i ) ;
7985
@@ -83,33 +89,14 @@ TABS.gps.initialize = function (callback) {
8389 $ ( 'td' , row ) . eq ( 2 ) . find ( 'progress' ) . val ( 0 ) ;
8490 }
8591 } else {
92+ // M8N/M9N on newer firmware
8693 for ( let i = 0 ; i < FC . GPS_DATA . chn . length ; i ++ ) {
8794 const row = eSsTable . eq ( i ) ;
8895
89- switch ( FC . GPS_DATA . chn [ i ] ) {
90- case 0 :
91- $ ( 'td' , row ) . eq ( 0 ) . text ( 'GPS' ) ;
92- break ;
93- case 1 :
94- $ ( 'td' , row ) . eq ( 0 ) . text ( 'SBAS' ) ;
95- break ;
96- case 2 :
97- $ ( 'td' , row ) . eq ( 0 ) . text ( 'Galileo' ) ;
98- break ;
99- case 3 :
100- $ ( 'td' , row ) . eq ( 0 ) . text ( 'BeiDou' ) ;
101- break ;
102- case 4 :
103- $ ( 'td' , row ) . eq ( 0 ) . text ( 'IMES' ) ;
104- break ;
105- case 5 :
106- $ ( 'td' , row ) . eq ( 0 ) . text ( 'QZSS' ) ;
107- break ;
108- case 6 :
109- $ ( 'td' , row ) . eq ( 0 ) . text ( 'GLO' ) ;
110- break ;
111- default :
112- $ ( 'td' , row ) . eq ( 0 ) . text ( '-' ) ;
96+ if ( FC . GPS_DATA . chn [ i ] <= 6 ) {
97+ $ ( 'td' , row ) . eq ( 0 ) . text ( gnssArray [ FC . GPS_DATA . chn [ i ] ] ) ;
98+ } else {
99+ $ ( 'td' , row ) . eq ( 0 ) . text ( '-' ) ;
113100 }
114101
115102 if ( FC . GPS_DATA . chn [ i ] >= 7 ) {
@@ -119,49 +106,9 @@ TABS.gps.initialize = function (callback) {
119106 } else {
120107 $ ( 'td' , row ) . eq ( 1 ) . text ( FC . GPS_DATA . svid [ i ] ) ;
121108
122- let quality = '' ;
123- switch ( FC . GPS_DATA . quality [ i ] & 0x7 ) {
124- case 0 :
125- quality = quality + 'no signal | ' ;
126- break ;
127- case 1 :
128- quality = quality + 'searching | ' ;
129- break ;
130- case 2 :
131- quality = quality + 'acquired | ' ;
132- break ;
133- case 3 :
134- quality = quality + 'unusable | ' ;
135- break ;
136- case 4 :
137- quality = quality + 'locked | ' ;
138- break ;
139- default :
140- quality = quality + 'fully locked | ' ;
141- break ;
142- }
143-
144- let used = '' ;
145- switch ( ( FC . GPS_DATA . quality [ i ] & 0x8 ) >> 3 ) {
146- case 0 :
147- quality = quality + 'unused | ' ;
148- break ;
149- case 1 :
150- quality = quality + 'used | ' ;
151- break ;
152- }
153-
154- switch ( ( FC . GPS_DATA . quality [ i ] & 0x30 ) >> 4 ) {
155- case 1 :
156- quality = quality + 'healthy' ;
157- break ;
158- case 2 :
159- quality = quality + 'unhealthy' ;
160- break ;
161- default :
162- quality = quality + 'unknown' ;
163- break ;
164- }
109+ var quality = qualityArray [ FC . GPS_DATA . quality [ i ] & 0x7 ] + ' | ' +
110+ usedArray [ ( FC . GPS_DATA . quality [ i ] & 0x8 ) >> 3 ] + '|' +
111+ healthyArray [ ( FC . GPS_DATA . quality [ i ] & 0x30 ) >> 4 ] ;
165112
166113 $ ( 'td' , row ) . eq ( 3 ) . text ( quality ) ;
167114 $ ( 'td' , row ) . eq ( 2 ) . find ( 'progress' ) . val ( FC . GPS_DATA . cno [ i ] ) ;
0 commit comments