YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches

analogServer deprecated: Device that expose an AnalogSensor (using the IAnalogSensor interface) on the YARP network. More...

#include <networkWrappers/AnalogWrapper/AnalogWrapper.h>

+ Inheritance diagram for AnalogWrapper:

Public Member Functions

 AnalogWrapper ()
 
 AnalogWrapper (const AnalogWrapper &)=delete
 
 AnalogWrapper (AnalogWrapper &&)=delete
 
AnalogWrapperoperator= (const AnalogWrapper &)=delete
 
AnalogWrapperoperator= (AnalogWrapper &&)=delete
 
 ~AnalogWrapper () override
 
bool open (yarp::os::Searchable &params) override
 Open the DeviceDriver.
 
bool close () override
 Close the DeviceDriver.
 
yarp::os::Bottle getOptions ()
 
bool attachAll (const yarp::dev::PolyDriverList &p) override
 Specify which analog sensor this thread has to read from.
 
bool detachAll () override
 Detach the object (you must have first called attach).
 
void attach (yarp::dev::IAnalogSensor *s)
 
void detach ()
 
bool threadInit () override
 Initialization method.
 
void threadRelease () override
 Release method.
 
void run () override
 Loop function.
 
- Public Member Functions inherited from yarp::os::PeriodicThread
 PeriodicThread (double period, ShouldUseSystemClock useSystemClock=ShouldUseSystemClock::No, PeriodicThreadClock clockAccuracy=PeriodicThreadClock::Relative)
 Constructor.
 
 PeriodicThread (double period, PeriodicThreadClock clockAccuracy)
 Constructor.
 
virtual ~PeriodicThread ()
 
bool start ()
 Call this to start the thread.
 
void step ()
 Call this to "step" the thread rather than starting it.
 
void stop ()
 Call this to stop the thread, this call blocks until the thread is terminated (and releaseThread() called).
 
void askToStop ()
 Stop the thread.
 
bool isRunning () const
 Returns true when the thread is started, false otherwise.
 
bool isSuspended () const
 Returns true when the thread is suspended, false otherwise.
 
bool setPeriod (double period)
 Set the (new) period of the thread.
 
double getPeriod () const
 Return the current period of the thread.
 
void suspend ()
 Suspend the thread, the thread keeps running by doLoop is never executed.
 
void resume ()
 Resume the thread if previously suspended.
 
void resetStat ()
 Reset thread statistics.
 
double getEstimatedPeriod () const
 Return estimated period since last reset.
 
void getEstimatedPeriod (double &av, double &std) const
 Return estimated period since last reset.
 
unsigned int getIterations () const
 Return the number of iterations performed since last reset.
 
double getEstimatedUsed () const
 Return the estimated duration of the run() function since last reset.
 
void getEstimatedUsed (double &av, double &std) const
 Return estimated duration of the run() function since last reset.
 
int setPriority (int priority, int policy=-1)
 Set the priority and scheduling policy of the thread, if the OS supports that.
 
int getPriority () const
 Query the current priority of the thread, if the OS supports that.
 
int getPolicy () const
 Query the current scheduling policy of the thread, if the OS supports that.
 
- Public Member Functions inherited from yarp::dev::DeviceDriver
 DeviceDriver ()
 
 DeviceDriver (const DeviceDriver &other)=delete
 
 DeviceDriver (DeviceDriver &&other) noexcept=delete
 
DeviceDriveroperator= (const DeviceDriver &other)=delete
 
DeviceDriveroperator= (DeviceDriver &&other) noexcept=delete
 
virtual ~DeviceDriver ()
 
virtual std::string id () const
 Return the id assigned to the PolyDriver.
 
virtual void setId (const std::string &id)
 Set the id for this device.
 
template<class T >
bool view (T *&x)
 Get an interface to the device driver.
 
virtual DeviceDrivergetImplementation ()
 Some drivers are bureaucrats, pointing at others.
 
- Public Member Functions inherited from yarp::dev::IMultipleWrapper
virtual ~IMultipleWrapper ()
 Destructor.
 

Additional Inherited Members

- Protected Member Functions inherited from yarp::os::PeriodicThread
virtual void beforeStart ()
 Called just before a new thread starts.
 
virtual void afterStart (bool success)
 Called just after a new thread starts (or fails to start), this is executed by the same thread that calls start().
 

Detailed Description

analogServer deprecated: Device that expose an AnalogSensor (using the IAnalogSensor interface) on the YARP network.

Description of input parameters

It reads the data from an analog sensor and sends them on one or more ports. It creates one rpc port and its related handler for every output port..

Parameters required by this device are:

Parameter name SubParameter Type Units Default Value Required Description Notes
name - string - - Yes full name of the port opened by the device, like /robotName/part/ MUST start with a '/' character
period - int ms 20 No refresh period of the broadcasted values in ms optional, default 20ms
ports - group - - alternative to subdevice this is expected to be a group parameter in xml format, a list in .ini file format. SubParameter are mandatory if this is used -
- portName_1 4 * int channel number - if ports is used describe how to match subdevice_1 channels with the wrapper channels. First 2 numbers indicate first/last wrapper channel, last 2 numbers are subdevice first/last channel The channels are intended to be consequent
- ... 4 * int channel number - if ports is used same as above The channels are intended to be consequent
- portName_n 4 * int channel number - if ports is used same as above The channels are intended to be consequent
- channels int - - if ports is used total number of channels handled by the wrapper MUST match the sum of channels from all the ports

