#pragma once #include #include #include extern "C" { #include "FreeRTOS.h" #include "task.h" #include "queue.h" } #include "../common.hpp" namespace bsp { namespace magnetometer { int32_t init(xQueueHandle qHandle); void deinit(); bool isPresent(void); /// unit: 4 LSB/Gauss struct Measurements { int16_t X; int16_t Y; int16_t Z; }; /// returns new data readout if it is available std::optional getMeasurement(); bsp::KeyCodes parse(const Measurements &measurements); std::optional WorkerEventHandler(); void resetCurrentParsedValue(); } // namespace magnetometer } // namespace bsp