EduArt Sensor Ring Library 3.0.0
Loading...
Searching...
No Matches
eduart::device::BaseDevice Class Reference

Base class for concrete devices: implements IDevice and BaseSensor, holds device ID and state. More...

#include <BaseDevice.hpp>

Inheritance diagram for eduart::device::BaseDevice:
[legend]
Collaboration diagram for eduart::device::BaseDevice:
[legend]

Public Member Functions

 BaseDevice (DeviceID id, com::ComInterface *interface, com::ComEndpoint target, bool enable)
 Constructs the device with the given ID, communication interface, endpoint, and enable flag.
DeviceID getDeviceID () const
 Returns the device identifier.
void setPoseOffset (const DevicePoseOffset &offset)
 Set the pose offset of this device relative to the board center.
DevicePoseOffset getPoseOffset () const
 Get the pose offset of this device relative to the board center.
Public Member Functions inherited from eduart::device::BaseSensor
 BaseSensor (com::ComInterface *interface, com::ComEndpoint target, unsigned int idx, bool enable)
 Construct a base sensor and register it with the communication interface.
virtual ~BaseSensor ()
 Destructor.
unsigned int getIdx () const
 Get the index of this sensor instance.
bool getEnable () const
 Query if the sensor is currently enabled.
void setEnable (bool enable)
 Enable or disable the sensor.
void setPose (math::Vector3 translation, math::Vector3 rotation)
 Set the pose of the sensor in the common coordinate frame.
void resetSensorState ()
 Reset error state and internal flags to nominal values.
void clearDataFlag ()
 Clear state for the next measurement cycle. Calls the sensor-specific hook onClearDataFlag().
std::future< bool > beginMeasurementWait ()
 Start a measurement-wait cycle and return a future that will be set when the measurement is ready.
std::future< bool > beginDataAvailableWait ()
 Start a data-available-wait cycle and return a future that will be set when new data is available.

Protected Attributes

DeviceState _state
 Current lifecycle/runtime state.
DeviceID _id
 Device identifier.
bool _enable
 Whether the device is enabled.
DevicePoseOffset _pose_offset
 Pose offset of the device relative to the sensor board center.
Protected Attributes inherited from eduart::device::BaseSensor
unsigned int _idx
 Index of this sensor instance within its group.
DeviceState _error
 Current health state of the sensor.
com::ComInterface * _interface
 Communication interface used to talk to the sensor.
math::Vector3 _translation
 Translation of the sensor origin in the common coordinate frame.
math::Vector3 _rotation
 Rotation of the sensor expressed as Euler angles in degrees.
math::Matrix3 _rot_m
 Rotation matrix derived from the Euler angles.
bool _enable_flag
 Flag indicating whether the sensor is enabled.
std::mutex _state_mutex
std::optional< std::promise< bool > > _measurement_promise
 Promise for the current measurement-wait cycle; set by callback, consumed by wait + get().
std::optional< std::promise< bool > > _data_available_promise
 Promise for the current data-available-wait cycle; set by callback when "data available" is received.
std::mutex _promise_mutex
subscription::Subscription _com_subscription
 RAII subscription to the communication interface.

Additional Inherited Members

Protected Member Functions inherited from eduart::device::BaseSensor
void setMeasurementReady (bool success)
 Set the result of the current measurement-wait cycle. Called from derived callbacks when ready.
void setDataAvailableReady (bool success)
 Set the result of the current data-available-wait cycle. Called from derived callbacks when "data available" is received.
virtual void onResetSensorState ()=0
 Sensor-specific hook invoked from resetSensorState().
virtual void onClearDataFlag ()=0
 Sensor-specific hook invoked from clearDataFlag().
virtual void comCallback (const com::ComEndpoint source, const std::vector< std::uint8_t > &data)=0
 Handle an incoming communication message for this sensor.

Detailed Description

Base class for concrete devices: implements IDevice and BaseSensor, holds device ID and state.

Constructor & Destructor Documentation

◆ BaseDevice()

eduart::device::BaseDevice::BaseDevice ( DeviceID id,
com::ComInterface * interface,
com::ComEndpoint target,
bool enable )

Constructs the device with the given ID, communication interface, endpoint, and enable flag.

Parameters
[in]idDevice identifier.
[in]interfaceCommunication interface.
[in]targetCommunication endpoint.
[in]enableWhether the device is enabled.

Member Function Documentation

◆ getDeviceID()

DeviceID eduart::device::BaseDevice::getDeviceID ( ) const

Returns the device identifier.

Returns
DeviceID of this device.

◆ getPoseOffset()

DevicePoseOffset eduart::device::BaseDevice::getPoseOffset ( ) const
inline

Get the pose offset of this device relative to the board center.

Returns
The current pose offset.

◆ setPoseOffset()

void eduart::device::BaseDevice::setPoseOffset ( const DevicePoseOffset & offset)
inline

Set the pose offset of this device relative to the board center.

Parameters
[in]offsetThe pose offset to set.

Member Data Documentation

◆ _pose_offset

DevicePoseOffset eduart::device::BaseDevice::_pose_offset
protected
Initial value:
{
{ 0.0, 0.0, 0.0 },
{ 0.0, 0.0, 0.0 }
}

Pose offset of the device relative to the sensor board center.


The documentation for this class was generated from the following file: