18 #include <initializer_list>
21 #include "Core/Actuator.h"
22 #include "Core/Sensor.h"
23 #include "Logger/TwirreLogger.h"
24 #include "DeviceProvider.h"
52 TwirreLink(
const std::vector<DeviceProvider *> & provs);
107 const std::map<std::string, Sensor*> &
getSensors();
116 bool haveSensor(
const std::string & sensorName)
const;
125 bool haveActuator(
const std::string & actuatorName)
const;
169 void writeToLog(std::string sensorName,
const std::vector<std::pair<std::string, std::string>> & values);
179 void logDevices(
void);
180 void notifyChange(
void);
183 std::set<DeviceProvider *> _providers;
184 std::map<std::string, Actuator*> _actuatorList;
185 std::map<std::string, Sensor*> _sensorList;
187 mutable std::recursive_mutex _provMutex;
188 mutable std::recursive_mutex _tlMutex;
const std::map< std::string, Actuator * > & getActuators()
Get all registered actuators.
Definition: TwirreLink.cpp:165
bool haveActuator(const std::string &actuatorName) const
Check if a certain actuator exists.
Definition: TwirreLink.cpp:213
Registry for sensors and actuators.
Definition: TwirreLink.h:31
Definition: TwirreLogger.h:31
TwirreLink & operator=(const TwirreLink &other)
Copy assignment operator.
Definition: TwirreLink.cpp:121
bool stopLogging(void)
Stop logging and close the logfile.
Definition: TwirreLink.cpp:296
void removeProvider(DeviceProvider &prov)
Remove a provider, making all its devices unavailable for use within this TwirreLink instance...
Definition: TwirreLink.cpp:193
void setLoggingMaxArraySize(size_t max)
Set a size limit for logging array values.
Definition: TwirreLink.cpp:321
void writeToLog(std::string sensorName, const std::vector< std::pair< std::string, std::string >> &values)
Manually write some values into the logfile, similar to a 'sense' event (except that it will be calle...
Definition: TwirreLink.cpp:314
void startLogging(const std::string &loggingPath)
Start logging all actions to logfile at loggingPath.
Definition: TwirreLink.cpp:270
bool haveSensor(const std::string &sensorName) const
Check if a certain sensor exists.
Definition: TwirreLink.cpp:207
const std::map< std::string, Sensor * > & getSensors()
Get all registered sensors.
Definition: TwirreLink.cpp:172
A DeviceProvider is a collection of Actuators and Sensors which can be connected to a TwirreLink inst...
Definition: DeviceProvider.h:33
Sensor & getSensor(const std::string &sensorName)
Get a sensor by name.
Definition: TwirreLink.cpp:230
TwirreLink()
Create an empty TwirreLink.
Definition: TwirreLink.cpp:73
Actuator & getActuator(const std::string &actuatorName)
Get an actuator by name.
Definition: TwirreLink.cpp:219
void addProvider(DeviceProvider &prov, bool update=true)
Register all sensors and actuators of the given provider.
Definition: TwirreLink.cpp:179
Actuator is the base class for all 'actuator'-type devices.
Definition: Actuator.h:41