PeakDriverBase.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef __PeakDriverBase_h__
00041 #define __PeakDriverBase_h__
00042
00043 #if defined(LINUX)
00044 #include <errno.h>
00045 #include <fcntl.h>
00046 #include <libpcan.h>
00047
00048 #elif defined(WIN32)
00049 #include <windows.h>
00050 #if defined(PEAKUSB)
00051 #include "Pcan_usb.h"
00052 #elif defined(PEAKPCI)
00053 #include "Pcan_pci.h"
00054 #else
00055 #error "You have to define either PEAKUSB or PEAKPCI to choose the used Peak driver"
00056 #endif
00057
00058 #else
00059 #error "PEAK driver within FAMOUSO not support on that platform"
00060 #endif
00061
00062 #include "mw/nl/can/canID_LE_PC.h"
00063
00064 namespace device {
00065 namespace nic {
00066 namespace CAN {
00067
00071 struct PeakDriverBase {
00072
00076 class MOB : public TPCANMsg {
00077 public:
00082 typedef famouso::mw::nl::CAN::detail::ID <
00083 famouso::mw::nl::CAN::detail::famouso_CAN_ID_LE_PC
00084 > IDType;
00085
00087 void extended() {
00088 MSGTYPE = MSGTYPE_EXTENDED;
00089 }
00090
00092 IDType& id() {
00093 return *reinterpret_cast<IDType*>(&ID);
00094 }
00095
00097 uint8_t& len() {
00098 return LEN;
00099 }
00100
00102 void len(uint8_t l) {
00103 LEN = l;
00104 }
00105
00107 uint8_t *data() {
00108 return DATA;
00109 }
00110
00112 explicit MOB() {
00113 ID = 0;
00114 }
00115 };
00116 };
00117
00122 const uint16_t baudrates[] = { CAN_BAUD_1M,
00123 CAN_BAUD_500K,
00124 CAN_BAUD_250K,
00125 CAN_BAUD_125K,
00126 CAN_BAUD_100K,
00127 CAN_BAUD_50K,
00128 CAN_BAUD_20K,
00129 CAN_BAUD_10K,
00130 CAN_BAUD_5K
00131 };
00132
00133 }
00134 }
00135 }
00136
00137 #endif
00138