A Component for periodically reporting Component Port contents to a human readable text format. More...
#include <ReportingComponent.hpp>
Public Types | |
typedef RTT::DataFlowInterface::Ports | Ports |
Public Member Functions | |
ReportingComponent (std::string name="Reporting") | |
Set up a component for reporting. | |
bool | addMarshaller (RTT::Marshaller *headerM, RTT::Marshaller *bodyM) |
Adds a Plugin to receive incomming data. | |
bool | removeMarshallers () |
Remove and delete all added Marshallers. | |
Script Methods | |
virtual bool | configureHook () |
Implementation of TaskCore::configureHook(). | |
virtual void | cleanupHook () |
Implementation of TaskCore::cleanupHook(). | |
virtual bool | screenComponent (const std::string &comp) |
Write state information of a component. | |
bool | reportComponent (const std::string &component) |
Report all the data ports of a component. | |
bool | unreportComponent (const std::string &component) |
Unreport the data ports of a component. | |
bool | reportPort (const std::string &component, const std::string &port) |
Report a specific data port of a component. | |
bool | unreportPort (const std::string &component, const std::string &port) |
Unreport a specific data port of a component. | |
bool | reportData (const std::string &component, const std::string &dataname) |
Report a specific data source of a component. | |
bool | unreportData (const std::string &component, const std::string &datasource) |
Unreport a specific data source of a component. | |
void | snapshot () |
This real-time function makes copies of the data to be reported. | |
void | cleanReport () |
Implementation of TaskCore::configureHook(). | |
Protected Types | |
typedef boost::tuple < std::string, RTT::DataSourceBase::shared_ptr, boost::shared_ptr < RTT::CommandInterface > , RTT::DataSourceBase::shared_ptr, std::string > | DTupple |
typedef std::vector< DTupple > | Reports |
Stores the 'datasource' of all reported items as properties. | |
typedef std::vector< std::pair < boost::shared_ptr < RTT::Marshaller > , boost::shared_ptr < RTT::Marshaller > > > | Marshallers |
Protected Member Functions | |
bool | screenImpl (const std::string &comp, std::ostream &output) |
This method writes out the status of a component's interface. | |
bool | reportDataSource (std::string tag, std::string type, RTT::DataSourceBase::shared_ptr orig) |
bool | unreportDataSource (std::string tag) |
virtual bool | startHook () |
void | makeReport () |
virtual void | updateHook () |
This not real-time function processes the copied data. | |
virtual void | stopHook () |
Protected Attributes | |
Reports | root |
Marshallers | marshallers |
RTT::PropertyBag | report |
RTT::Property< bool > | autotrigger |
RTT::Property< std::string > | config |
RTT::Property< bool > | writeHeader |
RTT::Property< bool > | decompose |
RTT::Property< bool > | synchronize_with_logging |
RTT::Property< PropertyBag > | report_data |
RTT::TimeService::ticks | starttime |
RTT::Property < RTT::TimeService::Seconds > | timestamp |
A Component for periodically reporting Component Port contents to a human readable text format.
The default format is a table with a header.
It can report to any data format, using the 'addMarshaller' function, which is typically done in sub classes of this component.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "cpf.dtd"> <properties> <!-- ... other component properties .. --> <struct name="ReportData" type="PropertyBag"> <!-- Monitor all ports of a Component : --> <simple name="Component" type="string"><description></description><value>ComponentX</value></simple> <!-- Monitor a single Data or Buffer-Port of another Component : --> <simple name="Port" type="string"><description></description><value>ComponentY.PortZ</value></simple> <!-- add as many lines as desired... --> </struct> </properties>
Definition at line 81 of file ReportingComponent.hpp.
bool addMarshaller | ( | RTT::Marshaller * | headerM, | |
RTT::Marshaller * | bodyM | |||
) |
Adds a Plugin to receive incomming data.
The marshallers become owned by this component.
header | A marshaller which writes out a header when this component is started. May be null (0). | |
body | A marshaller wich will get periodically a serialisation request to process incomming data. May be null(0). |
example: addMarshaller( new HeaderMarshaller(), new ContentsMarshaller() );
Referenced by ConsoleReporting::ConsoleReporting().
void cleanReport | ( | ) |
Implementation of TaskCore::configureHook().
Calls load().
Definition at line 427 of file ReportingComponent.cpp.
Referenced by ReportingComponent::updateHook().
void cleanupHook | ( | ) | [virtual] |
Implementation of TaskCore::cleanupHook().
Calls store() and clears the reporting configuration.
Definition at line 126 of file ReportingComponent.cpp.
bool configureHook | ( | ) | [virtual] |
Implementation of TaskCore::configureHook().
Calls load().
Reimplemented in TcpReporting.
Definition at line 132 of file ReportingComponent.cpp.
References ReportingComponent::reportComponent(), ReportingComponent::reportData(), and ReportingComponent::reportPort().
bool screenComponent | ( | const std::string & | comp | ) | [virtual] |
Write state information of a component.
This method must be overridden by a subclass to be useful.
Reimplemented in ConsoleReporting, and FileReporting.
Definition at line 175 of file ReportingComponent.cpp.
Referenced by ReportingComponent::ReportingComponent().