#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]; char buffer_rf1[13]; char buffer_rf2[13]; 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 setup_lc6600(struct lc6600_param *pparam){ int n_read; char *read_ok; char str[30]; uart_write(ROUTE_UART, "AT+CFUN=0\r"); n_read = uart_read(ROUTE_UART, _rx_data); read_ok = strstr(_rx_data,"OK"); if(read_ok == NULL){ printf("can not exce AT+CFUN=0"); } sleep(1); //password sprintf(str,"AT^DAPI=%d\r",pparam->password); uart_write(ROUTE_UART, str); printf("%s\n",str); n_read = uart_read(ROUTE_UART, _rx_data); read_ok = strstr(_rx_data,"OK"); if(read_ok == NULL){ printf("can not exce AT^DAPI"); } sleep(1); // 1 center 2 station sprintf(str,"AT^DDTC=%d\r",pparam->ap_sta); uart_write(ROUTE_UART, str); printf("%s\n",str); n_read = uart_read(ROUTE_UART, _rx_data); read_ok = strstr(_rx_data,"OK"); if(read_ok == NULL){ printf("can not exce AT^DDTC"); } sleep(1); // sprintf(str,"AT^DDTC=%d\r",pparam->ap_sta); uart_write(ROUTE_UART, "AT^DSTC=2\r"); printf("AT^DSTC\n"); n_read = uart_read(ROUTE_UART, _rx_data); read_ok = strstr(_rx_data,"OK"); if(read_ok == NULL){ printf("can not exce AT^DDSTC"); } sleep(1); // 2 5M 3 10M 4 15M 5 20M "25" dbm sprintf(str,"AT^DRPS=,%d,\"%d\"\r",pparam->bw,pparam->power); uart_write(ROUTE_UART, str); printf("%s\n",str); n_read = uart_read(ROUTE_UART, _rx_data); read_ok = strstr(_rx_data,"OK"); if(read_ok == NULL){ printf("can not exce AT^DRPS\n"); } sleep(1); // 01 800M 04 1.4G 08 2.4G sprintf(str,"AT^DAOCNDI=0%d\r",pparam->freq); uart_write(ROUTE_UART, str); printf("%s\n",str); n_read = uart_read(ROUTE_UART, _rx_data); read_ok = strstr(_rx_data,"OK"); if(read_ok == NULL){ printf("can not exce AT^DAOCNDI\n"); } sleep(1); sprintf(str,"AT^NETIFCFG=2,\"192.168.2.%d\"\r",pparam->ip); uart_write(ROUTE_UART, str); printf("%s\n",str); n_read = uart_read(ROUTE_UART, _rx_data); read_ok = strstr(_rx_data,"OK"); if(read_ok == NULL){ printf("can not exce AT^DAOCNDI\n"); } sleep(1); uart_write(ROUTE_UART, "AT+CFUN=1\r"); n_read = uart_read(ROUTE_UART, _rx_data); read_ok = strstr(_rx_data,"OK"); if(read_ok == NULL){ printf("can not exce AT+CFUN=1"); } } #if 1 int get_rx1_freq(char *rx1,char *ip_str){ char *s1; char *s2; char *s3; char *s4; int len; int i; char index[4]; s1=strchr(rx1,','); s2=strchr(s1+15,','); //s3=strchr(s2+3,','); //s4=strchr(s3+4,','); len= s2-s1-1; // printf("ip_str %s",ip_str); printf("len %d s2 %s\n",len,s2); for(i=0;i 0){ //ip_str=strstr(_rx_data,argv[2]); //ip_str=strstr(_rx_data,"192.168.1.15"); //*ip_str=argv[2]; //strncmp(ip,argv[2],12); memcpy(ip,argv[2],12); //printf("---%s %s \n",argv[2],ip); if(strncmp(_rx_data+2,"^DRPRI:",7)==0){ strncpy(buffer,_rx_data,n_read); len=n_read; // printf("len %d\n",len); }else if(len >=54 && len <178 ){ strncpy(buffer+len,_rx_data,n_read); len+=n_read; // printf("+n_rean %d\n ",len); } if(len > 178){ // printf("--%s\n",buffer); len =0; rx1=strstr(buffer,"^DRPRI:"); get_rx1_freq(rx1,ip); rx2 = strstr(buffer+20,"^DRPRI:"); get_rx2_freq(rx2,ip); //buffer_param[1] = dbm1; //buffer_param[2] = dbm2; printf("rf %s rf2 %s \n",dbm1,dbm2); rssi1=atoi(dbm1); rssi2=atoi(dbm2); //printf("rssi1 %x %x \n",rssi1,rssi2); buffer_param[1]=rssi1; buffer_param[2]=rssi2; //memcpy(buffer_param,freq,10); //memcpy(buffer_param+1,dbm1,4); //memcpy(buffer_param+2,dbm2,4); //buffer_param[20] = 1; } //memcpy(rx1,ip_str+18,20); //printf("rx1: %s \n",rx1); #if 0 if(ip_str){ //buffer_param[0] = 0x55; if((*(ip_str+14)) == '1'){ memcpy(rx1,ip_str+18,3); dbm1 = atoi(rx1); printf("++dbm1:%d\n",dbm1); buffer_param[1] = dbm1; } if((*(ip_str+14)) == '2'){ memcpy(rx2,ip_str+18,3); dbm2 = atoi(rx2); printf("++dbm2:%d\n",dbm2); buffer_param[2] = dbm2; } } } // else{ // printf("no signal\n"); // buffer_param[0] = 0xAA; // } #endif } } } }