www.pudn.com > 422.rar > rxtx.c
#include#include #include #include #include #include "../include/serial.h" #define MAXL 40 int main(void) { int i=0, fd=0, ret=0, count=0; char loop=0; char ch, transmission[MAXL+1], specialfile[MAXL+1]="/dev/can0", emptystring[MAXL+1]="", buf[MAXL+1]; char remote[MAXL+1]; struct serialmsg_t message; printf("\nThis program allows you to send or receive Can messages.\n"); printf("Please answer the following questions:\n\n"); while ( (*transmission!='s') && (*transmission!='r') ) { printf("Would you like to send or receive a message?\n"); printf("send: | receive:"); strcpy(transmission,emptystring); count=0; while ( (ch=getchar()) != '\n' ) transmission[count++]=ch; transmission[count]='\0'; } while ( *remote!='y' && *remote!='n' ) { printf("Should the message be configured for Remote Transmission Requests?\n"); printf("yes: | no: "); strcpy(remote,emptystring); count=0; while ( (ch=getchar()) != '\n' ) remote[count++]=ch; remote[count]='\0'; } // if (remote[0]=='y') // message.flags |= MSG_RTR; // else // message.flags = 0; // message.flags |= MSG_EXT; hard code EXT for now if (transmission[0]=='s') { printf("From wich device file would you like to send the message?\n"); printf(specialfile); *buf='\0'; fgets(buf,MAXL,stdin); buf[strcspn(buf,"\n")]='\0'; if(*buf) strncpy(specialfile,buf,MAXL); specialfile[MAXL]='\0'; specialfile[MAXL]='\0'; printf("Enter the Message ID "); // scanf("%lx",&message.id); printf("Enter the Message Length "); scanf("%d",&message.length); printf("input length=============%d\n",message.length); for (i=0; i oop\n"); loop = 'l'; while ( loop == 'l') { loop = getchar(); ret=read(fd, &message, sizeof(struct serialmsg_t)); if (ret<0) printf("Error receiving message on %s\n", specialfile); else { // printf("Id : %lx\n",message.id); printf("length : %d\n",message.length); // printf("flags : 0x%02x\n", message.flags); // printf("time : %ld\n", message.timestamp); for (i=0; i