#include #include #include // gettimeofday #include #include #include #include #include #include #include #include #include #include #include #include #include "serial.h" #include "uartinf.h" char _rx_data[1024]; int main (int argc, char *argv[]) { int n_read; //`int i; char *buffer; char *buffer_rssi; char *buffer_rssi1; char *buffer_rssi2; char *buffer_freq; // char *buffer_vag; int fd_param; float *buffer_param; // int len; n_read = uart_init(ROUTE_UART, "/dev/ttyAMA2", 115200, 'N'); //ttyPS0 调试串口 ttyPS1 网口座子旁的串口 if(n_read <=0 ) { printf("open /dev/ttyAMA2 failed\n"); return -1; } // int num; // int num1; // int vga; char bit[6]; float rssi; float rssi1; float rssi2; // int snr; int freq; // int vga1; int air_rssi1; int air_rssi2; // int err; int bitrate; //char bit1[6]; //char bit2[6]; //char bit3[4]; //char bit4[4]; 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); // freq=atoi(argv[1]); // printf("freq %d \n",freq); // buffer_param[3]=freq; // buffer_param[3] buffer_param[0] = 0x55; while(1){ n_read = uart_get(ROUTE_UART, _rx_data); //printf("%d\n",n_read); #if 0 if(n_read > 30 ){ printf("%s\n",_rx_data); //printf("%d\n",n_read); if((!strncmp("VGA",_rx_data,3)) && n_read < 65 ){ //没有配对上,打印底噪 printf("%s\n",_rx_data); //sscanf(_rx_data,"VGA:%d RSSI:%f RSSI1:%f RSSI2:%f",&num,&rssi,&rssi1,&rssi2); buffer_rssi = strstr(_rx_data,"RSSI:"); buffer_rssi1 = strstr(_rx_data,"RSSI1:"); buffer_rssi2 = strstr(_rx_data,"RSSI2:"); //buffer_freq = strstr(_rx_data,"POINT"); //printf("rssi2\r\n"); if( buffer_rssi && buffer_rssi1 && buffer_rssi2){ strncpy(bit,buffer_rssi+5,6); rssi = atof(bit); strncpy(bit,buffer_rssi1+6,6);//信号强度 rssi1 = atof(bit); strncpy(bit,buffer_rssi2+6,6);//信号强度 rssi2 = atof(bit); //sprintf(bit1,"%.2f",rssi1); //sprintf(bit2,"%.2f",rssi2); //memcpy(buffer_param,&bit1,6); //memcpy(buffer_param+2,&bit2,6); printf("rssi1:%.2f 2 %.2f\n",rssi1,rssi2); buffer_param[1] = rssi1; buffer_param[2] = rssi2; //buffer_param[4] = 0; //码流 buffer_param[0] = 0x55; //no signal printf("rrrr %x %x %x\n",buffer_param[1],buffer_param[2],&buffer_param[0]); } //printf("+++++%f %f %f %d\n", rssi,rssi1,rssi2,1434000); }else if(n_read > 70 ){ //希诺连上 printf("----"); //buffer=strstr(_rx_data,"%)"); 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 ){ printf("%s\n",buffer); //sscanf(_rx_data,"%d(%d) :VGA:%d RSSI:%f RSSI1:%f RSSI2:%f(air:vga:%d RSSI1: %d RSSI2: %d err:%d\%)%dkbps",&num,&num1,&vga,&rssi,&rssi1,&rssi2,&vga1,&air_rssi1,&air_rssi2,&err,&bitrate); //strncpy(bit,buffer+2,4); //bit[4] = 0x00; //bit[5] = 0x00; //bitrate=atoi(bit);//码流 strncpy(bit,buffer_rssi+5,6); rssi = atof(bit); strncpy(bit,buffer_rssi1+6,6);//信号强度 rssi1 = atof(bit); strncpy(bit,buffer_rssi2+6,6);//信号强度 rssi2 = atof(bit); //memcpy(buffer_param,&bit1,6); //memcpy(buffer_param+2,&bit2,6); //memcpy(buffer_param+4,&bit4,4); printf("rssi1 %f rssi2 %f freq %d \n",rssi1,rssi2,freq); buffer_param[1] = rssi1; buffer_param[2] = rssi2; buffer_param[0] = 0xaa; //signal //if(bitrate / 10000){ // buffer_param[4] = (float)(bitrate/100); //}else { // buffer_param[4] = (float)bitrate; //} } } } #endif } }