1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-21 15:25: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": {
"message": "GPS"
},
"gpsStatHead": {
"message": "GPS Statistics"
},
"gpsMapHead": {
"message": "Current GPS location"
},
@ -1150,8 +1153,26 @@
"gpsDistToHome": {
"message": "Dist to Home:"
},
"gpsSignalStrHead": {
"message": "GPS Signal Strength"
"gpsHDOP": {
"message": "HDOP:"
},
"gpsTotalMessages": {
"message": "Total messages:"
},
"gpsMessageRate": {
"message": "Update time:"
},
"gpsErrors": {
"message": "Errors:"
},
"gpsTimeouts": {
"message": "Timeouts:"
},
"gpsEPH": {
"message": "EPH:"
},
"gpsEPV": {
"message": "EPV:"
},
"gpsSignalStr": {
"message": "Signal Strength"

View file

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

View file

@ -101,6 +101,7 @@ var MSP_codes = {
MSP_ACC_TRIM: 240, // get acc angle trim values
MSP_SET_ACC_TRIM: 239, // set acc angle trim values
MSP_GPS_SV_INFO: 164, // get Signal Strength
MSP_GPSSTATISTICS: 166, // GPS statistics
// Additional private MSP for baseflight configurator (yes thats us \o/)
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.speed = data.getUint16(12, 1);
GPS_DATA.ground_course = data.getUint16(14, 1);
GPS_DATA.hdop = data.getUint16(16, 1);
break;
case MSP_codes.MSP_COMP_GPS:
GPS_DATA.distanceToHome = data.getUint16(0, 1);
GPS_DATA.directionToHome = data.getUint16(2, 1);
GPS_DATA.update = data.getUint8(4);
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:
SENSOR_DATA.kinematics[0] = data.getInt16(0, 1) / 10.0; // x
SENSOR_DATA.kinematics[1] = data.getInt16(2, 1) / 10.0; // y
@ -612,21 +623,6 @@ var MSP = {
case MSP_codes.MSP_SET_ACC_TRIM:
console.log('Accelerometer trimms saved.');
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
case MSP_codes.MSP_RX_MAP:
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-position: center 40%;
background-size: 15%;
height: 100%;
height: 70%;
background-repeat: no-repeat;
float: left;
width: 100%;
}
.tab-gps #waiting .info {
margin-top: 50%;
margin-top: 30%;
}
.tab-gps #loadmap {

View file

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

View file

@ -36,11 +36,11 @@ TABS.gps.initialize = function (callback) {
}
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() {
MSP.send_message(MSP_codes.MSP_GPS_SV_INFO, false, false, update_ui);
function get_gpsstatistics_data() {
MSP.send_message(MSP_codes.MSP_GPSSTATISTICS, false, false, 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.distToHome').text(GPS_DATA.distanceToHome + ' m');
// Update GPS Signal Strengths
var e_ss_table = $('div.GPS_signal_strength table tr:not(.titles)');
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]);
var gpsRate = 0;
if (GPS_DATA.messageDt > 0) {
gpsRate = 1000 / GPS_DATA.messageDt;
}
$('.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 = {
action: 'center',