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

Produces messages from live ROS topics. More...

Inheritance diagram for LiveSource:
Inheritance graph

Public Member Functions

 __init__ (self, args=None, **kwargs)
 
 bind (self, sink)
 Attaches sink to source and blocks until connected to ROS live.
 
 close (self)
 Shuts down subscribers and stops producing messages.
 
 format_meta (self)
 Returns source metainfo string.
 
 get_message_class (self, typename, typehash=None)
 Returns message type class, from active subscription if available.
 
 get_message_definition (self, msg_or_type)
 Returns ROS message type definition full text, including subtype definitions.
 
 get_message_meta (self, topic, msg, stamp, index=None)
 Returns message metainfo data dict.
 
 get_message_type_hash (self, msg_or_type)
 Returns ROS message type MD5 hash.
 
 get_meta (self)
 Returns source metainfo data dict.
 
 init_progress (self)
 Initializes progress bar, if any.
 
 is_processable (self, topic, msg, stamp, index=None)
 Returns whether message passes source filters; registers status.
 
 read (self)
 Yields messages from subscribed ROS topics, as (topic, msg, ROS time).
 
 refresh_topics (self)
 Refreshes topics and subscriptions from ROS live.
 
 update_progress (self, count, running=True)
 Updates progress bar, if any.
 
 validate (self)
 Returns whether ROS environment is set and arguments valid, prints error if not.
 
- Public Member Functions inherited from Source
 __init__ (self, args=None, **kwargs)
 
 __enter__ (self)
 Context manager entry.
 
 __exit__ (self, exc_type, exc_value, traceback)
 Context manager exit, closes source.
 
 __iter__ (self)
 Yields messages from source, as (topic, msg, ROS time).
 
 bind (self, sink)
 Attaches sink to source.
 
 close (self)
 Shuts down input, closing any files or connections.
 
 close_batch (self)
 Shuts down input batch if any (like bagfile), else all input.
 
 configure (self, args=None, **kwargs)
 Updates source configuration.
 
 configure_progress (self, **kwargs)
 Configures progress bar options, updates current bar if any.
 
 format_message_meta (self, topic, msg, stamp, index=None)
 Returns message metainfo string.
 
 format_meta (self)
 Returns source metainfo string.
 
 get_batch (self)
 Returns source batch identifier if any (like bagfile name if BagSource).
 
 get_message_class (self, typename, typehash=None)
 Returns message type class.
 
 get_message_definition (self, msg_or_type)
 Returns ROS message type definition full text, including subtype definitions.
 
 get_message_meta (self, topic, msg, stamp, index=None)
 Returns message metainfo data dict.
 
 get_message_type_hash (self, msg_or_type)
 Returns ROS message type MD5 hash.
 
 get_meta (self)
 Returns source metainfo data dict.
 
 init_progress (self)
 Initializes progress bar, if any.
 
 is_processable (self, topic, msg, stamp, index=None)
 Returns whether message passes source filters; registers status.
 
 notify (self, status)
 Reports match status of last produced message.
 
 read (self)
 Yields messages from source, as (topic, msg, ROS time).
 
 thread_excepthook (self, text, exc)
 Handles exception, used by background threads.
 
 update_progress (self, count, running=True)
 Updates progress bar, if any, with source processed count, pauses bar if not running.
 
 validate (self)
 Returns whether arguments are valid and source prerequisites are met.
 
- Public Member Functions inherited from ConditionMixin
 __init__ (self, args=None, **kwargs)
 
 close_batch (self)
 Clears cached messages.
 
 conditions_get_topics (self)
 Returns a list of all topics used in conditions (may contain wildcards).
 
 conditions_register_message (self, topic, msg)
 Retains message for condition evaluation if in condition topic.
 
 conditions_set_topic_state (self, topic, pure)
 Sets whether topic is purely used for conditions not matching.
 
 has_conditions (self)
 Returns whether there are any conditions configured.
 
 is_conditions_topic (self, topic, pure=True)
 Returns whether topic is used for checking condition.
 
 is_processable (self, topic, msg, stamp, index=None)
 Returns whether message passes passes current state conditions, if any.
 
 validate (self)
 Returns whether conditions have valid syntax, sets options, prints errors.
 

Public Attributes

 MASTER_INTERVAL
 
 valid
 
- Public Attributes inherited from Source
 args
 
 bar
 ProgressBar instance, if any.
 
 preprocess
 Apply all filter arguments when reading, not only topic and type.
 
 sink
 outputs.Sink instance bound to this source
 
 topics
 All topics in source, as {(topic, typenane, typehash): total message count or None}.
 
 valid
 Result of validate()
 
- Public Attributes inherited from ConditionMixin
 args
 

Static Public Attributes

 DEFAULT_ARGS
 Constructor argument defaults.
 
int MASTER_INTERVAL = 2
 Seconds between refreshing available topics from ROS master.
 
- Static Public Attributes inherited from Source
 DEFAULT_ARGS
 Constructor argument defaults.
 
str MESSAGE_META_TEMPLATE = "{topic} #{index} ({type} {dt} {stamp})"
 Template for message metainfo line.
 
