#include #include #include // gettimeofday #include #include #include #include #include #include #include #include #include #include #include #include #include "serial.h" #include "uartinf.h" #include "confile.h" #include "udp_util.h" char _rx_data[1024]; struct lc6600_param{ int password; int freq; int power; int bw; int ap_sta; int ip; int setup; }; char freq1[10]; char freq2[10]; char dbm1[5]; char dbm2[5]; int my_strlen(char* str) { char*start = str; while (*str != '\0') { str++; } return str - start; } int main (int argc, char *argv[]) { int n_read; int i; //char buffer[1024]; char rx1[3]; char rx2[3]; char rx3[3]; char ip[13]; int dbm1; int dbm2; int dbm3; char *ip_str; //char *buffer_freq; char freq_str[6]; int freq; int fq; int bitrate; int fd_param; int *buffer_param; int len; char *buffer_freq; char *buffer; char *buffer_rssi; char *buffer_rssi1; char *buffer_rssi2; float rssi; float rssi1; float rssi2; char bit[6]; char bit2[20]; char bit1[6]; n_read = uart_init(ROUTE_UART, "/dev/ttyAMA2", 115200, 'N'); if(n_read <=0 ) { printf("open /dev/ttyAMA2 failed\n"); return -1; } fd_param = shm_open("/param.txt",O_RDWR|O_CREAT|O_EXCL,0777); if(fd_param < 0){ fd_param = shm_open("/param.txt",O_RDWR,0777); }else ftruncate(fd_param,4096); buffer_param= mmap(NULL,4096,PROT_READ|PROT_WRITE,MAP_SHARED,fd_param,0); //buffer_param[0] = 0xAA;i //buffer_param[3]=4560; //buffer_param[4]=14430; //freq=atoi(argv[1]); //printf("freq %d \n",freq); //buffer_param[3]=freq; while(1){ n_read = uart_get(ROUTE_UART,_rx_data); //n_read = uart_read(ROUTE_UART,_rx_data); //printf("%s\n",_rx_data); if(n_read >30){ printf("%s\n",_rx_data); //printf("%d\n",n_read); //len=!strncmp("VGA",_rx_data,3); //printf("len %x\n"); //if((!strncmp("VGA",_rx_data,3)) && n_read < 65 ){ if((!strncmp("POINT",_rx_data,5)) && n_read < 80 ){ buffer_rssi = strstr(_rx_data,"RSSI:"); buffer_rssi1 = strstr(_rx_data,"RSSI1:"); buffer_rssi2 = strstr(_rx_data,"RSSI2:"); buffer_freq = strstr(_rx_data,"Point"); if( buffer_rssi && buffer_rssi1 && buffer_rssi2){ //memcpy(rx1,buffer_rssi1+6,6);//信号强度 strncpy(bit,buffer_rssi1+6,6);//信号强度 rssi1 = atof(bit); strncpy(bit,buffer_rssi2+6,6);//信号强度 rssi2 = atof(bit); strncpy(bit,buffer_freq+6,5);//ti频率 bit[5]=0x00; freq = atoi(bit); //字符型转化为整型 buffer_param[1]= rssi1; buffer_param[2]= rssi2; buffer_param[4]= freq; printf("rx %.2f 2 %.2f %d \n",rssi1,rssi2,freq); buffer_param[3] = 0; //码流 buffer_param[0]=0xAA; //no signal //printf("++%f \n",buffer_param[12]); } } else if(n_read >85){ //xinuo get signal //buffer=strstr(_rx_data,"%)"); //buffer_rssi = strstr(_rx_data,"RSSI:"); buffer_rssi = strstr(_rx_data,"RSSI:"); buffer_rssi1 = strstr(_rx_data,"RSSI1:"); buffer_rssi2 = strstr(_rx_data,"RSSI2:"); buffer_freq = strstr(_rx_data,"Point"); buffer = strstr(_rx_data,"%)"); printf("buffer %s\n",buffer); if(buffer_rssi){ //if(buffer){ len = strlen(buffer)-8; printf("len %d\n",len); strncpy(bit,buffer+2,len);//信号强度 // if(strlen(buffer)<=7){ // strncpy(bit,buffer_rssi1+6,6);//信号强度 // }else { // strncpy(bit,buffer+2,4); // } // printf("bit %s ",bit); bit[len]=0x00; printf("bit %s\n",bit); //bit[4] = 0x00; //bit[5] = 0x00; bitrate=atoi(bit);//码流 strncpy(bit,buffer_rssi1+6,6);//信号强度 rssi1 = atof(bit); strncpy(bit,buffer_rssi2+6,6);//信号强度 rssi2 = atof(bit); strncpy(bit,buffer_freq+6,5);//频率 bit[5]=0x00; freq = atoi(bit); //字符型转化为整型 printf("rx %.2f 2 %.2f freq %d bit %d\n",rssi1,rssi2,freq,bitrate); buffer_param[1]= rssi1; buffer_param[2]= rssi2; buffer_param[4]= freq; buffer_param[3] = bitrate; #if 0 if(bitrate / 10000){ buffer_param[3] = (float)(bitrate/100); }else { buffer_param[3] = (float)bitrate; } #endif buffer_param[0]=0x55; //flag gignal //printf("+++++++rx %.2f 2 %.2f +++++ \n",rssi1,rssi2); } } } } }