#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]; struct lc6600_param{ int password; int freq; int power; int bw; int ap_sta; int ip; int setup; }; char index1[10]; 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 *s1; char *s2; char *s3; char *s4; int len; int i; s1=strchr(rx1,','); s2=strchr(s1+1,','); s3=strchr(s2+1,','); s4=strchr(s3+1,','); len= s2-s1-1; for(i=0;i 50){ if((strncmp(_rx_data+5,"PRI:",4)==0)||(strncmp(_rx_data+4,"PRI:",4)==0)||(strncmp(_rx_data+3,"PRI:",4)==0)||(strncmp(_rx_data+2,"PRI:",4)==0)||(strncmp(_rx_data+1,"PRI:",4)==0)||(strncmp(_rx_data+6,"PRI:",4)==0)){ strncpy(buffer,_rx_data,n_read); //len=n_read; //}else { //else if(len >=54 && len <178 ){ // strncpy(buffer+len,_rx_data,n_read); // len+=n_read; //} //if(len > 100){ rx1=strstr(buffer,"PRI:");//^DAPRI if(rx1){ //printf("rx1 %s\n",rx1); get_rx1_dbm(rx1); }else{ printf("rx1 null \n"); } rssi1= atoi(dbm1); rssi2= atoi(dbm2); buffer_param[1] = rssi1; buffer_param[2] = rssi2; //len =0; } else { printf("no DAPRI \n"); } } else { printf("n_read<50 \n"); } } }else if(lc6600.ap_sta == 2){ uart_write(ROUTE_UART, "AT^DRPR=1\r"); while(1){ n_read = uart_read(ROUTE_UART, _rx_data); printf("%s\n",_rx_data); if(n_read > 30){ if(strncmp(_rx_data+2,"^DRPRI:",7)==0){ strncpy(buffer,_rx_data,n_read); rx2=strstr(buffer,"^DRPRI:");//^DAPRI if(rx2){ //printf("rx1 %s\n",rx1); get_rx2_dbm(rx2); }else { printf("no3\n"); } rssi1= atoi(dbm1); rssi2= atoi(dbm2); buffer_param[1] = rssi1; buffer_param[2] = rssi2; }else { printf("no2\n"); } }else{ printf("no1\n"); } } } }