mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/cmake-demo.git
synced 2025-12-17 02:28:04 +00:00
Initial Commit
This commit is contained in:
94
App/Inc/shared.hpp
Normal file
94
App/Inc/shared.hpp
Normal file
@@ -0,0 +1,94 @@
|
||||
#ifndef INC_SHARED_HPP_
|
||||
#define INC_SHARED_HPP_
|
||||
|
||||
#include <cmsis_os2.h>
|
||||
#include <states.hpp>
|
||||
|
||||
namespace rres
|
||||
{
|
||||
struct LoggingData
|
||||
{
|
||||
uint32_t hash;
|
||||
uint32_t timestamp;
|
||||
|
||||
uint8_t state;
|
||||
uint8_t sense_fire;
|
||||
uint16_t sense_adc[6];
|
||||
uint8_t fired;
|
||||
};
|
||||
|
||||
enum Event
|
||||
{
|
||||
TICK_10HZ = 1 << 0,
|
||||
TOCK_10HZ = 1 << 1,
|
||||
START_LOGGING = 1 << 2,
|
||||
DUMP_FLASH = 1 << 3,
|
||||
CLEAR_FLASH = 1 << 4,
|
||||
FLASH_EVENT = DUMP_FLASH | CLEAR_FLASH
|
||||
};
|
||||
|
||||
void init();
|
||||
|
||||
/**
|
||||
* @brief Wait for any of the provided flags to be set.
|
||||
*
|
||||
* @note Example usage: waitForAny(GYRO | TICK_20HZ); to either wait for the 20Hz tick or new gyro data.
|
||||
*
|
||||
* @param event An integer with every bit representing a specific event.
|
||||
* @param timeout An optional timeout for additional safety.
|
||||
* @return uint32_t Returns the flags that were set.
|
||||
*/
|
||||
uint32_t waitForAny(uint32_t event, uint32_t timeout = osWaitForever);
|
||||
|
||||
/**
|
||||
* @brief Wait for all of the provided flags to be set.
|
||||
*
|
||||
* @note Example usage: waitForAny(GYRO | TICK_20HZ); to wait for both the 20Hz tick as well as new gyro data.
|
||||
*
|
||||
* @param event An integer with every bit representing a specific event.
|
||||
* @param timeout An optional timeout for additional safety.
|
||||
* @return uint32_t Returns the flags that were set.
|
||||
*/
|
||||
uint32_t waitForAll(uint32_t event, uint32_t timeout = osWaitForever);
|
||||
|
||||
LoggingData getData();
|
||||
|
||||
/**
|
||||
* @brief Set the sensed fire bits.
|
||||
*
|
||||
* @param sense_fire The sensed fire bits.
|
||||
*/
|
||||
void setSenseFire(uint8_t sense_fire);
|
||||
|
||||
/**
|
||||
* @brief Set Capacitor Voltages.
|
||||
*
|
||||
* @param sense_adc The sensed ADC values.
|
||||
*/
|
||||
void setSenseADC(uint16_t sense_adc[6]);
|
||||
|
||||
/**
|
||||
* @brief Set fired event.
|
||||
*
|
||||
* @param fired The fired event.
|
||||
*/
|
||||
void setFired(uint8_t fired);
|
||||
|
||||
/**
|
||||
* @brief Start logging data to the flash memory.
|
||||
*/
|
||||
void startLogging();
|
||||
|
||||
/**
|
||||
* @brief Dump the flash memory to the console.
|
||||
*/
|
||||
void dumpFlash();
|
||||
|
||||
/**
|
||||
* @brief Clear the flash memory.
|
||||
*/
|
||||
void clearFlash();
|
||||
|
||||
} // namespace grsm
|
||||
|
||||
#endif /* INC_SHARED_HPP_ */
|
||||
Reference in New Issue
Block a user