mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Pneumatics still have CAN modules. The refactored code is now eight plugins for sensors and actuators. There is some code reuse that should be refactored out, but that level of abstraction will wait until we figure out how these plugins are integrating with gazebo proper. Change-Id: I357e695ef05af6dda83a39ba60380686bd57d11a Closes: artf2610, artf2623
43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <gazebo/gazebo.hh>
|
|
|
|
using namespace gazebo;
|
|
|
|
/**
|
|
* \brief Plugin for publishing the simulation time.
|
|
*
|
|
* This plugin publishes the simualtaion time in seconds every physics
|
|
* update.
|
|
*
|
|
* To add a clock to your robot, add the following XML to your robot
|
|
* model:
|
|
*
|
|
* <plugin name="my_clock" filename="libgz_clock.so">
|
|
* <topic>~/my/topic</topic>
|
|
* </plugin>
|
|
*
|
|
* - `topic`: Optional. Message will be published as a gazebo.msgs.Float64.
|
|
*
|
|
* \todo Make WorldPlugin?
|
|
*/
|
|
class Clock: public ModelPlugin {
|
|
public:
|
|
Clock();
|
|
~Clock();
|
|
|
|
/// \brief Load the clock and configures it according to the sdf.
|
|
void Load(physics::ModelPtr model, sdf::ElementPtr sdf);
|
|
|
|
/// \brief Sends out time each timestep.
|
|
void Update(const common::UpdateInfo &info);
|
|
|
|
private:
|
|
std::string topic; ///< \brief Publish the time on this topic.
|
|
physics::ModelPtr model; ///< \brief The model that this is attached to.
|
|
event::ConnectionPtr updateConn; ///< \brief Pointer to the world update function.
|
|
transport::NodePtr node; ///< \brief The node we're advertising on.
|
|
transport::PublisherPtr pub; ///< \brief Publisher handle.
|
|
};
|
|
|