2024-07-14 07:31:03 +00:00

67 lines
1.8 KiB
C++

#ifndef STA_CORE_SPATZ_HPP
#define STA_CORE_SPATZ_HPP
#include <sta/mutex.hpp>
#include <sta/config.hpp>
#ifdef STA_SPATZ_ENABLED
#include <sta/debug/debug.hpp>
#ifndef STA_DEBUGGING_ENABLED
# error "Cannot use SPATZ without debugging being enabled."
#endif // STA_DEBUGGING_ENABLED
namespace sta
{
namespace spatz
{
/**
* @brief Initialize SPATZ for in-the-loop testing.
*
* @param mutex A mutex used to make SPATZ thread-safe.
*/
void init(Mutex * mutex);
/**
* @brief Request bytes for a specific sensor id via the printable.
*
* @param id The id of the sensor to request data for.
* @param buffer The byte buffer to write the data to.
* @param length The number of the bytes to request.
*/
void request(uint8_t id, uint8_t * buffer, size_t length);
/**
* @brief Request floats for a specific sensor id via the printable.
*
* @param id The id of the sensor to request data for.
* @param buffer The float buffer to write the data to.
* @param length The number of floats to request.
*/
void request(uint8_t id, float * buffer, size_t length);
/**
* @brief Request doubles for a specific sensor id via the printable.
*
* @param id The id of the sensor to request data for.
* @param buffer The double buffer to write the data to.
* @param length The number of doubles to request.
*/
void request(uint8_t id, double * buffer, size_t length);
} // namespace spatz
} // namespace sta
#else
namespace sta
{
namespace spatz
{
void init(Mutex * mutex);
} // namespace spatz
} // namespace sta
#endif // STA_SPATZ_ENABLED
#endif // STA_CORE_SPATZ_HPP