From 36a7662b6b95752d33973148961a57612d9ddf23 Mon Sep 17 00:00:00 2001 From: j-w9 <295470691+j-w9@users.noreply.github.com> Date: Sat, 24 Oct 2026 11:10:41 -0400 Subject: [PATCH] MAGFit: add yaw to flight data plot --- MAGFit/magfit.js | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/MAGFit/magfit.js b/MAGFit/magfit.js index 7f312942..0dcf213b 100644 --- a/MAGFit/magfit.js +++ b/MAGFit/magfit.js @@ -24,8 +24,8 @@ function setup_plots() { const time_scale_label = "Time (s)" // Setup flight data plot - const flight_data_plot = ["Roll", "Pitch", "Throttle", "Altitude"] - const flight_data_unit = ["deg", "deg", "", "m"] + const flight_data_plot = ["Roll", "Pitch", "Throttle", "Altitude", "Yaw"] + const flight_data_unit = ["deg", "deg", "", "m", "deg"] flight_data.data = [] for (let i=0;i 0) { axi += (i+1) } - const side = i < 2 ? "left" : "right" flight_data.layout[axi] = {title: { text: flight_data_plot[i] }, zeroline: false, showline: true, mirror: true, - side: side, + side: flight_data_axis_side[i], position: flight_data_axis_pos[i], color: plot_default_color(i) } if (i > 0) { @@ -1778,11 +1778,28 @@ async function load(log_file) { flight_data.data[1].x = ATT_time flight_data.data[1].y = log.get("ATT", "Pitch") + + // Break the yaw line where it wraps between 0 and 360 to avoid vertical lines + const ATT_yaw = log.get("ATT", "Yaw") + let yaw_time = [] + let yaw = [] + for (let i = 0; i < ATT_yaw.length; i++) { + if ((i > 0) && (Math.abs(ATT_yaw[i] - ATT_yaw[i-1]) > 180)) { + yaw_time.push(null) + yaw.push(null) + } + yaw_time.push(ATT_time[i]) + yaw.push(ATT_yaw[i]) + } + flight_data.data[4].x = yaw_time + flight_data.data[4].y = yaw } else { flight_data.data[0].x = null flight_data.data[0].y = null flight_data.data[1].x = null flight_data.data[1].y = null + flight_data.data[4].x = null + flight_data.data[4].y = null } if ("RATE" in log.messageTypes) {