libstp
Robotics library for Botball
Loading...
Searching...
No Matches
platform::wombat::core::TransportReader Class Reference

#include <TransportReader.hpp>

Classes

struct  OdometrySnapshot
 STM32-computed odometry state. More...
struct  CalibOdometrySnapshot

Public Member Functions

 TransportReader ()
 ~TransportReader ()
raccoon::scalar_i8_t readServoMode (int port)
raccoon::scalar_f_t readServoValue (int port)
raccoon::vector3f_t readGyro ()
 Return the latest cached IMU vectors from raccoon subscriptions.
raccoon::vector3f_t readAccel ()
raccoon::vector3f_t readLinearAccel ()
raccoon::vector3f_t readAccelVelocity ()
void resetAccelVelocity ()
 Snapshot the current integrated-velocity reading as the new zero point.
raccoon::vector3f_t readMag ()
raccoon::scalar_f_t readHeading ()
raccoon::quaternion_t readQuaternion ()
raccoon::scalar_i32_t readBemf (int idx)
int32_t readMotorPosition (int port)
bool readMotorDone (int port)
raccoon::scalar_i32_t readAnalog (int port)
raccoon::scalar_i32_t readDigital (int port)
raccoon::scalar_f_t readTemp ()
OdometrySnapshot readOdometry ()
void resetOdometry ()
 Zero the local odometry cache (call alongside STM32 reset command).
CalibOdometrySnapshot readCalibOdometry ()
bool isCalibBoardConnected ()
bool waitForOdometryReset (int timeout_ms=500)
bool waitForImuReady (int timeout_ms=1000)
 Wait until heading data has been observed at least once.
bool waitForBemfData (int timeout_ms=500)
void setLinearAccelCallback (std::function< void(float, float, float)>)

Static Public Member Functions

static TransportReader & instance ()

Detailed Description

Cached shared-transport reader for the wombat bundle.

SharedTransport owns the single raccoon transport daemon. This reader only subscribes and caches latest values for synchronous HAL APIs.

Definition at line 27 of file TransportReader.hpp.

Constructor & Destructor Documentation

◆ TransportReader()

platform::wombat::core::TransportReader::TransportReader ( )
explicit

◆ ~TransportReader()

platform::wombat::core::TransportReader::~TransportReader ( )

Member Function Documentation

◆ instance()

TransportReader & platform::wombat::core::TransportReader::instance ( )
inlinestatic

Definition at line 32 of file TransportReader.hpp.

◆ isCalibBoardConnected()

bool platform::wombat::core::TransportReader::isCalibBoardConnected ( )

True when the calibration board is attached AND has delivered at least one odometry sample (so switching to it won't read stale zeros).

◆ readAccel()

raccoon::vector3f_t platform::wombat::core::TransportReader::readAccel ( )

◆ readAccelVelocity()

raccoon::vector3f_t platform::wombat::core::TransportReader::readAccelVelocity ( )

◆ readAnalog()

raccoon::scalar_i32_t platform::wombat::core::TransportReader::readAnalog ( int port)

◆ readBemf()

raccoon::scalar_i32_t platform::wombat::core::TransportReader::readBemf ( int idx)

◆ readCalibOdometry()

CalibOdometrySnapshot platform::wombat::core::TransportReader::readCalibOdometry ( )

◆ readDigital()

raccoon::scalar_i32_t platform::wombat::core::TransportReader::readDigital ( int port)

◆ readGyro()

raccoon::vector3f_t platform::wombat::core::TransportReader::readGyro ( )

Return the latest cached IMU vectors from raccoon subscriptions.

◆ readHeading()

raccoon::scalar_f_t platform::wombat::core::TransportReader::readHeading ( )

◆ readLinearAccel()

raccoon::vector3f_t platform::wombat::core::TransportReader::readLinearAccel ( )

◆ readMag()

raccoon::vector3f_t platform::wombat::core::TransportReader::readMag ( )

◆ readMotorDone()

bool platform::wombat::core::TransportReader::readMotorDone ( int port)

◆ readMotorPosition()

int32_t platform::wombat::core::TransportReader::readMotorPosition ( int port)

◆ readOdometry()

OdometrySnapshot platform::wombat::core::TransportReader::readOdometry ( )

◆ readQuaternion()

raccoon::quaternion_t platform::wombat::core::TransportReader::readQuaternion ( )

Latest DMP 6-axis fused orientation quaternion (gyro+accel). Cache is zero-initialised, so a never-received quaternion reads {w,x,y,z} = {0,0,0,0} — callers can detect "no data" via |q| < 0.5.

◆ readServoMode()

raccoon::scalar_i8_t platform::wombat::core::TransportReader::readServoMode ( int port)

◆ readServoValue()

raccoon::scalar_f_t platform::wombat::core::TransportReader::readServoValue ( int port)

◆ readTemp()

raccoon::scalar_f_t platform::wombat::core::TransportReader::readTemp ( )

◆ resetAccelVelocity()

void platform::wombat::core::TransportReader::resetAccelVelocity ( )

Snapshot the current integrated-velocity reading as the new zero point.

◆ resetOdometry()

void platform::wombat::core::TransportReader::resetOdometry ( )

Zero the local odometry cache (call alongside STM32 reset command).

◆ setLinearAccelCallback()

void platform::wombat::core::TransportReader::setLinearAccelCallback ( std::function< void(float, float, float)> )
inline

Definition at line 110 of file TransportReader.hpp.

◆ waitForBemfData()

bool platform::wombat::core::TransportReader::waitForBemfData ( int timeout_ms = 500)

Wait until BEMF telemetry has been observed on any motor channel.

Used by Platform::probe() to confirm motor data is flowing from the STM32. The BEMF channel is published continuously by stm32-data-reader regardless of motor activity, so a non-arrival generally indicates the bridge is silent on the motor side.

◆ waitForImuReady()

bool platform::wombat::core::TransportReader::waitForImuReady ( int timeout_ms = 1000)

Wait until heading data has been observed at least once.

◆ waitForOdometryReset()

bool platform::wombat::core::TransportReader::waitForOdometryReset ( int timeout_ms = 500)

Block until the STM32 publishes near-zero odometry after a reset. Returns true if confirmed, false on timeout.


The documentation for this class was generated from the following file:
  • /home/runner/work/raccoon-lib/raccoon-lib/modules/libstp-platforms/wombat/core/include/core/TransportReader.hpp