From e81a3089b1b9673335e2a6983f0eda44ab27824c Mon Sep 17 00:00:00 2001 From: Luca Conterio <luca.conterio@skywarder.eu> Date: Fri, 20 Aug 2021 17:51:04 +0200 Subject: [PATCH] [AirBrakes] Made scripts parametric wrt input filename --- scripts/airbrakes/coeffs.py | 8 ++++++-- scripts/airbrakes/trajectories.py | 22 ++++++++++++++++++---- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/scripts/airbrakes/coeffs.py b/scripts/airbrakes/coeffs.py index fa2de47fa..e9a2dfb1c 100644 --- a/scripts/airbrakes/coeffs.py +++ b/scripts/airbrakes/coeffs.py @@ -5,7 +5,8 @@ import sys fieldname = "coeffs" if len(sys.argv) < 2: - print("\nError, missing path to file \nUsage : python3 coeffs.py <path_to_mat_file>\n") + print("\nError, missing path to file") + print("Usage : python3 coeffs.py <path_to_mat_file>\n") mat = sio.loadmat(sys.argv[1]) @@ -17,4 +18,7 @@ coeffs = {} for coeff, name in zip(data, names): coeffs[name] = coeff.item() -print(coeffs) +print("struct Coefficients\n{") +for name in coeffs: # coeff name = dict key + print("\tfloat " + name + " = " + str(coeffs[name]) + ";") +print("};") diff --git a/scripts/airbrakes/trajectories.py b/scripts/airbrakes/trajectories.py index 3202be92c..8f2b9e327 100644 --- a/scripts/airbrakes/trajectories.py +++ b/scripts/airbrakes/trajectories.py @@ -2,16 +2,28 @@ import scipy.io as sio import sys #filename = "Trajectories.mat" +outfilename = "Trajectories_data.h" fieldname = "trajectories_saving" if len(sys.argv) < 2: - print("\nError, missing path to file \nUsage : python3 coeffs.py <path_to_mat_file>\n") + print("\nError, missing path to file") + print("Usage : python3 coeffs.py <path_to_mat_file>\n") mat = sio.loadmat(sys.argv[1]) trajectories = mat[fieldname][0] -with open("Trajectories_data.h", "w") as f: - f.write("{\n") +with open(outfilename, "w") as f: + num_trajectories = len(trajectories) + max_trajectory_len = 0 + for t in trajectories: + # check length of first column for each trajectory + if len(t[0]) > max_trajectory_len: + max_trajectory_len = len(t[0]) + + f.write("static const unsigned int TOT_TRAJECTORIES = " + str(num_trajectories) + ";\n") + f.write("static const unsigned int TRAJECTORY_MAX_LENGTH = " + str(max_trajectory_len) + ";\n\n") + + f.write("const trajectory_t TRAJECTORIES_DATA[TOT_TRAJECTORIES] = {\n") for trajectory in trajectories: zs, vzs, xs, vxs, ys, vys, sbar = trajectory f.write("\t{\n") @@ -19,4 +31,6 @@ with open("Trajectories_data.h", "w") as f: for z, vz in zip(zs, vzs): f.write("\t\t\t{%f, %f},\n" % (z, vz)) f.write("\t\t}\n\t},\n") - f.write("}") + f.write("};") + +print("\nFile " + outfilename + " written") -- GitLab