void send_comand(USART_TypeDef* USARTx, char * ss) { uint8_t i=0; while(ss[i]){ send_Uart(USARTx,ss[i]); i++; } }
void send_int_Usart(long c) { unsigned long d=10000; char temp,flag=0; do { c=c%d; d=d/10; temp=c/d; if(temp!=0) flag=1; if(flag==1) send_Uart(USART3,temp+'0'); } while(d>1); }
void webif_data(uint8_t id, eth_frame_t *frame, uint16_t len) { ip_packet_t *ip = (void*)(frame->data); tcp_packet_t *tcp = (void*)(ip->data); char *req = (void*)tcp_get_data(tcp); char *buf = (void*)(tcp->data), *buf_ptr = buf; char *url, *p, *params, *name, *value; if(!len) return; if( (memcmp_P(req, PSTR("GET "), 4) == 0) && ((p = strchr(req + 4, ' ')) != 0) ) { url = req + 4; *p = 0; if((params = strchr(url, '?'))) *(params++) = 0; if(strcmp_P(url, PSTR("/")) == 0) { if(params==NULL) { send_Uart_str(" No params!"); send_Uart(13); }else { send_Uart_str(" With params!"); send_Uart(13); } while(params) { if((p = strchr(params, '&'))) *(p++) = 0; name = params; if((value = strchr(name, '='))) *(value++) = 0; if( (strcmp_P(name, PSTR("led")) == 0 ) && value ) { if(strcmp_P(value, PSTR("on")) == 0) led_on() else if(strcmp_P(value, PSTR("off")) == 0) led_off() } else if( (strcmp_P(name, PSTR("lang")) == 0) && value ) { if(strcmp_P(value, PSTR("en")) == 0) lang_ru = 0; else if(strcmp_P(value, PSTR("ru")) == 0) lang_ru = 1; } params = p; } fill_buf_p(&buf_ptr, webif_200_header); fill_buf_p(&buf_ptr, PSTR("<pre>")); if(!lang_ru) { fill_buf_p(&buf_ptr, PSTR("<p align='right'>[<b>EN</b> | " "<a href='/?lang=ru'>RU</a>]</p>")); } else { fill_buf_p(&buf_ptr, PSTR("<p align='right'>[<a href='/?lang=en'>EN</a> | " "<b>RU</b>]</p>")); } if((!led_state)&&(!lang_ru)) fill_buf_p(&buf_ptr, PSTR("Led is OFF. Turn <a href='/?led=on'>on</a>.")); else if(led_state &&(!lang_ru)) fill_buf_p(&buf_ptr, PSTR("Led is ON. Turn <a href='/?led=off'>off</a>.")); else if((!led_state)&&(lang_ru)) fill_buf_p(&buf_ptr, PSTR("Светодиод выключен. <a href='/?led=on'>Включить</a>.")); else if(led_state &&(lang_ru)) fill_buf_p(&buf_ptr, PSTR("Светодиод включен. <a href='/?led=off'>Выключить</a>.")); fill_buf_p(&buf_ptr, PSTR("</pre>")); }
int main(void) { //AT+CGDCONT=1,"IP","www.kyivstar.net" char test[37]={'A','T','+','C','G','D','C','O','N','T','=','1',',','"','I','P' ,'"',',','"','w','w','w','.','k','y','i','v','s','t','a','r','.','n','e','t','"','\r' }; init(); send_comand(USART2,test); send_comand(USART2,"\r\n"); /* while(1) { if(strcmp(uart1_rx_buf,"MODEM:STARTUP")==0){ send_str2(uart1_rx_buf); uart1_rx_bit=0; send_str2("\n"); send_str2("1if\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } } */ while(1) { if(strcmp(uart1_rx_buf,"+PBREADY")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"2if_+PBREADY\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } } send_comand(USART2,"*******************************\r\n"); send_comand(USART2,test); while(1) { send_comand(USART1,"AT+CREG?\r"); delay(10000000); if(strcmp(uart1_rx_buf,"+CREG: 0,3OK")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); } if(strcmp(uart1_rx_buf,"+CREG: 0,1OK")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } } while(1) { send_comand(USART1,"AT+XISP=0\r"); delay(10000000); if(strcmp(uart1_rx_buf,"OK")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"AT+XISP=0\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } } while(1) { send_comand(USART1,test); delay(10000000); if(strcmp(uart1_rx_buf,"OK")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"SsulkaOK\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } } while(1) { send_comand(USART1,"at+xiic=1\r"); delay(10000000); if(strcmp(uart1_rx_buf,"OK")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"at+xiic=1\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } } //send_str1("at+tcpsetup=0,89.22.47.180,8056\r"); send_comand(USART1,"at+tcpsetup=0,89.22.47.180,8056\r"); while(1) { delay(10000000); if(strcmp(uart1_rx_buf,"OK")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"at+tcpsetup=0,89.22.47.180,8056\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); } if(strcmp(uart1_rx_buf,"OK+TCPSETUP:0,OK")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"+TCPSETUP:0,OK\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } if(strcmp(uart1_rx_buf,"+TCPSETUP:0,OK")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"+TCPSETUP:0,OK\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } if(strcmp(uart1_rx_buf,"+TCPSETUP:0,FAIL")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"+TCPSETUP:0,FAIL\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } if(strcmp(uart1_rx_buf,"+TCPSETUP:Error 1")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"+TCPSETUP:Error 1\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } } while(1) { send_comand(USART1,"AT+TCPSEND=0,253\r"); delay(10000000); if(strcmp(uart1_rx_buf,">")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"1if\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); while(1) { //send_comand(USART1,"0123456789\r"); send_comand(USART2,"11111111111111111111111\r\n"); while(1){ if(uart3_rx_bit>250){break;} if (USART3->SR & USART_SR_RXNE){ uart3_rx_buf[uart3_rx_bit]=USART3->DR; uart3_rx_bit++;} //send_comand(USART2,"111\r\n"); } send_comand(USART1, uart3_rx_buf); send_Uart(USART1," "); send_Uart(USART1,"*"); send_Uart(USART1,"\r"); //send_comand(USART1,"\r"); delay(10000000); if(strcmp(uart1_rx_buf,"OK+TCPSEND:0,253")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"11111if\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } if(strcmp(uart1_rx_buf,"OK+TCPSEND:0,253+TCPCLOSE:0,Link Closed")==0){ send_comand(USART2,uart1_rx_buf); uart1_rx_bit=0; send_comand(USART2,"12222if\r\n"); memset(uart1_rx_buf, 0, sizeof(uart1_rx_buf)); break; } send_comand(USART2,uart1_rx_buf); send_comand(USART2,"1112121212121211212if\r\n"); break; } break; } } /* send_comand(USART2,"11111111111111111111111\r\n"); while(1){ if(uart3_rx_bit>250){break;} if (USART3->SR & USART_SR_RXNE){ uart3_rx_buf[uart3_rx_bit]=USART3->DR; uart3_rx_bit++;} //send_comand(USART2,"111\r\n"); } send_comand(USART2, uart3_rx_buf); */ send_comand(USART2,"11111111111111111111111\r\n"); }
void send_Uart_str(USART_TypeDef* USARTx, unsigned char *s) { while (*s != 0) send_Uart(USARTx, *s++); }