grepros 1.2.2
grep for ROS bag files and live topics
Loading...
Searching...
No Matches
McapBag Class Reference

MCAP bag interface, providing most of rosbag.Bag interface. More...

Inheritance diagram for McapBag:
Inheritance graph

Public Member Functions

 __init__ (self, f, mode="r", **__)
 Opens file and populates metadata.
 
 __contains__ (self, key)
 Returns whether bag contains given topic.
 
 __next__ (self)
 Retrieves next message from bag as (topic, message, timestamp).
 
 autodetect (cls, f)
 Returns whether file is recognizable as MCAP format.
 
 close (self)
 Closes the bag file.
 
 get_end_time (self)
 Returns the end time of the bag, as UNIX timestamp.
 
 get_message_class (self, typename, typehash=None)
 Returns ROS message class for typename, or None if unknown type.
 
 get_message_count (self, topic_filters=None)
 Returns the number of messages in the bag.
 
 get_message_definition (self, msg_or_type)
 Returns ROS message type definition full text from bag, including subtype definitions.
 
 get_message_type_hash (self, msg_or_type)
 Returns ROS message type MD5 hash.
 
 get_qoses (self, topic, typename)
 Returns topic Quality-of-Service profiles as a list of dicts, or None if not available.
 
 get_start_time (self)
 Returns the start time of the bag, as UNIX timestamp.
 
 get_topic_info (self, *_, **__)
 Returns topic and message type metainfo as {(topic, typename, typehash): count}.
 
 get_type_and_topic_info (self, topic_filters=None)
 Returns thorough metainfo on topic and message types.
 
 open (self)
 Opens the bag file if not already open.
 
 read_messages (self, topics=None, start_time=None, end_time=None, raw=False)
 Yields messages from the bag, optionally filtered by topic and timestamp.
 
 write (self, topic, msg, t=None, raw=False, **__)
 Writes out message to MCAP file.
 
- Public Member Functions inherited from BaseBag
 __bool__ (self)
 
 __contains__ (self, key)
 Returns whether bag contains given topic.
 
 __copy__ (self)
 
 __deepcopy__ (self, memo=None)
 
 __enter__ (self)
 Context manager entry, opens bag if not open.
 
 __exit__ (self, exc_type, exc_value, traceback)
 Context manager exit, closes bag.
 
 __getitem__ (self, key)
 Returns an iterator yielding messages from the bag in given topic, supporting len().
 
 __iter__ (self)
 Iterates over all messages in the bag.
 
 __len__ (self)
 Returns the number of messages in the bag.
 
 __next__ (self)
 Retrieves next message from bag as (topic, message, timestamp).
 
 __nonzero__ (self)
 
 __str__ (self)
 Returns informative text for bag, with a full overview of topics and types.
 
 close (self)
 Closes the bag file.
 
 flush (self)
 Ensures all changes are written to bag file.
 
 get_end_time (self)
 Returns the end time of the bag, as UNIX timestamp, or None if bag empty.
 
 get_message_class (self, typename, typehash=None)
 Returns ROS message type class, or None if unknown message type for bag.
 
 get_message_count (self, topic_filters=None)
 Returns the number of messages in the bag.
 
 get_message_definition (self, msg_or_type)
 Returns ROS message type definition full text, including subtype definitions.
 
 get_message_type_hash (self, msg_or_type)
 Returns ROS message type MD5 hash, or None if unknown message type for bag.
 
 get_qoses (self, topic, typename)
 Returns topic Quality-of-Service profiles as a list of dicts, or None if not available.
 
 get_start_time (self)
 Returns the start time of the bag, as UNIX timestamp, or None if bag empty.
 
 get_topic_info (self, counts=True)
 Returns topic and message type metainfo as {(topic, typename, typehash): count}.
 
 get_type_and_topic_info (self, topic_filters=None)
 Returns thorough metainfo on topic and message types.
 
 open (self)
 Opens the bag file if not already open.
 
 read_messages (self, topics=None, start_time=None, end_time=None, raw=False, **__)
 Yields messages from the bag, optionally filtered by topic and timestamp.
 
 write (self, topic, msg, t=None, raw=False, **kwargs)
 Writes a message to the bag.
 

