There are two types of meta-data:
- stream metadata. They describe properties of a data stream which do not change within said stream
- time-varying metadata. They describe properties of the data stream, but does change along a given stream. For instance, they can be used to add 'markers' within a stream to recognize certain positions.
Stream Metadata
The stream metadata document is a set of key-value pairs stored on a per-stream basis in pocolog logfiles. They are stored in the stream declaration block as YAML documents.
Rock-related standard meta-data:
- rock_stream_type={annotations,property,attributes,port}
- rock_task_model={for properties and ports, the task model name of the generating task}
- rock_task_name={for properties and ports, the task full name, including namespace}
- rock_task_object_name={for properties and ports, the name of the corresponding object}
- rock_orocos_type_name={for properties and ports, the name of the type used by RTT}
- rock_timestamp_field={name of the time field in the port type, which is used to specify the timestamps for the log entries.}
Time-varying metadata
Information that is used to describe properties of the data stream, but does change along a given stream. For this purpose, an arbitrary number of log streams, (if a single one, it is usually called "annotations") tagged with the rock_stream_type=annotations, and of type /logger/Annotations can be defined. The /logger/Annotations type is defined as:
struct Annotations { /** This assumes that stream names are unique in a single file * after discussion, we decided that it is a sane constraint, * as most of the tooling would be made a lot more complex otherwise. * Moreover, the stream index is not stable if you extract data out * of a file * * Can be empty if no association whatsoever */ base::Time time; std::string stream_name; std::string key; std::string value; };
This RG defines the following annotations for comments and log markers:
- Comments: k="comment" v="arbitrary string"
- Log Markers (<index> is an integer)
- no assumption on region sequences (i.e. start 1; start 2; stop 2; stop 1 is valid)
- k="log_marker_start" v="<index>;arbitrary comment string"
- k="log_marker_stop" v="<index>;arbitrary comment string"
- k="log_marker_abort" v="<index>;arbitrary comment string"
- k="log_marker_event" v="arbitrary comment string"
- k="log_marker_abort_all" v="arbitrary comment string"
- k="log_marker_stop_all" v="arbitrary comment string"
- Overview of the different types: Different Log Markers
Last modified 8 years ago
Last modified on 02/17/14 22:41:42