1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-23 08:15:19 +03:00

Update GPS page

This commit is contained in:
Konstantin Sharlaimov (DigitalEntity) 2016-05-05 10:06:52 +10:00
parent 227abc752d
commit 15dfc2ad41
6 changed files with 77 additions and 118 deletions

View file

@ -1114,6 +1114,9 @@
"gpsHead": { "gpsHead": {
"message": "GPS" "message": "GPS"
}, },
"gpsStatHead": {
"message": "GPS Statistics"
},
"gpsMapHead": { "gpsMapHead": {
"message": "Current GPS location" "message": "Current GPS location"
}, },
@ -1150,8 +1153,26 @@
"gpsDistToHome": { "gpsDistToHome": {
"message": "Dist to Home:" "message": "Dist to Home:"
}, },
"gpsSignalStrHead": { "gpsHDOP": {
"message": "GPS Signal Strength" "message": "HDOP:"
},
"gpsTotalMessages": {
"message": "Total messages:"
},
"gpsMessageRate": {
"message": "Update time:"
},
"gpsErrors": {
"message": "Errors:"
},
"gpsTimeouts": {
"message": "Timeouts:"
},
"gpsEPH": {
"message": "EPH:"
},
"gpsEPV": {
"message": "EPV:"
}, },
"gpsSignalStr": { "gpsSignalStr": {
"message": "Signal Strength" "message": "Signal Strength"

View file

@ -145,12 +145,13 @@ var FC = {
distanceToHome: 0, distanceToHome: 0,
ditectionToHome: 0, ditectionToHome: 0,
update: 0, update: 0,
hdop: 0,
// baseflight specific gps stuff eph: 0,
chn: [], epv: 0,
svid: [], messageDt: 0,
quality: [], errors: 0,
cno: [] timeouts: 0,
packetCount: 0
}; };
ANALOG = { ANALOG = {

View file

@ -101,6 +101,7 @@ var MSP_codes = {
MSP_ACC_TRIM: 240, // get acc angle trim values MSP_ACC_TRIM: 240, // get acc angle trim values
MSP_SET_ACC_TRIM: 239, // set acc angle trim values MSP_SET_ACC_TRIM: 239, // set acc angle trim values
MSP_GPS_SV_INFO: 164, // get Signal Strength MSP_GPS_SV_INFO: 164, // get Signal Strength
MSP_GPSSTATISTICS: 166, // GPS statistics
// Additional private MSP for baseflight configurator (yes thats us \o/) // Additional private MSP for baseflight configurator (yes thats us \o/)
MSP_RX_MAP: 64, // get channel map (also returns number of channels total) MSP_RX_MAP: 64, // get channel map (also returns number of channels total)
@ -308,12 +309,22 @@ var MSP = {
GPS_DATA.alt = data.getUint16(10, 1); GPS_DATA.alt = data.getUint16(10, 1);
GPS_DATA.speed = data.getUint16(12, 1); GPS_DATA.speed = data.getUint16(12, 1);
GPS_DATA.ground_course = data.getUint16(14, 1); GPS_DATA.ground_course = data.getUint16(14, 1);
GPS_DATA.hdop = data.getUint16(16, 1);
break; break;
case MSP_codes.MSP_COMP_GPS: case MSP_codes.MSP_COMP_GPS:
GPS_DATA.distanceToHome = data.getUint16(0, 1); GPS_DATA.distanceToHome = data.getUint16(0, 1);
GPS_DATA.directionToHome = data.getUint16(2, 1); GPS_DATA.directionToHome = data.getUint16(2, 1);
GPS_DATA.update = data.getUint8(4); GPS_DATA.update = data.getUint8(4);
break; break;
case MSP_codes.MSP_GPSSTATISTICS:
GPS_DATA.messageDt = data.getUint16(0, 1);
GPS_DATA.errors = data.getUint32(2, 1);
GPS_DATA.timeouts = data.getUint32(6, 1);
GPS_DATA.packetCount = data.getUint32(10, 1);
GPS_DATA.hdop = data.getUint16(14, 1);
GPS_DATA.eph = data.getUint16(16, 1);
GPS_DATA.epv = data.getUint16(18, 1);
break;
case MSP_codes.MSP_ATTITUDE: case MSP_codes.MSP_ATTITUDE:
SENSOR_DATA.kinematics[0] = data.getInt16(0, 1) / 10.0; // x SENSOR_DATA.kinematics[0] = data.getInt16(0, 1) / 10.0; // x
SENSOR_DATA.kinematics[1] = data.getInt16(2, 1) / 10.0; // y SENSOR_DATA.kinematics[1] = data.getInt16(2, 1) / 10.0; // y
@ -612,21 +623,6 @@ var MSP = {
case MSP_codes.MSP_SET_ACC_TRIM: case MSP_codes.MSP_SET_ACC_TRIM:
console.log('Accelerometer trimms saved.'); console.log('Accelerometer trimms saved.');
break; break;
case MSP_codes.MSP_GPS_SV_INFO:
if (data.byteLength > 0) {
var numCh = data.getUint8(0);
var needle = 1;
for (var i = 0; i < numCh; i++) {
GPS_DATA.chn[i] = data.getUint8(needle);
GPS_DATA.svid[i] = data.getUint8(needle + 1);
GPS_DATA.quality[i] = data.getUint8(needle + 2);
GPS_DATA.cno[i] = data.getUint8(needle + 3);
needle += 4;
}
}
break;
// Additional private MSP for baseflight configurator // Additional private MSP for baseflight configurator
case MSP_codes.MSP_RX_MAP: case MSP_codes.MSP_RX_MAP:
RC_MAP = []; // empty the array as new data is coming in RC_MAP = []; // empty the array as new data is coming in

View file

@ -31,14 +31,14 @@
background-image: url(../images/loading-bars.svg); background-image: url(../images/loading-bars.svg);
background-position: center 40%; background-position: center 40%;
background-size: 15%; background-size: 15%;
height: 100%; height: 70%;
background-repeat: no-repeat; background-repeat: no-repeat;
float: left; float: left;
width: 100%; width: 100%;
} }
.tab-gps #waiting .info { .tab-gps #waiting .info {
margin-top: 50%; margin-top: 30%;
} }
.tab-gps #loadmap { .tab-gps #loadmap {

View file

@ -45,107 +45,47 @@
</table> </table>
</div> </div>
</div> </div>
</div> <div class="gui_box grey">
</div>
<div class="cf_column fourth">
<div class="spacer_right">
<div class="gui_box grey" style="margin-bottom: -5px;">
<div class="gui_box_titlebar"> <div class="gui_box_titlebar">
<div class="spacer_box_title" i18n="gpsSignalStrHead"></div> <div class="spacer_box_title" i18n="gpsStatHead"></div>
</div> </div>
<div class="spacer_box GPS_signal_strength"> <div class="spacer_box GPS_stat">
<table class="cf_table"> <table class="cf_table">
<tr class="titles"> <tr>
<td style="width: 20%;">Sat ID</td> <td i18n="gpsHDOP"></td>
<td style="width: 15%;">Qty</td> <td class="hdop"></td>
<td style="width: 65%;" i18n="gpsSignalStr">Signal Strength</td>
</tr> </tr>
<tr> <tr>
<td>0</td> <td i18n="gpsEPH"></td>
<td>0</td> <td class="eph">0</td>
<td><progress value="0" max="99"></progress></td>
</tr> </tr>
<tr> <tr>
<td>0</td> <td i18n="gpsEPV"></td>
<td>0</td> <td class="epv">0</td>
<td><progress value="0" max="99"></progress></td>
</tr> </tr>
<tr> <tr>
<td>0</td> <td i18n="gpsMessageRate"></td>
<td>0</td> <td class="rate">0</td>
<td><progress value="0" max="99"></progress></td>
</tr> </tr>
<tr> <tr>
<td>0</td> <td style="width: 85px" i18n="gpsTotalMessages"></td>
<td>0</td> <td class="messages">0</td>
<td><progress value="0" max="99"></progress></td>
</tr> </tr>
<tr> <tr>
<td>0</td> <td i18n="gpsErrors"></td>
<td>0</td> <td class="errors">0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td><progress value="0" max="99"></progress></td>
</tr> </tr>
<tr class="noboarder"> <tr class="noboarder">
<td>0</td> <td i18n="gpsTimeouts"></td>
<td>0</td> <td class="timeouts">0</td>
<td><progress value="0" max="99"></progress></td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="cf_column half">
<div class="cf_column threefourth_left">
<div class="gui_box grey gps_map"> <div class="gui_box grey gps_map">
<div class="gui_box_titlebar" style="margin-bottom: 0px;"> <div class="gui_box_titlebar" style="margin-bottom: 0px;">
<div class="spacer_box_title" i18n="gpsMapHead"></div> <div class="spacer_box_title" i18n="gpsMapHead"></div>

View file

@ -36,11 +36,11 @@ TABS.gps.initialize = function (callback) {
} }
function get_comp_gps_data() { function get_comp_gps_data() {
MSP.send_message(MSP_codes.MSP_COMP_GPS, false, false, get_gpsvinfo_data); MSP.send_message(MSP_codes.MSP_COMP_GPS, false, false, get_gpsstatistics_data);
} }
function get_gpsvinfo_data() { function get_gpsstatistics_data() {
MSP.send_message(MSP_codes.MSP_GPS_SV_INFO, false, false, update_ui); MSP.send_message(MSP_codes.MSP_GPSSTATISTICS, false, false, update_ui);
} }
function update_ui() { function update_ui() {
@ -56,17 +56,18 @@ TABS.gps.initialize = function (callback) {
$('.GPS_info td.sats').text(GPS_DATA.numSat); $('.GPS_info td.sats').text(GPS_DATA.numSat);
$('.GPS_info td.distToHome').text(GPS_DATA.distanceToHome + ' m'); $('.GPS_info td.distToHome').text(GPS_DATA.distanceToHome + ' m');
// Update GPS Signal Strengths var gpsRate = 0;
var e_ss_table = $('div.GPS_signal_strength table tr:not(.titles)'); if (GPS_DATA.messageDt > 0) {
gpsRate = 1000 / GPS_DATA.messageDt;
for (var i = 0; i < GPS_DATA.chn.length; i++) {
var row = e_ss_table.eq(i);
$('td', row).eq(0).text(GPS_DATA.svid[i]);
$('td', row).eq(1).text(GPS_DATA.quality[i]);
$('td', row).eq(2).find('progress').val(GPS_DATA.cno[i]);
} }
$('.GPS_stat td.messages').text(GPS_DATA.packetCount);
$('.GPS_stat td.rate').text(gpsRate.toFixed(1) + ' Hz');
$('.GPS_stat td.errors').text(GPS_DATA.errors);
$('.GPS_stat td.timeouts').text(GPS_DATA.timeouts);
$('.GPS_stat td.eph').text((GPS_DATA.eph / 100).toFixed(2) + ' m');
$('.GPS_stat td.epv').text((GPS_DATA.epv / 100).toFixed(2) + ' m');
$('.GPS_stat td.hdop').text((GPS_DATA.hdop / 100).toFixed(2));
var message = { var message = {
action: 'center', action: 'center',