for example: 3forces + 3torques + temperature + 3forces + 3torques + temperature ... -> offset 0, padding 1 (the temperature entry is one sample to skip) 3forces + 3torques + temperature + gravity + 3forces + 3torques + temperature + gravity ... -> offset 0, padding is 4 (1 temperature + 3 for gravity) temperature + 3forces + 3torques + temperature + 3forces + 3torques ... -> offset 1, padding is 0 (the F/T are the last ones) temperature + 3forces + 3torques + gravity + temperature + 3forces + 3torques + gravity ... -> offset 1, padding is 3 (skip 1 sample, get F/T and skip remaining 3)

Some example of configuration files:

Configuration file using .ini format, using subdevice keyword.

device analogServer
subdevice fakeAnalogSensor
name /myAnalogSensor
** parameter for 'fakeAnalogSensor' subdevice follows here **
...

Configuration file using .ini format, using ports keyword

device analogServer
name /myAnalogServer
period 20
ports (FirstSetOfChannels SecondSetOfChannels ThirdSetOfChannels)
channels 1344
FirstSetOfChannels 0 191 0 191
SecondSetOfChannels 192 575 0 383
ThirdSetOfChannels 576 1343 0 767

Configuration file using .xml format.

<device name="/myAnalogServer" type="analogServer">
<param name="period"> 20 </param>
<param name="channels"> 1344 </param>
<paramlist name="ports">
<elem name="FirstSetOfChannels"> 0 191 0 191</elem>
<elem name="SecondSetOfChannels"> 192 575 0 383</elem>
<elem name="ThirdSetOfChannels"> 576 1343 0 767</elem>
</paramlist>
<action phase="startup" level="5" type="attach">
<paramlist name="networks">
<!-- The param value must match the device name in the corresponding analogSensor config file. AnalogWrapper is able to attach to only one subdevice. -->
<elem name="myAnalogSensor"> my_analog_sensor </elem>
</paramlist>
</action>
<action phase="shutdown" level="5" type="detach" />
</device>

Definition at line 121 of file AnalogWrapper.h.

Constructor & Destructor Documentation

◆ AnalogWrapper() [1/3]

AnalogWrapper::AnalogWrapper ( )

Definition at line 213 of file AnalogWrapper.cpp.

◆ AnalogWrapper() [2/3]

AnalogWrapper::AnalogWrapper ( const AnalogWrapper )
delete

◆ AnalogWrapper() [3/3]

AnalogWrapper::AnalogWrapper ( AnalogWrapper &&  )
delete

◆ ~AnalogWrapper()

AnalogWrapper::~AnalogWrapper ( )
override

Definition at line 218 of file AnalogWrapper.cpp.

Member Function Documentation

◆ attach()

void AnalogWrapper::attach ( yarp::dev::IAnalogSensor s)

Definition at line 291 of file AnalogWrapper.cpp.

◆ attachAll()

bool AnalogWrapper::attachAll ( const yarp::dev::PolyDriverList p)
overridevirtual

Specify which analog sensor this thread has to read from.

Implements yarp::dev::IMultipleWrapper.

Definition at line 254 of file AnalogWrapper.cpp.

◆ close()

bool AnalogWrapper::close ( )
overridevirtual

Close the DeviceDriver.

Returns
true/false on success/failure.

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 534 of file AnalogWrapper.cpp.

◆ detach()

void AnalogWrapper::detach ( )

Definition at line 303 of file AnalogWrapper.cpp.

◆ detachAll()

bool AnalogWrapper::detachAll ( )
overridevirtual

Detach the object (you must have first called attach).

Returns
true/false on success failure.

Implements yarp::dev::IMultipleWrapper.

Definition at line 279 of file AnalogWrapper.cpp.

◆ getOptions()

yarp::os::Bottle AnalogWrapper::getOptions ( )

◆ open()

bool AnalogWrapper::open ( yarp::os::Searchable config)
overridevirtual

Open the DeviceDriver.

Parameters
configis a list of parameters for the device. Which parameters are effective for your device can vary. See device invocation examples. If there is no example for your device, you can run the "yarpdev" program with the verbose flag set to probe what parameters the device is checking. If that fails too, you'll need to read the source code (please nag one of the yarp developers to add documentation for your device).
Returns
true/false upon success/failure

Reimplemented from yarp::dev::DeviceDriver.

Definition at line 327 of file AnalogWrapper.cpp.

◆ operator=() [1/2]

AnalogWrapper & AnalogWrapper::operator= ( AnalogWrapper &&  )
delete

◆ operator=() [2/2]

AnalogWrapper & AnalogWrapper::operator= ( const AnalogWrapper )
delete

◆ run()

void AnalogWrapper::run ( )
overridevirtual

Loop function.

This is the thread itself. The thread calls the run() function every <period> ms. At the end of each run, the thread will sleep the amounth of time required, taking into account the time spent inside the loop function. Example: requested period is 10ms, the run() function take 3ms to be executed, the thread will sleep for 7ms.

Note: after each run is completed, the thread will call a yield() in order to facilitate other threads to run.

Implements yarp::os::PeriodicThread.

Definition at line 471 of file AnalogWrapper.cpp.

◆ threadInit()

bool AnalogWrapper::threadInit ( )
overridevirtual

Initialization method.

The thread executes this function when it starts and before "run". This is a good place to perform initialization tasks that need to be done by the thread itself (device drivers initialization, memory allocation etc). If the function returns false the thread quits and never calls "run". The return value of threadInit() is notified to the class and passed as a parameter to afterStart(). Note that afterStart() is called by the same thread that is executing the "start" method.

Reimplemented from yarp::os::PeriodicThread.

Definition at line 313 of file AnalogWrapper.cpp.

◆ threadRelease()

void AnalogWrapper::threadRelease ( )
overridevirtual

Release method.

The thread executes this function once when it exits, after the last "run". This is a good place to release resources that were initialized in threadInit() (release memory, and device driver resources).

Reimplemented from yarp::os::PeriodicThread.

Definition at line 462 of file AnalogWrapper.cpp.


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