55 Status = CAN_Read(xHandler,&msg,&
time);
56 if (Status == PCAN_ERROR_OK) {
57 for(
int i=0; i < 8; i++) cmt.
c_data[i] = msg.DATA[i];
60 cmt.
c_ff = msg.MSGTYPE;
62 unsigned long long mmsec = 0xFFFFFFFFUL;
64 mmsec = mmsec *
time.millis_overflow;
65 mmsec = mmsec +
time.micros;
66 mmsec = mmsec + 1000 *
time.millis;
68 cmt.
c_time.tv_usec = mmsec % 1000000UL;
69 cmt.
c_time.tv_sec = mmsec / 1000000UL;
73 if (Status & PCAN_ERROR_QRCVEMPTY) {
77 if (Status | PCAN_ERROR_ANYBUSERR) {
78 CAN_Initialize(xHandler,ppcs->
BaudRate);
92 TPCANStatus Status = PCAN_ERROR_OK;
94 unsigned int tseg1 = 0;
95 unsigned int tseg2 = 0;
97 unsigned int noSamp = 0;
98 unsigned int syncmode = 0;
103 numPar = sscanf_s(parameters,
"%d %d %d %d %d %d",&br,&tseg1,&tseg2,&sjw,&noSamp,&syncmode);
110 case 50000:
BaudRate = PCAN_BAUD_50K;
break;
111 case 100000:
BaudRate = PCAN_BAUD_100K;
break;
112 case 125000:
BaudRate = PCAN_BAUD_125K;
break;
113 case 250000:
BaudRate = PCAN_BAUD_250K;
break;
114 case 500000:
BaudRate = PCAN_BAUD_500K;
break;
115 case 1000000:
BaudRate = PCAN_BAUD_1M;
break;
119 else {
if (numPar != 0)
BaudRate = br; }
121 if (Status == PCAN_ERROR_OK) {
122 CAN_FilterMessages(
canObjHandler,0,0x7FF,PCAN_MESSAGE_STANDARD);
141 gettimeofday(&ftTimeStamp,0);
148 if (status != PCAN_ERROR_OK) {
158 unsigned char *buf = message;
161 pkmsg.MSGTYPE = PCAN_MESSAGE_STANDARD;
171 memcpy(pkmsg.DATA,buf,l1);
173 if (Status != PCAN_ERROR_OK) {
188 pkmsg.MSGTYPE = PCAN_MESSAGE_RTR;
206 CAN_GetErrorText((TPCANStatus)
error,0, tmp);
207 *message =
new char[strlen(tmp)+1];
208 strcpy(*message,tmp);
215 const char *chname[] = {
"ISA1",
"ISA2",
"ISA3",
"ISA4",
"ISA5",
"ISA6",
"ISA7",
"ISA8",
217 "PCI1",
"PCI2",
"PCI3",
"PCI4",
"PCI5",
"PCI6",
"PCI7",
"PCI8",
218 "USB1",
"USB2",
"USB3",
"USB4",
"USB5",
"USB6",
"USB7",
"USB8",
221 const TPCANHandle han[] = { 0x21,
253 int chn =
sizeof(chname)/
sizeof(chname[0]);
255 for (
unsigned int j=0; j < strlen(
name); j++)
256 tmpName[j] = toupper(
name[j]);
258 for (
int i = 0; i < chn; i++)
260 if (strcmp(chname[i],tmpName) >= 0)