Public Attributes

 get_fields_and_field_types
 
 SLOT_TYPES
 

Static Public Attributes

str MCAP_MAGIC = b"\x89MCAP\x30\r\n"
 MCAP file header magic start bytes.
 
tuple MODES = ("r", "w")
 Supported opening modes.
 
- Static Public Attributes inherited from BaseBag
 BagMessage = collections.namedtuple("BagMessage", "topic message timestamp")
 Returned from read_messages() as (topic name, ROS message, ROS timestamp object).
 
tuple MODES = ("r", "w", "a")
 Supported opening modes, overridden in subclasses.
 
 next
 
bool STREAMABLE = True
 Whether bag supports reading or writing stream objects, overridden in subclasses.
 
 TopicTuple
 Returned from get_type_and_topic_info() as (typename, message count, connection count, median frequency).
 
 TypesAndTopicsTuple = collections.namedtuple("TypesAndTopicsTuple", ["msg_types", "topics"])
 Returned from get_type_and_topic_info() as ({typename: typehash}, {topic name: TopicTuple}).
 

Properties

 closed = property
 Returns whether file is closed.
 
 filename = property
 Returns bag file path.
 
 mode = property
 Returns file open mode.
 
 size = property
 Returns current file size.
 
 topics = property
 Returns the list of topics in bag, in alphabetic order.
 
- Properties inherited from BaseBag
 closed = property
 Returns whether file is closed.
 
 filename = property
 Returns bag file path.
 
 mode = property
 Returns file open mode.
 
 size = property
 Returns current file size in bytes.
 
 stop_on_error = property
 Whether raising read error on unknown message type (ROS2 SQLite .db3 specific).
 
 topics = property
 Returns the list of topics in bag, in alphabetic order.
 

Detailed Description

MCAP bag interface, providing most of rosbag.Bag interface.

Bag cannot be appended to, and cannot be read and written at the same time (MCAP API limitation).

Definition at line 47 of file mcap.py.

Constructor & Destructor Documentation

◆ __init__()

__init__ (   self,
  f,
  mode = "r",
**  __ 
)

Opens file and populates metadata.

Parameters
fbag file path, or a stream object
modereturn reader if "r" or writer if "w"

Definition at line 61 of file mcap.py.

Member Function Documentation

◆ __contains__()

__contains__ (   self,
  key 
)

Returns whether bag contains given topic.

Reimplemented from BaseBag.

Definition at line 363 of file mcap.py.

◆ __next__()

__next__ (   self)

Retrieves next message from bag as (topic, message, timestamp).

Reimplemented from BaseBag.

Definition at line 368 of file mcap.py.

◆ autodetect()

autodetect (   cls,
  f 
)

Returns whether file is recognizable as MCAP format.

Definition at line 548 of file mcap.py.

◆ close()

close (   self)

Closes the bag file.

Reimplemented from BaseBag.

Definition at line 311 of file mcap.py.

◆ get_end_time()

get_end_time (   self)

Returns the end time of the bag, as UNIX timestamp.

Reimplemented from BaseBag.

Definition at line 121 of file mcap.py.

◆ get_message_class()

get_message_class (   self,
  typename,
  typehash = None 
)

Returns ROS message class for typename, or None if unknown type.

Parameters
typehashmessage type definition hash, if any

Reimplemented from BaseBag.

Definition at line 131 of file mcap.py.

◆ get_message_count()

get_message_count (   self,
  topic_filters = None 
)

Returns the number of messages in the bag.

Parameters
topic_filterslist of topics or a single topic to filter by, if any

Reimplemented from BaseBag.

Definition at line 108 of file mcap.py.

◆ get_message_definition()

get_message_definition (   self,
  msg_or_type 
)

