[Horus] GPS display fix

This commit is contained in:
Bertrand Songis
2016-09-01 19:00:12 +02:00
parent caf0fca1c2
commit 70846d4add
4 changed files with 23 additions and 8 deletions
+3 -2
View File
@@ -817,6 +817,7 @@ void drawGPSCoord(coord_t x, coord_t y, int32_t value, const char * direction, L
uint32_t absvalue = abs(value);
lcdDrawNumber(x, y, absvalue / 1000000, att); // ddd
lcdDrawChar(lcdLastPos, y, '@', att);
att &= ~RIGHT;
absvalue = absvalue % 1000000;
absvalue *= 60;
if (g_eeGeneral.gpsFormat == 0 || !seconds) {
@@ -876,8 +877,8 @@ void drawGPSSensorValue(coord_t x, coord_t y, TelemetryItem & telemetryItem, Lcd
if (att & DBLSIZE) {
x -= (g_eeGeneral.gpsFormat == 0 ? 54 : 51);
att &= ~0x0F00; // TODO constant
drawGPSCoord(x, y, telemetryItem.gps.longitude, "EW", att);
drawGPSCoord(x, y+FH, telemetryItem.gps.latitude, "NS", att);
drawGPSCoord(x, y, telemetryItem.gps.longitude, "EW", att, true);
drawGPSCoord(x, y+FH, telemetryItem.gps.latitude, "NS", att, true);
}
else {
drawGPSCoord(x, y, telemetryItem.gps.longitude, "EW", att, false);
+8 -2
View File
@@ -360,8 +360,14 @@ void drawGPSCoord(coord_t x, coord_t y, int32_t value, const char * direction, L
void drawGPSPosition(coord_t x, coord_t y, int32_t longitude, int32_t latitude, LcdFlags flags)
{
drawGPSCoord(x, y, longitude, "EW", flags);
drawGPSCoord(x, y+FH, latitude, "NS", flags);
if (flags & EXPANDED) {
drawGPSCoord(x, y, longitude, "EW", flags, true);
drawGPSCoord(x, y + FH, latitude, "NS", flags, true);
}
else {
drawGPSCoord(x, y, longitude, "EW", flags, false);
drawGPSCoord(lcdNextPos+5, y, latitude, "NS", flags, false);
}
}
void drawGPSSensorValue(coord_t x, coord_t y, TelemetryItem & telemetryItem, LcdFlags flags)
+1
View File
@@ -88,6 +88,7 @@ enum FontSizeIndex {
#define TIMEBLINK 0x1000
#define TIMEHOUR 0x2000
#define EXPANDED 0x2000
#define VERTICAL 0x4000
#define NO_FONTCACHE 0x8000
+11 -4
View File
@@ -75,13 +75,20 @@ void ValueWidget::refresh()
yValue = y+18;
xLabel = x+NUMBERS_PADDING;
yLabel = y+2;
if (field >= MIXSRC_FIRST_TELEM) {
if (isGPSSensor(1+(field-MIXSRC_FIRST_TELEM)/3)) {
attrValue = LEFT | MIDSIZE | EXPANDED;
}
else {
attrValue = LEFT | DBLSIZE;
}
}
#if defined(INTERNAL_GPS)
if (field == MIXSRC_TX_GPS) {
attrValue = LEFT | MIDSIZE;
else if (field == MIXSRC_TX_GPS) {
attrValue = LEFT | MIDSIZE | EXPANDED;
}
else
#endif
{
else {
attrValue = LEFT | DBLSIZE;
}
}