SDHLibrary-CPP 0.0.2.10 C++ access library for SCHUNK Dextrous Hand SDH

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Protected Member Functions | Protected Attributes

# SDH::cCANSerial_PEAK Class Reference

Low-level communication class to access a CAN port from company PEAK (http://www.peak-system.com) More...

`#include <canserial-peak.h>`

Inheritance diagram for SDH::cCANSerial_PEAK:
[legend]
Collaboration diagram for SDH::cCANSerial_PEAK:
[legend]

List of all members.

## Public Member Functions
| cCANSerial_PEAK (unsigned long _baudrate, double _timeout, int _id_read, int _id_write, const char *device="/dev/pcanusb0") throw (cCANSerial_PEAKException*)
| cCANSerial_PEAK (tDeviceHandle _peak_handle, double _timeout, int _id_read, int _id_write) throw (cCANSerial_PEAKException*)
| ~cCANSerial_PEAK ()
| destructor: clean up
tDeviceHandle | GetHandle ()
void | Open (void) throw (cCANSerial_PEAKException*)
bool | IsOpen (void) throw ()
| Return true if interface to CAN PEAK is open.
void | Close (void) throw (cCANSerial_PEAKException*)
| Close the previously opened CAN PEAK interface port.
int | write (char const *ptr, int len=0) throw (cCANSerial_PEAKException*)
| Write data to a previously opened port.
ssize_t | Read (void *data, ssize_t size, long timeout_us, bool return_on_less_data) throw (cCANSerial_PEAKException*)
void | SetTimeout (double _timeout) throw (cSerialBaseException*)
| set the timeout for next readline() calls (negative value means: no timeout, wait for ever)
virtual tErrorCode | GetErrorNumber ()
virtual char const * | GetErrorMessage (tErrorCode dw)
## Protected Member Functions
int | BaudrateToBaudrateCode (unsigned long baudrate) throw (cCANSerial_PEAKException*)
| Translate a baudrate given as unsigned long into a baudrate code for struct termios.
## Protected Attributes
unsigned long | baudrate
| the baudrate to use in bit/s
int | id_read
| the CAN ID used for reading
int | id_write
| the CAN ID used for writing
char | m_device [64]

## Detailed Description

Low-level communication class to access a CAN port from company PEAK (http://www.peak-system.com)

Since SDHLibrary-C++ release 0.0.2.0 implementation specific parts of the access to PEAK CAN devices have been removed from the header file here in order to get rid of dependencies from the Pcan_usb.h. Specifically the peak_handle of type PEAK_HANDLE member was removed. You can still provide an existing handle for reuse on construction, but you must cast your HANDLE to a tDeviceHandle. You can get the internally used PEAK_HANDLE cast to a tDeviceHandle with GetHandle().

## Constructor & Destructor Documentation

cCANSerial_PEAK::cCANSerial_PEAK | ( | unsigned long | _baudrate,
|  | double | _timeout,
|  | int | _id_read,
|  | int | _id_write,
|  | const char * | device = `"/dev/pcanusb0"`
| ) |  | throw (cCANSerial_PEAKException*)

Constructor: constructs an object to communicate with an SDH via CAN bus using a PEAK CAN card.

Parameters:

  _baudrate | - the baudrate in bit/s. Only some bitrates are valid: (1000000,800000,500000,250000,125000,100000,50000,20000,10000)
  _timeout | - the timeout in seconds (0 for no timeout = wait for ever)
  _id_read | - the CAN ID to use for reading (The SDH sends data on this ID)
  _id_write | - the CAN ID to use for writing (The SDH receives data on this ID)
  device | - the name of the char device to communicate with the PEAD driver (Needed on Linux only!)

cCANSerial_PEAK::cCANSerial_PEAK | ( | tDeviceHandle | _peak_handle,
|  | double | _timeout,
|  | int | _id_read,
|  | int | _id_write
| ) |  | throw (cCANSerial_PEAKException*)

Constructor: constructs an object to communicate with an SDH via CAN bus using a PEAK CAN card by reusing an already existing handle (will work in Linux only).

Parameters:

  _peak_handle | - the PEAK CAN handle to reuse (Works on Linux only!)
  _timeout | - the timeout in seconds (0 for no timeout = wait for ever)
  _id_read | - the CAN ID to use for reading (The SDH sends data on this ID)
  _id_write | - the CAN ID to use for writing (The SDH receives data on this ID)

cCANSerial_PEAK::~cCANSerial_PEAK | ( |  | ) |

destructor: clean up

## Member Function Documentation

int cCANSerial_PEAK::BaudrateToBaudrateCode | ( | unsigned long | baudrate | ) | throw (cCANSerial_PEAKException*)`[protected]`

Translate a baudrate given as unsigned long into a baudrate code for struct termios.

void cCANSerial_PEAK::Close | ( | void |  | ) | throw (cCANSerial_PEAKException*)`[virtual]`

Close the previously opened CAN PEAK interface port.

Implements SDH::cSerialBase.

char const * cCANSerial_PEAK::GetErrorMessage | ( | tErrorCode | dw | ) | `[virtual]`

Overloaded helper function that returns a PEAK error message for error code dw.

Remarks:
  The string returned will be overwritten by the next call to the function

Reimplemented from SDH::cSerialBase.

cSerialBase::tErrorCode cCANSerial_PEAK::GetErrorNumber | ( |  | ) | `[virtual]`

Overloaded helper function that returns the last Peak error number.

Reimplemented from SDH::cSerialBase.

tDeviceHandle cCANSerial_PEAK::GetHandle | ( |  | ) |

Return the value of the HANDLE to the actual CAN device. Works on Linux only! Only returns a valid handle after a call to Open()!

Remarks:
  The returned handle can be used to open a connection to a second SDH on the same CAN bus

Returns:
  the handle to the actual CAN device

bool cCANSerial_PEAK::IsOpen | ( | void |  | ) | throw ()`[virtual]`

Return true if interface to CAN PEAK is open.

Implements SDH::cSerialBase.

void cCANSerial_PEAK::Open | ( | void |  | ) | throw (cCANSerial_PEAKException*)`[virtual]`

Open the device as configured by the parameters given to the constructor

Implements SDH::cSerialBase.

ssize_t cCANSerial_PEAK::Read | ( | void * | data,
|  | ssize_t | size,
|  | long | timeout_us,
|  | bool | return_on_less_data
| ) |  | throw (cCANSerial_PEAKException*)`[virtual]`

Read data from device. This function waits until max_time_us us passed or the expected number of bytes are received via serial line. if (return_on_less_data is true (default value), the number of bytes that have been received are returned and the data is stored in data If the return_on_less_data is false, data is only read from serial line, if at least size bytes are available.

Implements SDH::cSerialBase.

void cCANSerial_PEAK::SetTimeout | ( | double | _timeout | ) | throw (cSerialBaseException*)`[virtual]`

set the timeout for next readline() calls (negative value means: no timeout, wait for ever)

Reimplemented from SDH::cSerialBase.

int cCANSerial_PEAK::write | ( | char const * | ptr,
|  | int | len = `0`
| ) |  | throw (cCANSerial_PEAKException*)`[virtual]`

Write data to a previously opened port.

Write len bytes from *ptr to the CAN device

Parameters:

  ptr | - pointer the byte array to send in memory
  len | - number of bytes to send

Returns:
  the number of bytes actually written

Implements SDH::cSerialBase.

## Member Data Documentation

unsigned long SDH::cCANSerial_PEAK::baudrate`[protected]`

the baudrate to use in bit/s

int SDH::cCANSerial_PEAK::id_read`[protected]`

the CAN ID used for reading

int SDH::cCANSerial_PEAK::id_write`[protected]`

the CAN ID used for writing

char SDH::cCANSerial_PEAK::m_device[64]`[protected]`

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

- sdh/canserial-peak.h
- sdh/canserial-peak.cpp