Migration from JavaScript to TypeScript, using Require.js lib for modules.
Hot reload of scripts.
Checking for non-existent paths in Mandala.
Node 20 and TSC now in dockerfile.
Added the ability to add custom JavaScript scripts in the Documents/UAVOS/scripts/ReportGenerator folder. At this stage, importing all exported elements into the global namespace will occur, with the ability to call them from the template file.
Calculation functions for:
Maximum height at a specific stage
Launch time
Landing time
Moment of takeoff speed
Moment of landing speed
Parachute opening time
Parachute opening height
Speed at parachute opening
Average descent speed on parachute
Next steps
Return value decorator in the report (add units and remove extra digits after the decimal point, plus functions may return complex objects that need to be processed).
Calling functions at the template parsing stage (this is for generating interfaces if Qt provides such an opportunity. All functions are middleware, which will allow adding hashing and checking global state, for example, at the template processing stage).
Direct generation of interfaces.
Ability to pass other functions in params, there have been experiments, but so far unsuccessful, most likely it will be necessary to maintain a registry of functions, just like it is done with Mandala).
Hot reload of the report itself.
Loading multiple telemetry files and combining them by system and GPS time, possibly accumulation if it is not possible to allocate a separate loader for telemetry files and read data from there.
Many boilerplate codes are present when processing the return result of the function. It's necessary to either fix or refactor them and move them into a separate class.
Test functions with a larger number of telemetry files.
Improve helper functions(mandala object in ts) towards usability and optimization.
Update module system after migration on new version of qt.
Enhance the parser for processing at the template loading stage.
Rewrite the code for checking file changes(Hot reload feature) using QFileSystemWatcher.
Simple report example
In tested telemetry file no stage named LANDING, so one function did not evaluated
Done
Next steps
Simple report example
In tested telemetry file no stage named LANDING, so one function did not evaluated