#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 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 0){ if(strncmp(_rx_data+2,"^DAPRI:",7)==0){ strncpy(buffer,_rx_data,n_read); len=n_read; }else if(len >=54 && len <178 ){ strncpy(buffer+len,_rx_data,n_read); len+=n_read; } if(len > 178){ printf("%s\n",buffer); len =0; rx1=strstr(buffer,"^DAPRI:"); get_rx1_dbm(rx1); rx2 = strstr(buffer+20,"^DAPRI:"); get_rx2_dbm(rx2); rssi1= atoi(dbm1); rssi2= atoi(dbm2); buffer_param[1] = rssi1; buffer_param[2] = rssi2; //memcpy(buffer_param,freq,10); //memcpy(buffer_param+10,dbm1,5); //memcpy(buffer_param+15,dbm2,5); } } #if 0 ip_str=strstr(_rx_data,argv[2]); //ip_str=strstr(_rx_data,"192.168.1.15"); 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; } } } #endif #if 0 if(n_read > 0){ ip_str=strstr(_rx_data,argv[2]); //ip_str=strstr(_rx_data,"192.168.1.15"); 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 } } }