Commit 62fa10be authored by Léo-Paul Géneau's avatar Léo-Paul Géneau 👾

Fix projection

Do not do any projection before target coordinates have been set.
parent d036ffe3
...@@ -56,6 +56,7 @@ static const float DEFAULT_SPEED = 16; ...@@ -56,6 +56,7 @@ static const float DEFAULT_SPEED = 16;
static float last_override_altitude; static float last_override_altitude;
static float last_override_speed; static float last_override_speed;
static bool first_coordinate_entered = false;
static bool do_projection = false; static bool do_projection = false;
// Logs functions // Logs functions
...@@ -164,6 +165,9 @@ static int doReposition(float la, float lo, float radius, float y) { ...@@ -164,6 +165,9 @@ static int doReposition(float la, float lo, float radius, float y) {
} }
static void doReposition_async(float la, float lo, float radius, float y) { static void doReposition_async(float la, float lo, float radius, float y) {
if (!first_coordinate_entered) {
first_coordinate_entered = true;
}
std::thread(doReposition, la, lo, radius, y).detach(); std::thread(doReposition, la, lo, radius, y).detach();
} }
...@@ -223,15 +227,17 @@ void updateLogAndProjection(void) { ...@@ -223,15 +227,17 @@ void updateLogAndProjection(void) {
<< metrics.airspeed_m_s << ";" << metrics.climb_rate_m_s; << metrics.airspeed_m_s << ";" << metrics.climb_rate_m_s;
log(oss.str()); log(oss.str());
if (do_projection) { if (first_coordinate_entered) {
updateProjection(current_position[0], current_position[1]); if (do_projection) {
} else { updateProjection(current_position[0], current_position[1]);
doReposition_async( } else {
(float)targeted_destination.latitude, doReposition_async(
(float)targeted_destination.longitude, (float)targeted_destination.latitude,
targeted_radius, (float)targeted_destination.longitude,
0 targeted_radius,
); 0
);
}
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment