|
using | PublisherType = rclcpp::Publisher< MessageT > |
| Provide various typedefs to resemble the rclcpp::Publisher type.
|
|
using | PublisherSharedPtr = typename rclcpp::Publisher< MessageT >::SharedPtr |
|
using | PublishedType = typename rclcpp::TypeAdapter< MessageT >::custom_type |
|
using | ROSMessageType = typename rclcpp::TypeAdapter< MessageT >::ros_message_type |
|
|
| RealtimePublisher (PublisherSharedPtr publisher) |
| Constructor for the realtime publisher. More...
|
|
| ~RealtimePublisher () |
| Destructor.
|
|
void | stop () |
| Stop the realtime publisher from sending out more ROS messages.
|
|
bool | trylock () |
| Try to get the data lock from realtime. More...
|
|
bool | tryPublish (const MessageT &msg) |
| Try to get the data lock from realtime and publish the given message. More...
|
|
void | unlockAndPublish () |
| Unlock the msg_ variable. More...
|
|
void | lock () |
| Get the data lock form non-realtime. More...
|
|
void | unlock () |
| Unlocks the data without publishing anything.
|
|
std::thread & | get_thread () |
|
const std::thread & | get_thread () const |
|
|
MessageT | msg_ |
| The msg_ variable contains the data that will get published on the ROS topic.
|
|
◆ RealtimePublisher()
template<class MessageT >
Constructor for the realtime publisher.
- Parameters
-
publisher | the publisher to wrap |
◆ lock()
template<class MessageT >
Get the data lock form non-realtime.
To publish data from the realtime loop, you need to run trylock to attempt to get unique access to the msg_ variable. Trylock returns true if the lock was acquired, and false if it failed to get the lock.
◆ trylock()
template<class MessageT >
Try to get the data lock from realtime.
To publish data from the realtime loop, you need to run trylock to attempt to get unique access to the msg_ variable. Trylock returns true if the lock was acquired, and false if it failed to get the lock.
◆ tryPublish()
template<class MessageT >
Try to get the data lock from realtime and publish the given message.
Tries to gain unique access to msg_ variable. If this succeeds update the msg_ variable and call unlockAndPublish
- Returns
- false in case no lock for the realtime variable could be acquired
◆ unlockAndPublish()
template<class MessageT >
Unlock the msg_ variable.
After a successful trylock and after the data is written to the mgs_ variable, the lock has to be released for the message to get published on the specified topic.
The documentation for this class was generated from the following file: