29 canInitializeLibrary();
38 unsigned long timeout = 1000;
42 switch (notifyEvent) {
44 unsigned int len,flag;
47 Status = canReadWait(handle,&msg.
c_id,&msg.
c_data,&len,&flag,&ttime,timeout);
49 msg.
c_time.tv_sec = ttime / 1000000;
50 msg.
c_time.tv_usec = ttime % 1000000;
53 if (Status == canERR_NOMSG)
57 if (msg.
c_ff & canMSG_ERROR_FRAME) {
58 Status = canIoCtl(handle,canIOCTL_CLEAR_ERROR_COUNTERS,NULL,0);
62 if (msg.
c_ff & canSTAT_ERROR_PASSIVE) {
67 if (Status == canOK) {
84 unsigned long timeout = 1000;
88 switch (cnd->eventType ) {
90 dlc = (
unsigned int )msg.
c_dlc;
91 ff = (
unsigned int )msg.
c_ff;
94 if (Status == canERR_NOMSG)
98 if (msg.
c_ff & canMSG_ERROR_FRAME) {
99 Status = canIoCtl(ppcs->
canObjHandler,canIOCTL_CLEAR_ERROR_COUNTERS,NULL,0);
103 if (msg.
c_ff & canSTAT_ERROR_PASSIVE) {
108 if (Status == canOK) {
129 canStatus Status = canOK;
131 unsigned int tseg1 = 0;
132 unsigned int tseg2 = 0;
133 unsigned int sjw = 0;
134 unsigned int noSamp = 0;
135 unsigned int syncmode = 0;
136 unsigned int m_usedBaudRate = 125000;
143 numPar = sscanf(parameters,
"%d %d %d %d %d %d",&m_usedBaudRate,&tseg1,&tseg2,&sjw,&noSamp,&syncmode);
144 printf(
"Par %d %d %d %d %d %d\n",m_usedBaudRate,tseg1,tseg2,sjw,noSamp,syncmode);
146 canObjHandler = canOpenChannel(
numChannel,canOPEN_EXCLUSIVE | canOPEN_OVERRIDE_EXCLUSIVE | canOPEN_REQUIRE_INIT_ACCESS);
149 switch(m_usedBaudRate) {
151 m_usedBaudRate = BAUD_1M;
154 m_usedBaudRate = BAUD_500K;
157 m_usedBaudRate = BAUD_250K;
160 m_usedBaudRate = BAUD_125K;
163 m_usedBaudRate = BAUD_100K;
166 m_usedBaudRate = BAUD_62K;
169 m_usedBaudRate = BAUD_50K;
172 printf(
"Baudrate set to 125 kbit/s. \n");
173 m_usedBaudRate = BAUD_125K;
177 canSetBusParams(
canObjHandler,m_usedBaudRate,tseg1,tseg2,sjw,noSamp,syncmode);
178 Status = canIoCtl(
canObjHandler,canIOCTL_FLUSH_RX_BUFFER,NULL,NULL);
196 gettimeofday(&ftTimeStamp,0);
203 if (status != canOK) {
204 status = canIoCtl(
canObjHandler,canIOCTL_CLEAR_ERROR_COUNTERS,NULL,0);
216 if (Status != canOK) {
217 if (Status == canERR_TXBUFOFL) {
219 if (Status == canOK) {
237 if (Status != canOK) {
238 if (Status == canERR_TXBUFOFL) {
240 if (Status == canOK) {
260 canGetErrorText((canStatus)
error, tmp,
sizeof(tmp));
261 *message =
new char[strlen(tmp)+1];
262 strcpy(*message,tmp);