#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 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 fd_param; float *buffer_param; int len; char *buffer_rssi; char *buffer_rssi1; char *buffer_rssi2; float rssi; float rssi1; float rssi2; char bit1[6]; char bit2[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; freq=atoi(argv[1]); printf("freq %d \n",freq); buffer_param[3]=freq; while(1){ n_read = uart_get(ROUTE_UART,_rx_data); if(n_read >30){ printf("%s\n",_rx_data); //printf("%d\n",n_read); if(n_read<50){ buffer_rssi = strstr(_rx_data,"1400"); //buffer_rssi = strstr(_rx_data,")"); // printf("buffer_rssi : %s ",buffer_rssi); if(buffer_rssi ){ //strncpy(bit1,buffer_rssi+17,6);//get 信号强度 strncpy(bit1,buffer_rssi+15,6);//信号强度1 strncpy(bit2,buffer_rssi+22,6);//信号强度2 rssi1 = atof(bit1); rssi2 = atof(bit2); printf("no \n"); buffer_param[0]=0x55; //..dowm siggma buffer_param[1]= rssi1; buffer_param[2]= rssi2; } }else if(n_read>60){ //xinuo连上 buffer_rssi = strstr(_rx_data,"):1400"); strncpy(bit1,buffer_rssi+17,6);//信号强度1 strncpy(bit2,buffer_rssi+24,6);//信号强度2 rssi1 = atof(bit1); rssi2 = atof(bit2); buffer_param[0] = 0xaa; // link up buffer_param[1] = rssi1; buffer_param[2] = rssi2; //printf("-- %s \n",bit1); } #if 0 if((!strncmp("VGA",_rx_data,3)) && n_read < 65 ){ buffer_rssi = strstr(_rx_data,"RSSI:"); buffer_rssi1 = strstr(_rx_data,"RSSI1:"); buffer_rssi2 = strstr(_rx_data,"RSSI2:"); 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); buffer_param[1]= rssi1; buffer_param[2]= rssi2; printf("rx %.2f 2 %.2f \n",rssi1,rssi2); buffer_param[0]=0x55; //no signal //printf("++%f \n",buffer_param[12]); } } else if(n_read >70){ //xinuo get signal //buffer=strstr(_rx_data,"%)"); buffer_rssi = strstr(_rx_data,"RSSI:"); buffer_rssi1 = strstr(_rx_data,"RSSI1:"); buffer_rssi2 = strstr(_rx_data,"RSSI2:"); if(buffer_rssi){ strncpy(bit,buffer_rssi1+6,6);//信号强度 rssi1 = atof(bit); strncpy(bit,buffer_rssi2+6,6);//信号强度 rssi2 = atof(bit); buffer_param[1]= rssi1; buffer_param[2]= rssi2; buffer_param[0]=0xAA; //flag gignal //printf("+++++++rx %.2f 2 %.2f +++++ \n",rssi1,rssi2); } } #endif } } }