1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-24 08:45:24 +03:00

Support for different GPS coordinates

This commit is contained in:
romolo.manfredini@gmail.com 2012-03-27 12:27:17 +00:00
parent 0a292381e1
commit c28f7bfc9a
2 changed files with 37 additions and 13 deletions

View file

@ -1034,13 +1034,25 @@ void menuProcFrsky(uint8_t event)
// Latitude
#define LAT_LINE (1*FH+1)
lcd_putsLeft( LAT_LINE, STR_LATITUDE);
lcd_outdezAtt(10*FW, LAT_LINE, frskyHubData.gpsLatitude_bp / 100, LEFT); // ddd before '.'
lcd_putc(lcd_lastPos, LAT_LINE, '@');
uint8_t mn = frskyHubData.gpsLatitude_bp % 100;
lcd_outdezNAtt(lcd_lastPos+FW, LAT_LINE, mn, LEFT|LEADING0, 2); // mm before '.'
lcd_plot(lcd_lastPos, LAT_LINE+FH-2, 0); // small decimal point
lcd_outdezNAtt(lcd_lastPos+2, LAT_LINE, frskyHubData.gpsLatitude_ap, LEFT|UNSIGN|LEADING0, 4); // after '.'
lcd_putc(lcd_lastPos+1, LAT_LINE, frskyHubData.gpsLatitudeNS ? frskyHubData.gpsLatitudeNS : '-');
lcd_outdezAtt(10*FW, LAT_LINE, frskyHubData.gpsLatitude_bp / 100, LEFT); // ddd before '.'
lcd_putc(lcd_lastPos, LAT_LINE, '@');
uint8_t mn = frskyHubData.gpsLatitude_bp % 100;
if (g_eeGeneral.gpsFormat==1) {
lcd_outdezNAtt(lcd_lastPos+FW, LAT_LINE, mn, LEFT|LEADING0, 2); // mm before '.'
lcd_plot(lcd_lastPos, LAT_LINE+FH-2, 0); // small decimal point
lcd_outdezNAtt(lcd_lastPos+2, LAT_LINE, frskyHubData.gpsLatitude_ap, LEFT|UNSIGN|LEADING0, 4); // after '.'
lcd_putc(lcd_lastPos+1, LAT_LINE, frskyHubData.gpsLatitudeNS ? frskyHubData.gpsLatitudeNS : '-');
} else {
lcd_putc(lcd_lastPos+FW, LAT_LINE, frskyHubData.gpsLatitudeNS ? frskyHubData.gpsLatitudeNS : '-');
lcd_outdezNAtt(lcd_lastPos+FW+FW, LAT_LINE, mn, LEFT|LEADING0, 2); // mm before '.'
lcd_plot(lcd_lastPos, LAT_LINE, 0); // small decimal point
uint16_t ss=frskyHubData.gpsLatitude_ap*6;
lcd_outdezAtt(lcd_lastPos+2, LAT_LINE, ss / 1000, LEFT); // ''
lcd_plot(lcd_lastPos, LAT_LINE+FH-2, 0); // small decimal point
lcd_outdezAtt(lcd_lastPos+2, LAT_LINE, ss % 1000, LEFT); // ''
lcd_plot(lcd_lastPos, LAT_LINE, 0); // small decimal point
lcd_plot(lcd_lastPos+2, LAT_LINE, 0); // small decimal point
}
// Longitude
#define LONG_LINE (2*FH+2)
@ -1048,11 +1060,22 @@ void menuProcFrsky(uint8_t event)
lcd_outdezAtt(10*FW, LONG_LINE, frskyHubData.gpsLongitude_bp / 100, LEFT); // ddd before '.'
lcd_putc(lcd_lastPos, LONG_LINE, '@');
mn = frskyHubData.gpsLongitude_bp % 100;
lcd_outdezNAtt(lcd_lastPos+FW, LONG_LINE, mn, LEFT|LEADING0, 2); // mm before '.'
lcd_plot(lcd_lastPos, LONG_LINE+FH-2, 0); // small decimal point
lcd_outdezNAtt(lcd_lastPos+2, LONG_LINE, frskyHubData.gpsLongitude_ap, LEFT|UNSIGN|LEADING0, 4); // after '.'
lcd_putc(lcd_lastPos+1, LONG_LINE, frskyHubData.gpsLongitudeEW ? frskyHubData.gpsLongitudeEW : '-');
if (g_eeGeneral.gpsFormat==1) {
lcd_outdezNAtt(lcd_lastPos+FW, LONG_LINE, mn, LEFT|LEADING0, 2); // mm before '.'
lcd_plot(lcd_lastPos, LONG_LINE+FH-2, 0); // small decimal point
lcd_outdezNAtt(lcd_lastPos+2, LONG_LINE, frskyHubData.gpsLongitude_ap, LEFT|UNSIGN|LEADING0, 4); // after '.'
lcd_putc(lcd_lastPos+1, LONG_LINE, frskyHubData.gpsLongitudeEW ? frskyHubData.gpsLongitudeEW : '-');
} else {
lcd_putc(lcd_lastPos+FW, LONG_LINE, frskyHubData.gpsLongitudeEW ? frskyHubData.gpsLongitudeEW : '-');
lcd_outdezNAtt(lcd_lastPos+FW+FW, LONG_LINE, mn, LEFT|LEADING0, 2); // mm before '.'
lcd_plot(lcd_lastPos, LONG_LINE, 0); // small decimal point
uint16_t ss=frskyHubData.gpsLongitude_ap*6;
lcd_outdezAtt(lcd_lastPos+2, LONG_LINE, ss / 1000, LEFT); // ''
lcd_plot(lcd_lastPos, LONG_LINE+FH-2, 0); // small decimal point
lcd_outdezAtt(lcd_lastPos+2, LONG_LINE, ss % 1000, LEFT); // ''
lcd_plot(lcd_lastPos, LONG_LINE, 0); // small decimal point
lcd_plot(lcd_lastPos+2, LONG_LINE, 0); // small decimal point
}
// Rssi
#define RSSI_LINE (3*FH+3)
lcd_putsLeft(RSSI_LINE, STR_MINRSSI);

View file

@ -123,7 +123,8 @@ PACK(typedef struct t_EEGeneral {
uint8_t spare2[2];
int8_t beeperLength:3;
uint8_t hapticStrength:3;
uint8_t spare3:2;
uint8_t gpsFormat:1;
uint8_t spare3:1;
uint8_t speakerPitch;
}) EEGeneral;