From 2247a689598cd20272262b5c79c7e9491d0b6240 Mon Sep 17 00:00:00 2001 From: Elan456 Date: Sun, 18 Jan 2026 20:45:58 -0500 Subject: [PATCH 1/3] docs: fix doxygen action version --- .github/workflows/doxygen.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doxygen.yml b/.github/workflows/doxygen.yml index 22099f5..3b211a4 100644 --- a/.github/workflows/doxygen.yml +++ b/.github/workflows/doxygen.yml @@ -11,7 +11,7 @@ jobs: permissions: contents: write steps: - - uses: DenverCoder1/doxygen-github-pages-action@v2 + - uses: DenverCoder1/doxygen-github-pages-action@v2.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From a8ae5cbacb06ef865ee4acdc08f92d67f9593263 Mon Sep 17 00:00:00 2001 From: Elan456 Date: Sun, 18 Jan 2026 21:55:31 -0500 Subject: [PATCH 2/3] docs: add docstring for DataSaverSdSerial.h and VerticalVelocityEstimator.h --- README.md | 1 + include/data_handling/DataSaverSDSerial.h | 7 +++++- .../VerticalVelocityEstimator.h | 25 ++++++------------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index af62c4c..b4ee2cc 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ The following systems integrate Avionics as a submodule: - Doxygen: run `doxygen Doxyfile` from the repository root. HTML output is placed in `build/doxygen/index.html` (README is used as the main page). - High-level notes: data logging constraints and Byte5 format are summarized in `docs/FlashDataSaving.md`. - Flight history: see `docs/FlightTests.md` for vehicles and dates that have flown with this codebase. +- Target Audience: The documentation is written for compsci students with very little background in C++ or embedded systems. ## Unit Testing diff --git a/include/data_handling/DataSaverSDSerial.h b/include/data_handling/DataSaverSDSerial.h index 8bd1505..b6d9cb5 100644 --- a/include/data_handling/DataSaverSDSerial.h +++ b/include/data_handling/DataSaverSDSerial.h @@ -8,6 +8,11 @@ #include "data_handling/DataPoint.h" #include "data_handling/DataSaver.h" +/** + * @brief IDataSaver implementation that streams CSV packets over UART. + * @note When to use: log data to an external serial data logger when file + * systems (SD/SPI flash) are unavailable or you need live passthrough. + */ class DataSaverSDSerial: public IDataSaver { // Given data points, will write the data over uart to a serial data logger @@ -35,4 +40,4 @@ class DataSaverSDSerial: public IDataSaver { }; -#endif \ No newline at end of file +#endif diff --git a/include/state_estimation/VerticalVelocityEstimator.h b/include/state_estimation/VerticalVelocityEstimator.h index 784c5b2..b1afd90 100644 --- a/include/state_estimation/VerticalVelocityEstimator.h +++ b/include/state_estimation/VerticalVelocityEstimator.h @@ -25,23 +25,14 @@ struct InitialState { /** - * VerticalVelocityEstimator provides a 1D Kalman filter that fuses altimeter and acceleration - * data to estimate altitude and vertical velocity. It is adapted from the logic in - * ApogeeDetector but excludes the apogee detection mechanism. - * - * Assumptions: - * - The state is [altitude, vertical velocity] (in SI units). - * - The process model uses the vertical acceleration as a control input. - * - The accelerometer outputs roughly +9.81 m/s² when at rest (measuring gravity). - * In free fall it reads ~0 m/s². Hence we subtract g (9.81 m/s²) from the raw - * accelerometer reading to get the rocket’s inertial acceleration. - * - The altimeter measurement is used to correct the altitude. - * - * The user of this class may simply call update(...) whenever new sensor readings - * arrive and retrieve the current altitude and velocity estimates. - * - * @note When to use: any pipeline that needs filtered altitude/velocity inputs for - * detection, control, or prediction without embedding apogee logic. + * @brief 1D Kalman filter fusing altimeter and accelerometer data. + * @details Maintains altitude and vertical velocity by treating vertical + * acceleration as the control input. Gravity is subtracted from raw + * accelerometer readings to obtain inertial acceleration. Call + * `update()` with new IMU + baro samples and query the latest + * estimates via getters. + * @note Use when downstream logic (detectors, control, telemetry) needs + * filtered altitude/velocity without embedding apogee-specific behavior. */ class VerticalVelocityEstimator { public: From 6d3efb0abecbf07c3ad63f5ae60a8812962c7296 Mon Sep 17 00:00:00 2001 From: Elan456 Date: Mon, 19 Jan 2026 00:55:21 -0500 Subject: [PATCH 3/3] docs: minor docstring corrections --- include/data_handling/DataPoint.h | 2 +- include/data_handling/DataSaverBigSD.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/data_handling/DataPoint.h b/include/data_handling/DataPoint.h index 69cac1a..3d9937e 100644 --- a/include/data_handling/DataPoint.h +++ b/include/data_handling/DataPoint.h @@ -4,7 +4,7 @@ #include /** - * @brief Timestamped scalar measurement container. + * @brief Timestamped float measurement container. * @note When to use: represent a single sensor or derived value tagged with the * millisecond timestamp at which it was produced. */ diff --git a/include/data_handling/DataSaverBigSD.h b/include/data_handling/DataSaverBigSD.h index 32747c6..337bf44 100644 --- a/include/data_handling/DataSaverBigSD.h +++ b/include/data_handling/DataSaverBigSD.h @@ -31,7 +31,7 @@ class DataSaverBigSD : public IDataSaver { explicit DataSaverBigSD(uint8_t csPin = 5); /** - * @brief Initialize the SD card and open a streaming file. + * @brief Initialize the SD card and open a streaming file. Returns true on success * @note When to use: during setup before any calls to saveDataPoint. */ bool begin();