Class robot_interfaces::SensorLogger¶
-
template<typename Observation, typename InfoType = None>
class SensorLogger¶ Record sensor observations and store them to a file.
Fetches observations from the given SensorData and buffers them in memory. Buffered observations can be written to a file. For writing to file cereal is used, so the Observation type has to be serializable by cereal.
Usage Example:
auto logger = SensorLogger<int>(sensor_data, BUFFER_LIMIT); logger.start(); // do something logger.stop_and_save("/tmp/sensordata.log");
- Template Parameters:
Observation – Typ of the observation that is recorded.
Public Types
-
typedef std::shared_ptr<SensorData<Observation, InfoType>> DataPtr¶
-
typedef std::tuple<double, Observation> StampedObservation¶
-
typedef std::shared_ptr<SensorData<Observation, InfoType>> DataPtr
-
typedef std::tuple<double, Observation> StampedObservation
Public Functions
-
inline SensorLogger(DataPtr sensor_data, size_t buffer_limit)¶
Initialize the logger.
- Parameters:
sensor_data – Pointer to the SensorData instance from which observations are obtained.
buffer_limit – Maximum number of observations that are logged. When this limit is reached, the logger will stop automatically, that is new observations are not logged anymore.
-
SensorLogger(SensorLogger&&) = default¶
-
inline ~SensorLogger()¶
-
inline void start()¶
Start logging.
If the logger is already running, this is a noop.
-
inline void stop()¶
Stop logging.
If the logger is already stopped, this is a noop.
-
inline void reset()¶
Clear the log buffer.
-
inline void stop_and_save(const std::string &filename)¶
Stop logging and save logged messages to a file.
- Parameters:
filename – Path to the output file. Existing files will be overwritten.
-
inline SensorLogger(DataPtr sensor_data, size_t buffer_limit)
Initialize the logger.
- Parameters:
sensor_data – Pointer to the SensorData instance from which observations are obtained.
buffer_limit – Maximum number of observations that are logged. When this limit is reached, the logger will stop automatically, that is new observations are not logged anymore.
-
SensorLogger(SensorLogger&&) = default
-
inline ~SensorLogger()
-
inline void start()
Start logging.
If the logger is already running, this is a noop.
-
inline void stop()
Stop logging.
If the logger is already stopped, this is a noop.
-
inline void reset()
Clear the log buffer.
-
inline void stop_and_save(const std::string &filename)
Stop logging and save logged messages to a file.
- Parameters:
filename – Path to the output file. Existing files will be overwritten.