Files

204 lines
4.1 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"
#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
}
}
}