Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Private Attributes | List of all members
kobuki::Command Class Reference

#include <command.hpp>

Inheritance diagram for kobuki::Command:
Inheritance graph
[legend]

Classes

struct  Data
 Data structure containing data for commands. More...
 

Public Types

typedef ecl::PushAndPop< unsigned char > Buffer
 
typedef ecl::Stencil< BufferBufferStencil
 
enum  Name {
  BaseControl = 1, Sound = 3, SoundSequence = 4, RequestExtra = 9,
  ChangeFrame = 10, RequestEeprom = 11, SetDigitalOut = 12, SetController = 13,
  GetController = 14
}
 
enum  VersionFlag { HardwareVersion = 0x01, FirmwareVersion = 0x02, UniqueDeviceID = 0x08 }
 

Public Member Functions

bool deserialise (ecl::PushAndPop< unsigned char > &byteStream)
 
void resetBuffer (Buffer &buffer)
 
bool serialise (ecl::PushAndPop< unsigned char > &byteStream)
 
virtual ~Command ()
 
- Public Member Functions inherited from packet_handler::payloadBase
 payloadBase (const bool is_dynamic_=false, const unsigned char length_=0)
 
virtual ~payloadBase ()
 

Static Public Member Functions

static Command GetControllerGain ()
 
static Command GetVersionInfo ()
 
static Command PlaySoundSequence (const enum SoundSequences &number, Command::Data &current_data)
 
static Command SetControllerGain (const unsigned char &type, const unsigned int &p_gain, const unsigned int &i_gain, const unsigned int &d_gain)
 
static Command SetDigitalOutput (const DigitalOutput &digital_output, Command::Data &current_data)
 
static Command SetExternalPower (const DigitalOutput &digital_output, Command::Data &current_data)
 
static Command SetLedArray (const enum LedNumber &number, const enum LedColour &colour, Command::Data &current_data)
 
static Command SetVelocityControl (DiffDrive &diff_drive)
 
static Command SetVelocityControl (const int16_t &speed, const int16_t &radius)
 

Public Attributes

Data data
 
- Public Attributes inherited from packet_handler::payloadBase
const bool is_dynamic
 
const unsigned char length
 
bool yes
 

Static Private Attributes

static const unsigned char header0 = 0xaa
 
static const unsigned char header1 = 0x55
 

Additional Inherited Members

- Protected Member Functions inherited from packet_handler::payloadBase
template<typename T >
void buildBytes (const T &V, ecl::PushAndPop< unsigned char > &buffer)
 
template<>
void buildBytes (const float &V, ecl::PushAndPop< unsigned char > &buffer)
 
template<typename T >
void buildVariable (T &V, ecl::PushAndPop< unsigned char > &buffer)
 
template<>
void buildVariable (float &V, ecl::PushAndPop< unsigned char > &buffer)
 

Detailed Description

Definition at line 34 of file command.hpp.

Member Typedef Documentation

typedef ecl::PushAndPop<unsigned char> kobuki::Command::Buffer

Definition at line 37 of file command.hpp.

Definition at line 38 of file command.hpp.

Member Enumeration Documentation

These values are used to detect the type of sub-payload that is ensuing.

Enumerator
BaseControl 
Sound 
SoundSequence 
RequestExtra 
ChangeFrame 
RequestEeprom 
SetDigitalOut 
SetController 
GetController 

Definition at line 43 of file command.hpp.

Enumerator
HardwareVersion 
FirmwareVersion 
UniqueDeviceID 

Definition at line 49 of file command.hpp.

Constructor & Destructor Documentation

virtual kobuki::Command::~Command ( )
inlinevirtual

Definition at line 111 of file command.hpp.

Member Function Documentation

bool kobuki::Command::deserialise ( ecl::PushAndPop< unsigned char > &  byteStream)
inlinevirtual

Unused

Implements packet_handler::payloadBase.

Definition at line 130 of file command.hpp.

Command kobuki::Command::GetControllerGain ( )
static

Definition at line 188 of file command.cpp.

Command kobuki::Command::GetVersionInfo ( )
static

Definition at line 146 of file command.cpp.

Command kobuki::Command::PlaySoundSequence ( const enum SoundSequences number,
Command::Data current_data 
)
static

Definition at line 135 of file command.cpp.

void kobuki::Command::resetBuffer ( Buffer buffer)

Clears the command buffer and resets the header.

Definition at line 202 of file command.cpp.

bool kobuki::Command::serialise ( ecl::PushAndPop< unsigned char > &  byteStream)
virtual

Implements packet_handler::payloadBase.

Definition at line 210 of file command.cpp.

Command kobuki::Command::SetControllerGain ( const unsigned char &  type,
const unsigned int &  p_gain,
const unsigned int &  i_gain,
const unsigned int &  d_gain 
)
static

Definition at line 176 of file command.cpp.

Command kobuki::Command::SetDigitalOutput ( const DigitalOutput digital_output,
Command::Data current_data 
)
static

Set one of the digital out pins available to the user.

They set the last 4 bits on the data.gp_out variable.

Todo:
could use far better documentation here/example here.
Parameters
digital_output: mask and value to send
current_data: need to store settings as the gp_output command is a combo command
Returns
Command : the command to send down the wire.

Definition at line 84 of file command.cpp.

Command kobuki::Command::SetExternalPower ( const DigitalOutput digital_output,
Command::Data current_data 
)
static

Set one of the external power sources available to the user.

They set the second 4 bits(0x00f0) on the data.gp_out variable.

Todo:
could use far better documentation here/example here.
Parameters
digital_output: mask and value to send
current_data: need to store settings as the gp_output command is a combo command
Returns
Command : the command to send down the wire.

Definition at line 115 of file command.cpp.

Command kobuki::Command::SetLedArray ( const enum LedNumber number,
const enum LedColour colour,
Command::Data current_data 
)
static

Update the gp_out bits and get ready for sending as a SetDigitalOut command.

The led arrays are obtained from the gp_outputs with a 0x0f00 mask.

  • Led1 Red : 0x0100
  • Led1 Green : 0x0200
  • Led1 Orange : 0x0300
  • Led2 Red : 0x0400
  • Led2 Green : 0x0800
  • Led2 Orange : 0x0c00

Important to overlay this on top of the existing gp_out configuration.

Parameters
number: led enumerated number
colour: green, orange, red or black
current_data: need to store settings as the gp_output command is a combo command
Returns
Command : the command to send down the wire.

Definition at line 53 of file command.cpp.

Command kobuki::Command::SetVelocityControl ( DiffDrive diff_drive)
static

Definition at line 157 of file command.cpp.

Command kobuki::Command::SetVelocityControl ( const int16_t &  speed,
const int16_t &  radius 
)
static

Definition at line 167 of file command.cpp.

Member Data Documentation

Data kobuki::Command::data

Definition at line 126 of file command.hpp.

const unsigned char kobuki::Command::header0 = 0xaa
staticprivate

Definition at line 133 of file command.hpp.

const unsigned char kobuki::Command::header1 = 0x55
staticprivate

Definition at line 134 of file command.hpp.


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


kobuki_driver
Author(s): Daniel Stonier , Younghun Ju , Jorge Santos Simon
autogenerated on Fri Sep 18 2020 03:22:02