#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
void printLinMessage(unsigned int id, unsigned char *msg, unsigned int len,
int optMaster = 0;
int linChannel = 0;
int main(int argc, char **argv)
{
unsigned char serNo[8], eanNo[8];
int ttype;
int i;
unsigned long timeOffset;
unsigned long tLastPoll, tNow;
for (i=1; i<argc; i++) {
int tmpL;
char tmpC;
if (strcmp(argv[i], "-m") == 0) optMaster++;
else if (sscanf(argv[i], "%d%c", &tmpL, &tmpC) == 1) {
linChannel = tmpL;
}
}
printf("Error retrieving LIN transceiver information on channel %d.\n", linChannel);
exit(1);
}
printf("Transceiver type: %d", ttype);
printf(", EAN no: ");
for (i = 7; i >= 0; i--) printf("%02x", eanNo[i]);
printf(", Serial no: 0x");
for (i = 7; i >= 0; i--) printf("%02x", serNo[i]);
printf("\n");
printf("Operating as %s on channel %d.\n", optMaster? "master" : "slave", linChannel);
printf("linOpenChannel failed (%d)\n", h);
printf("Did you remember to connect external power to the LIN transceiver?\n");
}
exit(1);
}
printf("Error %d setting LIN bitrate\n", lres);
exit(1);
}
printf("Error %d going on bus\n", lres);
exit(1);
}
if (optMaster)
else
printf("Error %d writing LIN message\n", lres);
exit(1);
}
tLastPoll = timeOffset;
for (;;) {
unsigned int id;
unsigned char msg[8];
unsigned int len;
unsigned int flags;
printLinMessage(id, msg, len, flags, &msgInfo);
}
if (optMaster) {
if (tNow-tLastPoll > 1000) {
int stat;
printf("linRequestMessage() failed, status=%d\n", stat);
exit(1);
}
tLastPoll += 1000;
}
} else {
if (tNow-tLastPoll > 5000) {
int stat;
printf("linWriteWakeup() failed, status = %d\n", stat);
exit(1);
}
tLastPoll += 5000;
}
}
}
printf("Error %d going off bus\n", lres);
exit(1);
}
printf("Error %d calling linClose()\n", lres);
exit(1);
}
return 0;
}
void printLinMessage(unsigned int id, unsigned char *msg, unsigned int len, unsigned int flags,
{
unsigned int i;
printf("Tx");
printf("Rx");
else
printf("??");
printf(" %2d ", id);
printf("WakeUp");
printf("-");
else {
printf("{");
for (i = 0; i < len; i++) {
if (i)
printf(" ");
printf("%02x", msg[i]);
}
printf("}");
}
printf("[");
printf("C");
printf("P");
printf("B");
printf("X");
printf("]");
}
printf(
" pa: 0x%02x", msgInfo->
idPar);
printf(
" cs: 0x%02x", msgInfo->
checkSum);
printf(
" br: %ld", msgInfo->
bitrate);
printf("\n");
}