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

| Public Member Functions | |
| cCANSerial_PEAK (tDeviceHandle _peak_handle, double _timeout, int _id_read, int _id_write) | |
| cCANSerial_PEAK (unsigned long _baudrate, double _timeout, int _id_read, int _id_write, const char *device="/dev/pcanusb0") | |
| void | Close (void) | 
| Close the previously opened CAN PEAK interface port.  More... | |
| virtual char const * | GetErrorMessage (tErrorCode dw) | 
| virtual tErrorCode | GetErrorNumber () | 
| tDeviceHandle | GetHandle () | 
| bool | IsOpen (void) throw () | 
| Return true if interface to CAN PEAK is open.  More... | |
| void | Open (void) | 
| ssize_t | Read (void *data, ssize_t size, long timeout_us, bool return_on_less_data) | 
| void | SetTimeout (double _timeout) | 
| set the timeout for next readline() calls (negative value means: no timeout, wait for ever)  More... | |
| int | write (char const *ptr, int len=0) | 
| Write data to a previously opened port.  More... | |
| ~cCANSerial_PEAK () | |
| destructor: clean up  More... | |
|  Public Member Functions inherited from cSerialBase | |
| cSerialBase () | |
| ctor  More... | |
| char const * | GetLastErrorMessage (void) | 
| return the last error message as string. The string returned will be overwritten by the next call to the function  More... | |
| virtual double | GetTimeout () | 
| get the timeout for next readline() calls (negative value means: no timeout, wait for ever)  More... | |
| virtual char * | readline (char *line, int size, char const *eol="\n", bool return_on_less_data=false) | 
| Read a line from the device.  More... | |
| virtual bool | UseCRC16 () | 
| virtual | ~cSerialBase (void) | 
| dtor  More... | |
| Protected Member Functions | |
| int | BaudrateToBaudrateCode (unsigned long baudrate) | 
| Translate a baudrate given as unsigned long into a baudrate code for struct termios.  More... | |
| Protected Attributes | |
| unsigned long | baudrate | 
| the baudrate to use in bit/s  More... | |
| int | id_read | 
| the CAN ID used for reading  More... | |
| int | id_write | 
| the CAN ID used for writing  More... | |
| char | m_device [64] | 
|  Protected Attributes inherited from cSerialBase | |
| double | timeout | 
| timeout in seconds  More... | |
| char | ungetch | 
| an already read data byte of the next line  More... | |
| bool | ungetch_valid | 
| Flag, true if ungetch is valid.  More... | |
| Private Member Functions | |
| cCANSerial_PEAK (cCANSerial_PEAK const &other) | |
| private copy constructor without implementation, since copying of cCANSerial_PEAK objects makes no sense  More... | |
| cCANSerial_PEAK & | operator= (cCANSerial_PEAK const &rhs) | 
| private copy assignment operator without implementation, since copying of cCANSerial_PEAK objects makes no sense  More... | |
| Private Attributes | |
| cCANSerial_PEAK_Internal * | pimpl | 
| ptr to private, implementation specific members (using the 'Pimpl' (pointer to implementatino) design pattern)  More... | |
| Additional Inherited Members | |
|  Public Types inherited from cSerialBase | |
| typedef int | tErrorCode | 
| type of the error code, DWORD on windows and int on Linux/cygwin  More... | |
|  Public Attributes inherited from cSerialBase | |
| cDBG | dbg | 
| A stream object to print colored debug messages.  More... | |
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().
Definition at line 78 of file canserial-peak.h.
| 
 | private | 
private copy constructor without implementation, since copying of cCANSerial_PEAK objects makes no sense
| NAMESPACE_SDH_END cCANSerial_PEAK::cCANSerial_PEAK | ( | unsigned long | _baudrate, | 
| double | _timeout, | ||
| int | _id_read, | ||
| int | _id_write, | ||
| const char * | device = "/dev/pcanusb0" | ||
| ) | 
Constructor: constructs an object to communicate with an SDH via CAN bus using a PEAK CAN card.
| _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!) | 
Definition at line 160 of file canserial-peak.cpp.
| cCANSerial_PEAK::cCANSerial_PEAK | ( | tDeviceHandle | _peak_handle, | 
| double | _timeout, | ||
| int | _id_read, | ||
| int | _id_write | ||
| ) | 
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).
| cCANSerial_PEAK::~cCANSerial_PEAK | ( | ) | 
destructor: clean up
Definition at line 202 of file canserial-peak.cpp.
| 
 | protected | 
Translate a baudrate given as unsigned long into a baudrate code for struct termios.
Definition at line 309 of file canserial-peak.cpp.
| 
 | virtual | 
Close the previously opened CAN PEAK interface port.
Implements cSerialBase.
Definition at line 299 of file canserial-peak.cpp.
| 
 | virtual | 
Overloaded helper function that returns a PEAK error message for error code dw.
Reimplemented from cSerialBase.
Definition at line 517 of file canserial-peak.cpp.
| 
 | virtual | 
Overloaded helper function that returns the last Peak error number.
Reimplemented from cSerialBase.
Definition at line 526 of file canserial-peak.cpp.
| 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()!
Definition at line 532 of file canserial-peak.cpp.
| 
 | virtual | ||||||||||||||
Return true if interface to CAN PEAK is open.
Implements cSerialBase.
Definition at line 291 of file canserial-peak.cpp.
| 
 | virtual | 
Open the device as configured by the parameters given to the constructor
Implements cSerialBase.
Definition at line 234 of file canserial-peak.cpp.
| 
 | private | 
private copy assignment operator without implementation, since copying of cCANSerial_PEAK objects makes no sense
| 
 | 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 cSerialBase.
Definition at line 375 of file canserial-peak.cpp.
| 
 | virtual | 
set the timeout for next readline() calls (negative value means: no timeout, wait for ever)
Reimplemented from cSerialBase.
Definition at line 507 of file canserial-peak.cpp.
| 
 | virtual | 
Write data to a previously opened port.
Write len bytes from *ptr to the CAN device
| ptr | - pointer the byte array to send in memory | 
| len | - number of bytes to send | 
Implements cSerialBase.
Definition at line 329 of file canserial-peak.cpp.
| 
 | protected | 
the baudrate to use in bit/s
Definition at line 84 of file canserial-peak.h.
| 
 | protected | 
the CAN ID used for reading
Definition at line 87 of file canserial-peak.h.
| 
 | protected | 
the CAN ID used for writing
Definition at line 90 of file canserial-peak.h.
| 
 | protected | 
Definition at line 97 of file canserial-peak.h.
| 
 | private | 
ptr to private, implementation specific members (using the 'Pimpl' (pointer to implementatino) design pattern)
Definition at line 101 of file canserial-peak.h.