- Static Public Attributes inherited from ConditionMixin
 DEFAULT_ARGS = dict(CONDITION=())
 Constructor argument defaults.
 
 TOPIC_RGX = re.compile(r"<topic\s+([^\s><]+)\s*>")
 

Detailed Description

Produces messages from live ROS topics.

Definition at line 1005 of file inputs.py.

Constructor & Destructor Documentation

◆ __init__()

__init__ (   self,
  args = None,
**  kwargs 
)
Parameters
argsarguments as namespace or dictionary, case-insensitive
args.topicROS topics to read if not all
args.typeROS message types to read if not all
args.skip_topicROS topics to skip
args.skip_typeROS message types to skip
args.start_timeearliest timestamp of messages to read
args.end_timelatest timestamp of messages to read
args.start_indexmessage index within topic to start from
args.end_indexmessage index within topic to stop at
args.uniqueemit messages that are unique in topic
args.select_fieldmessage fields to use for uniqueness if not all
args.noselect_fieldmessage fields to skip for uniqueness
args.nth_messageread every Nth message in topic, starting from first
args.nth_intervalminimum time interval between messages in topic, as seconds or ROS duration
args.conditionPython expressions that must evaluate as true for message to be processable, see ConditionMixin
args.queue_size_insubscriber queue size (default 10)
args.ros_time_instamp messages with ROS time instead of wall time
args.progresswhether to print progress bar
args.stop_on_errorstop execution on any error like unknown message type
args.verbosewhether to print error stacktraces
kwargsany and all arguments as keyword overrides, case-insensitive

Reimplemented from Source.

Definition at line 1043 of file inputs.py.

Member Function Documentation

◆ bind()

bind (   self,
  sink 
)

Attaches sink to source and blocks until connected to ROS live.

Reimplemented from Source.

Definition at line 1092 of file inputs.py.

◆ close()

close (   self)

Shuts down subscribers and stops producing messages.

Reimplemented from Source.

Definition at line 1110 of file inputs.py.

◆ format_meta()

format_meta (   self)

Returns source metainfo string.

Reimplemented from Source.

Definition at line 1153 of file inputs.py.

◆ get_message_class()

get_message_class (   self,
  typename,
  typehash = None 
)

Returns message type class, from active subscription if available.

Reimplemented from Source.

Definition at line 1133 of file inputs.py.

◆ get_message_definition()

get_message_definition (   self,
  msg_or_type 
)

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

Reimplemented from Source.

Definition at line 1139 of file inputs.py.

◆ get_message_meta()

get_message_meta (   self,
  topic,
  msg,
  stamp,
  index = None 
)

Returns message metainfo data dict.

Reimplemented from Source.

Definition at line 1125 of file inputs.py.

◆ get_message_type_hash()

get_message_type_hash (   self,
  msg_or_type 
)

Returns ROS message type MD5 hash.

Reimplemented from Source.

Definition at line 1146 of file inputs.py.

◆ get_meta()

get_meta (   self)

Returns source metainfo data dict.

Reimplemented from Source.

Definition at line 1120 of file inputs.py.

◆ init_progress()

init_progress (   self)

Initializes progress bar, if any.

Reimplemented from Source.

Definition at line 1203 of file inputs.py.

◆ is_processable()

is_processable (   self,
  topic,
  msg,
  stamp,
  index = None 
)

Returns whether message passes source filters; registers status.

Reimplemented from Source.

Definition at line 1165 of file inputs.py.

◆ read()

read (   self)

Yields messages from subscribed ROS topics, as (topic, msg, ROS time).

Reimplemented from Source.

Definition at line 1052 of file inputs.py.

◆ refresh_topics()

refresh_topics (   self)

Refreshes topics and subscriptions from ROS live.

Definition at line 1175 of file inputs.py.

◆ update_progress()

update_progress (   self,
  count,
  running = True 
)

Updates progress bar, if any.

Reimplemented from Source.

Definition at line 1209 of file inputs.py.

◆ validate()

validate (   self)

Returns whether ROS environment is set and arguments valid, prints error if not.

Reimplemented from Source.

Definition at line 1098 of file inputs.py.

Member Data Documentation

◆ DEFAULT_ARGS

DEFAULT_ARGS
static
Initial value:
= dict(TOPIC=(), TYPE=(), SKIP_TOPIC=(), SKIP_TYPE=(), START_TIME=None,
END_TIME=None, START_INDEX=None, END_INDEX=None, CONDITION=(),
QUEUE_SIZE_IN=10, ROS_TIME_IN=False, PROGRESS=False, STOP_ON_ERROR=False,
VERBOSE=False)

Constructor argument defaults.

Definition at line 1012 of file inputs.py.

◆ MASTER_INTERVAL [1/2]

int MASTER_INTERVAL = 2
static

Seconds between refreshing available topics from ROS master.

Definition at line 1009 of file inputs.py.

◆ MASTER_INTERVAL [2/2]

MASTER_INTERVAL

Definition at line 1251 of file inputs.py.

◆ valid

valid

Definition at line 1101 of file inputs.py.


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