|
| | DepthSensor (DeviceID id, com::ComInterface *interface, com::ComEndpoint target, DepthSensorConfig config) |
| | Construct a DepthSensor with Device params, field-of-view and pixel resolution.
|
| virtual const DepthSensorParams & | getParams () const =0 |
| | Get the current DepthSensor parameters.
|
| const measurement::DepthMeasurement & | getLatestMeasurement () const |
| | Get the most recent measurement.
|
| subscription::Subscription | subscribe (std::function< void(const measurement::DepthMeasurement &)> callback) |
| | Subscribe to depth measurements from this sensor.
|
| virtual void | publishMeasurement () |
| | Build a DepthMeasurement from internal state and publish to all subscribers.
|
| | Sensor (DeviceID id, com::ComInterface *interface, com::ComEndpoint target) |
| | Construct the sensor with identity and communication link.
|
|
std::future< bool > | measure (std::uint8_t sequence_number) |
|
std::future< bool > | fetch () |
| std::future< bool > | beginMeasurementWait () |
| | Begin an asynchronous wait for the next measurement trigger.
|
| void | setMeasurementReady (bool success) |
| | Satisfy the pending measurement-wait future.
|
| std::future< bool > | beginDataAvailableWait () |
| | Begin an asynchronous wait for new data to become available.
|
| void | setDataAvailableReady (bool success) |
| | Satisfy the pending data-available-wait future.
|
|
void | resetSensorState () |
| | Reset the device to its initialised state, clearing all error flags.
|
|
void | clearDataFlag () |
| | Clear the data-available flag so the device can accept the next measurement cycle.
|
| | Device (DeviceID id, com::ComInterface *interface, com::ComEndpoint target) |
| | Construct the device with identity and communication link.
|
|
DeviceID | getDeviceID () const |
| | Return the full device identifier (type + index).
|
|
unsigned int | getHwIdx () const |
| | Return the zero-based hardware board index on its bus (used for CAN addressing and protocol bitmasks).
|
| void | setDeviceIndex (unsigned int index) |
| | Reassign the logical device index (DeviceID.index) without changing the hardware index.
|
| virtual bool | configure () |
| | Apply post-reset runtime configuration for this device.
|
| void | setBoardContext (const board::SensorBoardParams *board_params) |
| | Initialize board-level context pointer (non-owning).
|
| const board::SensorBoardParams * | getBoardContext () const |
| | Return the board-level context pointer (non-owning).
|
| void | setPoseOffset (const math::Pose &offset) |
| | Store a pose offset relative to the board centre.
|
| math::Pose | getPoseOffset () const |
| | Return the stored pose offset relative to the board centre.
|
| math::Pose | getGlobalPose () const |
| | Compute and return the global pose in the ring coordinate frame.
|
|
void | setQueue (ActionQueue *queue) |
|
void | clearQueue () |
|
bool | isManaged () const |
|
void | execute (Action action) |
|
void | execute (std::string_view key, Action action) |
|
| void | updateResolution (double fov_x_deg, double fov_y_deg, unsigned int res_x, unsigned int res_y) |
| | Update the sensor's FOV and resolution, and recalculate the lookup tables.
|
| virtual void | createLookupTable (DepthSensorConfig config, std::vector< double > &lut_x, std::vector< double > &lut_y, std::vector< double > &lut_z) |
| | Create lookup tables for x and y angles based on FOV and resolution.
|
| void | processRawMeasurement (measurement::PointCloud &pcl) |
| | Calculate the x,y,z coordinates from the raw distance measurements.
|
|
virtual bool | sendMeasurementRequest (std::uint8_t sequence_number)=0 |
|
virtual bool | sendMeasurementTransmissionRequest ()=0 |
|
virtual void | onResetSensorState () |
|
virtual void | onClearDataFlag () |
|
virtual void | comCallback (const com::ComEndpoint source, std::uint8_t command, const std::vector< std::uint8_t > &data)=0 |
Base class for any depth-sensing device.
Inherits from Sensor (which provides Device identity + measurement sync). Users subscribe to depth measurements via subscribe(). The concrete sensor implementation publishes measurements by calling publishMeasurement() from the state machine thread.