EduArt Sensor Ring Library 4.0.0
Loading...
Searching...
No Matches
SensorBus.hpp
Go to the documentation of this file.
1// Copyright (c) 2026 EduArt Robotik GmbH
2
9
10#pragma once
11
12#include <memory>
13#include <vector>
14
17#include "sensorring/platform/SensorringExport.hpp"
19
20namespace eduart {
21
22namespace sensorring {
23
24namespace com {
25class ComInterface;
26}
27
32class SENSORRING_EXPORT SensorBus {
33public:
39 SensorBus(com::ComInterfaceID interface, std::vector<std::unique_ptr<board::SensorBoard> > board_vec);
40
45 unsigned int getSensorCount() const;
46
51 com::ComInterface* getInterface() const;
52
57 std::vector<board::SensorBoard*> getSensorBoards() const;
58
65 static std::vector<board::EnumerationInformation> queryConnectedDevices(com::ComInterfaceID interface, unsigned int timeout_ms = 250);
66
67private:
68 com::ComInterface* _interface;
69
70 std::vector<std::unique_ptr<board::SensorBoard> > _board_vec;
71
72 subscription::Subscription _com_subscription;
73};
74
75} // namespace sensorring
76
77} // namespace eduart
Interface type definition.
Abstraction of a single sensor board.
RAII wrapper pairing a SubscriberToken with its cancel function.
unsigned int getSensorCount() const
Total number of sensor boards on this bus.
std::vector< board::SensorBoard * > getSensorBoards() const
Non-owning pointers to all sensor boards on this bus.
static std::vector< board::EnumerationInformation > queryConnectedDevices(com::ComInterfaceID interface, unsigned int timeout_ms=250)
Enumerate boards on an interface.
SensorBus(com::ComInterfaceID interface, std::vector< std::unique_ptr< board::SensorBoard > > board_vec)
Construct the bus with a communication interface and owned sensor boards.
com::ComInterface * getInterface() const
Communication interface used by this bus.
Move-only RAII wrapper that pairs a SubscriberToken with an unsubscribe callable. Destroying a Subscr...
Definition Subscription.hpp:32
Uniquely identifies a communication interface by type and name.
Definition ComInterfaceID.hpp:51