Go to the documentation of this file.
25 #include <condition_variable>
31 #include <ArmarXCore/interface/components/TopicRecorderInterface.h>
44 defineRequiredProperty<std::string>(
46 "Comma seperated list of topics to log. Use * to record all. To specify the max "
47 "frequency append a : to the topic name, e.g. \"RobotState:10,Log\" Topic names "
48 "must not contain : or ,");
49 defineOptionalProperty<std::string>(
51 "topic_recording.bag",
52 "File to write the output to. The file will be overwritten if the file exists");
53 defineOptionalProperty<bool>(
54 "TimestampedFilename",
true,
"If true, a timestamp is added to the filename");
55 defineOptionalProperty<std::string>(
58 "Storage variant to use, currently 'database' (default) and 'file' are available");
59 defineOptionalProperty<bool>(
62 "Immediately start recording after the component is launched.");
63 defineOptionalProperty<int>(
"Duration", 0,
"Limit recording.");
111 const Ice::Current&
c = Ice::emptyCurrent)
override;
113 void stopRecording(
const Ice::Current&
c = Ice::emptyCurrent)
override;
117 const Ice::Current&
c = Ice::emptyCurrent)
override
153 std::shared_ptr<std::ofstream>
log;
TopicWriterInterfacePtr writer
std::string outputFilename
TopicRecorderListenerInterfacePrx topicRecoderListener
void onExitComponent() override
Hook for subclass.
void stopRecording(const Ice::Current &c=Ice::emptyCurrent) override
std::map< std::string, GenericTopicSubscriberPtr > topicsSubscribers
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
void startRecording(const int maxDuration, const Ice::Current &c=Ice::emptyCurrent) override
std::shared_ptr< std::ofstream > log
TopicRecorderProperties(std::string prefix)
bool isRecording(const Ice::Current &c=Ice::emptyCurrent) override
std::shared_ptr< TopicWriterInterface > TopicWriterInterfacePtr
std::condition_variable idleCondition
void setOutputFilename(const std::string &newFilename, const Ice::Current &c=Ice::emptyCurrent) override
std::string getDefaultName() const override
Retrieve default name of component.
void onConnectComponent() override
Pure virtual hook for the subclass.
armarx::core::time::DateTime Time
Baseclass for all ArmarX ManagedIceObjects requiring properties.
std::filesystem::path outputfilePath
Default component property definition container.
void onDisconnectComponent() override
Hook for subclass.
void onInitComponent() override
Pure virtual hook for the subclass.
PropertyDefinitionsPtr createPropertyDefinitions() override
RunningTask< TopicRecorderComponent >::pointer_type queueTask
This file offers overloads of toIce() and fromIce() functions for STL container types.