Files

168 lines
4.3 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h> // gettimeofday
#include <sys/stat.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#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
}
}