A wrapper around a real LCM instance.
See DRAKE_ALLOW_NETWORK for an environment variable option to disable LCM network traffic (i.e., only allowing memq:// URLs).
For network issues on macOS, see https://drake.mit.edu/troubleshooting.html#lcm-macos.
#include <drake/lcm/drake_lcm.h>
|
| static bool | available () |
| | Returns true if the LCM runtime library is enabled in this build of Drake.
|
◆ DrakeLcm() [1/5]
| DrakeLcm |
( |
const DrakeLcm & | | ) |
|
|
delete |
◆ DrakeLcm() [2/5]
◆ DrakeLcm() [3/5]
Constructs using LCM's default URL (either the default hard-coded URL, or else LCM_DEFAULT_URL environment variable if it is set).
◆ DrakeLcm() [4/5]
| DrakeLcm |
( |
std::string | lcm_url | ) |
|
|
explicit |
Constructs using the given URL.
If empty, it will use the default URL as per the no-argument constructor.
◆ DrakeLcm() [5/5]
Constructs using the given parameters.
◆ ~DrakeLcm()
A destructor that forces the receive thread to be stopped.
◆ available()
Returns true if the LCM runtime library is enabled in this build of Drake.
When false, functions that require the runtime (e.g., HandleSubscriptions and Publish) will throw an error. See //tools/flags:with_lcm_runtime.
◆ get_lcm_url()
| std::string get_lcm_url |
( |
| ) |
const |
|
overridevirtual |
Returns a URL describing the transport of this LCM interface.
When the URL refers to a transport offered by LCM itself (e.g., memq or udpm), then this function must return the conventional URL spelling. If the implementation of DrakeLcmInterface is using a non-standard back end, the result implementation-defined.
In either case, it is always formatted using URI syntax rules per the RFC(s).
Implements DrakeLcmInterface.
◆ HandleSubscriptions()
| int HandleSubscriptions |
( |
int | timeout_millis | ) |
|
|
overridevirtual |
Invokes the HandlerFunction callbacks for all subscriptions' pending messages.
If timeout_millis is >0, blocks for up to that long until at least one message is handled.
- Returns
- the number of messages handled, or 0 on timeout.
- Exceptions
-
| std::exception | when a subscribed handler throws. |
Implements DrakeLcmInterface.
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ Publish()
| void Publish |
( |
const std::string & | channel, |
|
|
const void * | data, |
|
|
int | data_size, |
|
|
std::optional< double > | time_sec ) |
|
overridevirtual |
Most users should use the drake::lcm::Publish() free function, instead of this interface method.
Publishes an LCM message on channel channel.
- Parameters
-
| channel | The channel on which to publish the message. Must not be the empty string. |
| data | A buffer containing the serialized bytes of the message to publish. |
| data_size | The length of @data in bytes. |
| time_sec | Time in seconds when the publish event occurred. If unknown, use nullopt or a default-constructed optional. |
Implements DrakeLcmInterface.
◆ Subscribe()
Most users should use the drake::lcm::Subscribe() free function or the drake::lcm::Subscriber wrapper class, instead of this interface method.
Subscribes to an LCM channel without automatic message decoding. The handler will be invoked when a message arrives on channel channel.
The handler should never throw an exception, because it is indirectly called from C functions.
- Parameters
-
- Returns
- the object used to manage the subscription if that is supported, or else nullptr if not supported. The unsubscribe-on-delete default is false. Refer to the DrakeSubscriptionInterface class overview for details.
Implements DrakeLcmInterface.
◆ SubscribeAllChannels()
Subscribe to all channels; this is useful for logging and redirecting LCM traffic without regard to its content.
Implements DrakeLcmInterface.
◆ SubscribeMultichannel()
Subscribes to all channels whose name matches the given regular expression.
The regex is treated as an anchored "match" not a "search", i.e., it must match the entire channel name. The specific regular expression grammar is left unspecified, so it's best to use only patterns that have identical semantics in all grammars, e.g., ".*".
Implements DrakeLcmInterface.
◆ DrakeLcmTester
| friend class DrakeLcmTester |
|
friend |
The documentation for this class was generated from the following file: