147 lines
3.3 KiB
C
Executable File
147 lines
3.3 KiB
C
Executable File
#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;
|
|
int fd_param;
|
|
int *buffer_param;
|
|
|
|
int len;
|
|
n_read = uart_init(ROUTE_UART, "/dev/ttyAMA4", 115200, 'N');
|
|
if(n_read <=0 ) {
|
|
printf("open /dev/ttyAMA4 failed\n");
|
|
return -1;
|
|
}
|
|
uart_write(ROUTE_UART, "AT^DRPS?\r");//读频率
|
|
n_read = uart_read(ROUTE_UART, _rx_data);
|
|
printf("%s\n",_rx_data);
|
|
while(1){
|
|
n_read = uart_get(ROUTE_UART, _rx_data);
|
|
|
|
if(n_read >0){
|
|
printf("%s\n",_rx_data);
|
|
}
|
|
}
|
|
|
|
|
|
# if 0
|
|
|
|
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);
|
|
|
|
|
|
while(1){
|
|
|
|
n_read = uart_get(ROUTE_UART, _rx_data);
|
|
|
|
if(n_read >0){
|
|
printf("%s\n",_rx_data);
|
|
|
|
if(!strncmp("VGA",_rx_data,3)){
|
|
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:");
|
|
|
|
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);
|
|
|
|
buffer_param[0] = rssi;
|
|
buffer_param[1] = rssi1;
|
|
buffer_param[2] = rssi2;
|
|
buffer_param[4] = 1434000;
|
|
buffer_param[6] = 0;
|
|
}
|
|
|
|
printf("+++++%f %f %f %d\n", rssi,rssi1,rssi2,1434000);
|
|
|
|
}else{
|
|
|
|
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 && buffer && n_read >30){
|
|
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);
|
|
bitrate=atoi(bit);
|
|
|
|
strncpy(bit,buffer_rssi+5,4);
|
|
rssi = atof(bit);
|
|
strncpy(bit,buffer_rssi1+6,4);
|
|
rssi1 = atof(bit);
|
|
|
|
strncpy(bit,buffer_rssi2+6,4);
|
|
rssi2 = atof(bit);
|
|
|
|
|
|
|
|
printf("%f %f %f %d %d %d %d %d %d\n",rssi,rssi1,rssi2,snr,freq,vga1,air_rssi1,air_rssi2,bitrate);
|
|
buffer_param[0] = rssi;
|
|
buffer_param[1] = rssi1;
|
|
buffer_param[2] = rssi2;
|
|
buffer_param[3] = 30;
|
|
buffer_param[4] = 1434000;
|
|
buffer_param[5] = bitrate;
|
|
buffer_param[6] = 1;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
}
|