Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Private Attributes
kobuki::Command Class Reference

#include <command.hpp>

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

List of all members.

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 ()

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

Static Private Attributes

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

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 ( ) [inline, virtual]

Definition at line 111 of file command.hpp.


Member Function Documentation

bool kobuki::Command::deserialise ( ecl::PushAndPop< unsigned char > &  byteStream) [inline, virtual]

Unused

Implements packet_handler::payloadBase.

Definition at line 130 of file command.hpp.

Definition at line 188 of file command.cpp.

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.

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.

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

Definition at line 126 of file command.hpp.

const unsigned char kobuki::Command::header0 = 0xaa [static, private]

Definition at line 133 of file command.hpp.

const unsigned char kobuki::Command::header1 = 0x55 [static, private]

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 Thu Aug 27 2015 13:43:58