📄 rx201-readertocard.c
字号:
//OK#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#define BAUDRATE B9600unsigned char buf[100];struct termios oldtio,newtio;int read_str(int fd, int sec_n){ int result,nread; struct timeval timeout; fd_set inputs; FD_ZERO(&inputs); FD_SET(fd,&inputs); timeout.tv_sec=sec_n; timeout.tv_usec=50000; result = select(FD_SETSIZE, &inputs, (fd_set *)0, (fd_set *)0, &timeout); if (result == 0) {return -1;} nread=read(fd,buf,sizeof(buf)); return nread; }int main(){ int fd,comfd; int file_fd; int opt; int nread; int rssi[50],cardnum[50]; int tempc=0,tempr=0; int cardrssi[50][5]; int sr=0,sf; int i=0,a=0,j,k=0; int temp_cardnum,temp_rssi; int filesize; struct stat filestat; char *combuf=malloc(1024); char filename[20]; char COMPORT[10]; FILE *comfp; strcpy(COMPORT,"/dev/ttyS0"); //strcat(COMPORT,optarg); fd = open(COMPORT,O_RDWR|O_NOCTTY); if(fd < 0) { perror(COMPORT); exit(1); } printf("Open.....%s\n",COMPORT); tcgetattr(fd,&oldtio); bzero(&newtio,sizeof(newtio)); newtio.c_cflag = BAUDRATE|CS8|CLOCAL|CREAD; newtio.c_iflag = IGNPAR; newtio.c_oflag = 0; newtio.c_lflag = ICANON; tcflush(fd,TCIFLUSH); tcsetattr(fd,TCSANOW,&newtio); printf("Waiting.....\n"); comfp = fopen("DISABLING.txt","rb"); fread(combuf,20,1,comfp); write(fd,combuf,20); fclose(comfp); memset(buf,0,sizeof(buf)); comfp = fopen("GetTagPacket.txt","rb"); fread(combuf,10,1,comfp); fclose(comfp);memset(cardrssi,0,sizeof(cardrssi));//----------------------------------------for (i=0;i<=50;i++){ write(fd,combuf,10); read_str(fd,0); for (a=0;a<=100;a++){ if( (buf[a]==0x42) && (buf[a+1] ==0x43) ) {sf=a;break;} } if( ( buf[a-12]==0x55) && (buf[a+10]==0x0) && (buf[a+16]!=0)){ tempc=(buf[sf+11]*256*256)+(buf[sf+12]*256)+(buf[sf+13]); tempr=buf[sf+16]; } for (j=0;j<=10;j++){ if (tempc != cardrssi[j][0] && cardrssi[j][0] == 0) { cardrssi[j][0]=tempc; cardrssi[j][1]=tempr; break; } if (tempc == cardrssi[j][0]) { cardrssi[j][0]=tempc; cardrssi[j][1]=tempr; break; } }}for (i=0;i<=4;i++){printf("(Tag ID,RSSI) = (%d,%d)\n",cardrssi[i][0],cardrssi[i][1]);} close(fd); return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -