#ifndef _ROS_KINEMATICS_BASE_DRIVE_H_INCLUDED_
#define _ROS_KINEMATICS_BASE_DRIVE_H_INCLUDED_

#include <realtime_tools/realtime_buffer.h>

namespace ros_kinematics
{
  class BaseDrive
  {
  protected:
    class DriveCmd
    {
    struct Linear_st
    {
      double x; 
      double y;
      double z;
      Linear_st() : x(0.0), y(0.0), z(0.0) {}
    };

    struct Angular_st
    {
      double x; 
      double y;
      double z;
      Angular_st() : x(0.0), y(0.0), z(0.0) {}
    };
    
    public:
      Linear_st linear;
      Angular_st angular;
      ros::Time stamp;
      DriveCmd() : stamp(0.0) {}
    };

    realtime_tools::RealtimeBuffer<DriveCmd> command_;
    DriveCmd command_struct_;
  };
}

#endif