Returns ROS message type definition full text from bag, including subtype definitions.

Reimplemented from BaseBag.

Definition at line 150 of file mcap.py.

◆ get_message_type_hash()

get_message_type_hash (   self,
  msg_or_type 
)

Returns ROS message type MD5 hash.

Reimplemented from BaseBag.

Definition at line 159 of file mcap.py.

◆ get_qoses()

get_qoses (   self,
  topic,
  typename 
)

Returns topic Quality-of-Service profiles as a list of dicts, or None if not available.

Reimplemented from BaseBag.

Definition at line 166 of file mcap.py.

◆ get_start_time()

get_start_time (   self)

Returns the start time of the bag, as UNIX timestamp.

Reimplemented from BaseBag.

Definition at line 116 of file mcap.py.

◆ get_topic_info()

get_topic_info (   self,
_,
**  __ 
)

Returns topic and message type metainfo as {(topic, typename, typehash): count}.

Reimplemented from BaseBag.

Definition at line 171 of file mcap.py.

◆ get_type_and_topic_info()

get_type_and_topic_info (   self,
  topic_filters = None 
)

Returns thorough metainfo on topic and message types.

Parameters
topic_filterslist of topics or a single topic to filter returned topics-dict by, if any
Returns
TypesAndTopicsTuple(msg_types, topics) namedtuple, msg_types as dict of {typename: typehash}, topics as a dict of {topic: TopicTuple() namedtuple}.

Reimplemented from BaseBag.

Definition at line 184 of file mcap.py.

◆ open()

open (   self)

Opens the bag file if not already open.

Reimplemented from BaseBag.

Definition at line 295 of file mcap.py.

◆ read_messages()

read_messages (   self,
  topics = None,
  start_time = None,
  end_time = None,
  raw = False 
)

Yields messages from the bag, optionally filtered by topic and timestamp.

Parameters
topicslist of topics or a single topic to filter by, if at all
start_timeearliest timestamp of message to return, as ROS time or convertible
(int/float/duration/datetime/decimal)
end_timelatest timestamp of message to return, as ROS time or convertible
(int/float/duration/datetime/decimal)
rawif true, then returned messages are tuples of
(typename, bytes, typehash, typeclass)
Returns
BagMessage namedtuples of (topic, message, timestamp as rospy/rclpy.Time)

Reimplemented from BaseBag.

Definition at line 233 of file mcap.py.

◆ write()

write (   self,
  topic,
  msg,
  t = None,
  raw = False,
**  __ 
)

Writes out message to MCAP file.

Parameters
topicname of topic
msgROS1 message
tmessage timestamp if not using current ROS time, as ROS time type or convertible (int/float/duration/datetime/decimal)
rawif true, msg is in raw format, (typename, bytes, typehash, typeclass)

Reimplemented from BaseBag.

Definition at line 260 of file mcap.py.

Member Data Documentation

◆ get_fields_and_field_types

get_fields_and_field_types

Definition at line 450 of file mcap.py.

◆ MCAP_MAGIC

str MCAP_MAGIC = b"\x89MCAP\x30\r\n"
static

MCAP file header magic start bytes.

Definition at line 53 of file mcap.py.

◆ MODES

tuple MODES = ("r", "w")
static

Supported opening modes.

Definition at line 50 of file mcap.py.

◆ SLOT_TYPES

SLOT_TYPES

Definition at line 448 of file mcap.py.

Property Documentation

◆ closed

closed = property
static

Returns whether file is closed.

Definition at line 321 of file mcap.py.

◆ filename

filename = property
static

Returns bag file path.

Definition at line 337 of file mcap.py.

◆ mode

mode = property
static

Returns file open mode.

Definition at line 357 of file mcap.py.

◆ size

size = property
static

Returns current file size.

Definition at line 345 of file mcap.py.

◆ topics

topics = property
static

Returns the list of topics in bag, in alphabetic order.

Definition at line 329 of file mcap.py.


The documentation for this class was generated from the following file: