mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-07 14:14:52 +00:00
Revert "Actually honor the points-north setting"
This reverts commit 20988aa4fa
.
This commit is contained in:
parent
94258cfd1c
commit
42c1967e7b
@ -558,7 +558,6 @@ void drawNodeListWithCompasses(OLEDDisplay *display, OLEDDisplayUiState *state,
|
|||||||
double lat = 0;
|
double lat = 0;
|
||||||
double lon = 0;
|
double lon = 0;
|
||||||
|
|
||||||
if (!config.display.compass_north_top) {
|
|
||||||
#if HAS_GPS
|
#if HAS_GPS
|
||||||
if (screen->hasHeading()) {
|
if (screen->hasHeading()) {
|
||||||
heading = screen->getHeading(); // degrees
|
heading = screen->getHeading(); // degrees
|
||||||
@ -571,7 +570,7 @@ void drawNodeListWithCompasses(OLEDDisplay *display, OLEDDisplayUiState *state,
|
|||||||
|
|
||||||
if (!validHeading)
|
if (!validHeading)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
drawNodeListScreen(display, state, x, y, "Bearings", drawEntryCompass, drawCompassArrow, heading, lat, lon);
|
drawNodeListScreen(display, state, x, y, "Bearings", drawEntryCompass, drawCompassArrow, heading, lat, lon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -444,11 +444,8 @@ void UIRenderer::drawNodeInfo(OLEDDisplay *display, const OLEDDisplayUiState *st
|
|||||||
GeoCoord::latLongToMeter(DegD(p.latitude_i), DegD(p.longitude_i), DegD(op.latitude_i), DegD(op.longitude_i));
|
GeoCoord::latLongToMeter(DegD(p.latitude_i), DegD(p.longitude_i), DegD(op.latitude_i), DegD(op.longitude_i));
|
||||||
*/
|
*/
|
||||||
float bearing = GeoCoord::bearing(DegD(op.latitude_i), DegD(op.longitude_i), DegD(p.latitude_i), DegD(p.longitude_i));
|
float bearing = GeoCoord::bearing(DegD(op.latitude_i), DegD(op.longitude_i), DegD(p.latitude_i), DegD(p.longitude_i));
|
||||||
if (config.display.compass_north_top) {
|
if (!config.display.compass_north_top)
|
||||||
myHeading = 0;
|
|
||||||
} else {
|
|
||||||
bearing -= myHeading;
|
bearing -= myHeading;
|
||||||
}
|
|
||||||
|
|
||||||
display->drawCircle(compassX, compassY, compassRadius);
|
display->drawCircle(compassX, compassY, compassRadius);
|
||||||
CompassRenderer::drawCompassNorth(display, compassX, compassY, myHeading, compassRadius);
|
CompassRenderer::drawCompassNorth(display, compassX, compassY, myHeading, compassRadius);
|
||||||
@ -488,11 +485,8 @@ void UIRenderer::drawNodeInfo(OLEDDisplay *display, const OLEDDisplayUiState *st
|
|||||||
int compassY = yBelowContent + availableHeight / 2;
|
int compassY = yBelowContent + availableHeight / 2;
|
||||||
|
|
||||||
const auto &op = ourNode->position;
|
const auto &op = ourNode->position;
|
||||||
float myHeading = 0;
|
float myHeading = screen->hasHeading() ? screen->getHeading() * PI / 180
|
||||||
if (!config.display.compass_north_top) {
|
|
||||||
myHeading = screen->hasHeading() ? screen->getHeading() * PI / 180
|
|
||||||
: screen->estimatedHeading(DegD(op.latitude_i), DegD(op.longitude_i));
|
: screen->estimatedHeading(DegD(op.latitude_i), DegD(op.longitude_i));
|
||||||
}
|
|
||||||
graphics::CompassRenderer::drawCompassNorth(display, compassX, compassY, myHeading, compassRadius);
|
graphics::CompassRenderer::drawCompassNorth(display, compassX, compassY, myHeading, compassRadius);
|
||||||
|
|
||||||
const auto &p = node->position;
|
const auto &p = node->position;
|
||||||
@ -932,11 +926,9 @@ void UIRenderer::drawCompassAndLocationScreen(OLEDDisplay *display, OLEDDisplayU
|
|||||||
int32_t(gpsStatus->getAltitude()));
|
int32_t(gpsStatus->getAltitude()));
|
||||||
|
|
||||||
// === Determine Compass Heading ===
|
// === Determine Compass Heading ===
|
||||||
float heading = 0;
|
float heading;
|
||||||
bool validHeading = false;
|
bool validHeading = false;
|
||||||
if (config.display.compass_north_top) {
|
|
||||||
validHeading = true;
|
|
||||||
} else {
|
|
||||||
if (screen->hasHeading()) {
|
if (screen->hasHeading()) {
|
||||||
heading = radians(screen->getHeading());
|
heading = radians(screen->getHeading());
|
||||||
validHeading = true;
|
validHeading = true;
|
||||||
@ -944,7 +936,6 @@ void UIRenderer::drawCompassAndLocationScreen(OLEDDisplay *display, OLEDDisplayU
|
|||||||
heading = screen->estimatedHeading(geoCoord.getLatitude() * 1e-7, geoCoord.getLongitude() * 1e-7);
|
heading = screen->estimatedHeading(geoCoord.getLatitude() * 1e-7, geoCoord.getLongitude() * 1e-7);
|
||||||
validHeading = !isnan(heading);
|
validHeading = !isnan(heading);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// If GPS is off, no need to display these parts
|
// If GPS is off, no need to display these parts
|
||||||
if (strcmp(displayLine, "GPS off") != 0 && strcmp(displayLine, "No GPS") != 0) {
|
if (strcmp(displayLine, "GPS off") != 0 && strcmp(displayLine, "No GPS") != 0) {
|
||||||
|
@ -137,14 +137,10 @@ void WaypointModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state,
|
|||||||
if (ourNode && (nodeDB->hasValidPosition(ourNode) || screen->hasHeading())) {
|
if (ourNode && (nodeDB->hasValidPosition(ourNode) || screen->hasHeading())) {
|
||||||
const meshtastic_PositionLite &op = ourNode->position;
|
const meshtastic_PositionLite &op = ourNode->position;
|
||||||
float myHeading;
|
float myHeading;
|
||||||
if (config.display.compass_north_top) {
|
|
||||||
myHeading = 0;
|
|
||||||
} else {
|
|
||||||
if (screen->hasHeading())
|
if (screen->hasHeading())
|
||||||
myHeading = (screen->getHeading()) * PI / 180; // gotta convert compass degrees to Radians
|
myHeading = (screen->getHeading()) * PI / 180; // gotta convert compass degrees to Radians
|
||||||
else
|
else
|
||||||
myHeading = screen->estimatedHeading(DegD(op.latitude_i), DegD(op.longitude_i));
|
myHeading = screen->estimatedHeading(DegD(op.latitude_i), DegD(op.longitude_i));
|
||||||
}
|
|
||||||
graphics::CompassRenderer::drawCompassNorth(display, compassX, compassY, myHeading, (compassDiam / 2));
|
graphics::CompassRenderer::drawCompassNorth(display, compassX, compassY, myHeading, (compassDiam / 2));
|
||||||
|
|
||||||
// Compass bearing to waypoint
|
// Compass bearing to waypoint
|
||||||
|
Loading…
Reference in New Issue
Block a user