Implement a basic task system, it prioritizes the tasks that haven't run for the longest + takes into account their priority (timesincelast_run * priority), default priority is 10. 0 - task will never run, 50 - most important.
One potential problem is, that if a task has high enought priprity, it can be selected every single time over every other task.
github.com/Orange-Space-Technologies/OrangeFlight/commit/5c8a123beee5012ea86adb03fcd412b827abec25
Implemented basic software-in-the-loop testing support.
It:
• Reads simulation data from a CSV file (I wrote a custom parser for OpenRocket CSV files specifically, they include comments, so a normal CSV reader failed to parse it)
• Runs the same code for figuring out the state vector of the vehicle
• Runs the control loop as it would under normal operation (not implemented yet, working on it rn)
• Logs the data as usual (not implemented yet, working on it rn)
Here is the commit: github.com/Orange-Space-Technologies/AstroFlight/commit/de32660288a33aac8e6839d8cf85433c3f5787f3