iodrivers_base
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
iodrivers_base::Proxy Class Reference

The task context provides and requires services. It uses an ExecutionEngine to perform its functions. Essential interfaces are operations, data flow ports and properties. These interfaces have been defined using the oroGen specification. In order to modify the interfaces you should (re)use oroGen and rely on the associated workflow. Simple task that allows to mirror the I/O from a port supported by iodrivers_base::Driver onto the io_read_listener and io_write_listener ports. More...

#include <Proxy.hpp>

Inheritance diagram for iodrivers_base::Proxy:

Public Member Functions

 Proxy (std::string const &name="iodrivers_base::Proxy")
 
 Proxy (std::string const &name, RTT::ExecutionEngine *engine)
 
 ~Proxy ()
 
bool configureHook ()
 The following lines are template definitions for the various state machine. More...
 
bool startHook ()
 
void updateHook ()
 
void errorHook ()
 
void stopHook ()
 
void cleanupHook ()
 

Static Public Attributes

static const int DUMMY_BUFFER_SIZE = 1024
 

Protected Member Functions

virtual int createProxyDriver ()
 
virtual void writePacket (RawPacket const &packet)
 
virtual void readPacket (RawPacket &packet)
 
void processIO ()
 

Protected Attributes

int buffer_size
 
std::vector< boost::uint8_t > packet_buffer
 
iodrivers_base::RawPacket rx_packet
 
iodrivers_base::RawPacket tx_packet
 

Friends

class ProxyBase
 

Detailed Description

The task context provides and requires services. It uses an ExecutionEngine to perform its functions. Essential interfaces are operations, data flow ports and properties. These interfaces have been defined using the oroGen specification. In order to modify the interfaces you should (re)use oroGen and rely on the associated workflow. Simple task that allows to mirror the I/O from a port supported by iodrivers_base::Driver onto the io_read_listener and io_write_listener ports.

The name of a TaskContext is primarily defined via:

     deployment 'deployment_name'
         task('custom_task_name','iodrivers_base::Proxy')
     end

It can be dynamically adapted when the deployment is called with a prefix argument.

Constructor & Destructor Documentation

◆ Proxy() [1/2]

Proxy::Proxy ( std::string const &  name = "iodrivers_base::Proxy")

TaskContext constructor for Proxy

Parameters
nameName of the task. This name needs to be unique to make it identifiable via nameservices.
initial_stateThe initial TaskState of the TaskContext. Default is Stopped state.

◆ Proxy() [2/2]

Proxy::Proxy ( std::string const &  name,
RTT::ExecutionEngine *  engine 
)

TaskContext constructor for Proxy

Parameters
nameName of the task. This name needs to be unique to make it identifiable for nameservices.
engineThe RTT Execution engine to be used for this task, which serialises the execution of all commands, programs, state machines and incoming events for a task.

◆ ~Proxy()

Proxy::~Proxy ( )

Default deconstructor of Proxy

Member Function Documentation

◆ cleanupHook()

void Proxy::cleanupHook ( )

This hook is called by Orocos when the state machine transitions from Stopped to PreOperational, requiring the call to configureHook() before calling start() again.

◆ configureHook()

bool Proxy::configureHook ( )

The following lines are template definitions for the various state machine.

This hook is called by Orocos when the state machine transitions from PreOperational to Stopped. If it returns false, then the component will stay in PreOperational. Otherwise, it goes into Stopped.

It is meaningful only if the #needs_configuration has been specified in the task context definition with (for example):

task_context "TaskName" do
  needs_configuration
  ...
end

◆ createProxyDriver()

int Proxy::createProxyDriver ( )
protectedvirtual

◆ errorHook()

void Proxy::errorHook ( )

This hook is called by Orocos when the component is in the RunTimeError state, at each activity step. See the discussion in updateHook() about triggering options.

Call recover() to go back in the Runtime state.

◆ processIO()

void Proxy::processIO ( )
protected

◆ readPacket()

void Proxy::readPacket ( RawPacket packet)
protectedvirtual

◆ startHook()

bool Proxy::startHook ( )

This hook is called by Orocos when the state machine transitions from Stopped to Running. If it returns false, then the component will stay in Stopped. Otherwise, it goes into Running and updateHook() will be called.

◆ stopHook()

void Proxy::stopHook ( )

This hook is called by Orocos when the state machine transitions from Running to Stopped after stop() has been called.

◆ updateHook()

void Proxy::updateHook ( )

This hook is called by Orocos when the component is in the Running state, at each activity step. Here, the activity gives the "ticks" when the hook should be called.

The error(), exception() and fatal() calls, when called in this hook, allow to get into the associated RunTimeError, Exception and FatalError states.

In the first case, updateHook() is still called, and recover() allows you to go back into the Running state. In the second case, the errorHook() will be called instead of updateHook(). In Exception, the component is stopped and recover() needs to be called before starting it again. Finally, FatalError cannot be recovered.

◆ writePacket()

void Proxy::writePacket ( RawPacket const &  packet)
protectedvirtual

Friends And Related Function Documentation

◆ ProxyBase

friend class ProxyBase
friend

Member Data Documentation

◆ buffer_size

int iodrivers_base::Proxy::buffer_size
protected

◆ DUMMY_BUFFER_SIZE

const int iodrivers_base::Proxy::DUMMY_BUFFER_SIZE = 1024
static

◆ packet_buffer

std::vector<boost::uint8_t> iodrivers_base::Proxy::packet_buffer
protected

◆ rx_packet

iodrivers_base::RawPacket iodrivers_base::Proxy::rx_packet
protected

◆ tx_packet

iodrivers_base::RawPacket iodrivers_base::Proxy::tx_packet
protected

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