<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=7&amp;t=14900&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-03-20T18:08:24+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=7&amp;t=14900&amp;mode</id>
<entry>
<author><name><![CDATA[Sucyn]]></name></author>
<updated>2016-03-20T18:08:24+01:00</updated>
<published>2016-03-20T18:08:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156632#p156632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156632#p156632"/>
<title type="html"><![CDATA[Re: Przeszukiwanie stron internetowych za pomocą WIFI232-T.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156632#p156632"><![CDATA[
Jeszcze mam takie pytanie, dla czego kolejne zapytania do strony internetowej muszą być wysyłane z ok 1500ms przerwą? Czy to wina modułu, mojej sieci, serwera hostingowego czy może programu, obsługi uart? Np: wysyłając dwa zapytania jedno po drugim serwer przetwarza tylko to pierwsze, drugie jest pomijane.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10670">Sucyn</a> — 20 mar 2016, o 18:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sucyn]]></name></author>
<updated>2016-03-20T00:07:16+01:00</updated>
<published>2016-03-20T00:07:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156586#p156586</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156586#p156586"/>
<title type="html"><![CDATA[Re: Przeszukiwanie stron internetowych za pomocą WIFI232-T.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156586#p156586"><![CDATA[
Dzięki <strong>icer_cmg</strong>!<br />Twój kod nie działał od razu, ale wystarczyło podmienić inicjalizację usarta z przekazaną szybkością  &quot;USART_Init(38400);&quot; na &quot;USART_Init(__UBRR);&quot; i teraz wszystko śmiga!!!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10670">Sucyn</a> — 20 mar 2016, o 00:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[icer_cmg]]></name></author>
<updated>2016-03-19T22:12:45+01:00</updated>
<published>2016-03-19T22:12:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156568#p156568</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156568#p156568"/>
<title type="html"><![CDATA[Re: Przeszukiwanie stron internetowych za pomocą WIFI232-T.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156568#p156568"><![CDATA[
Wycinek kody dla innej stronki, ale możesz się wzorować. Zmień tpstr.delim1 i tpstr.delim2 na swoje. Proponuję też na początek odkomentować  test<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/wdt.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;MK_USART/mkuart.h&quot;<br /><br /><br />typedef struct {<br />char *delim1;<br />uint8_t d1len;<br />char * delim2;<br />uint8_t d2len;<br />char outbuf&#91;31&#93;;<br />int8_t status;<br />} TPSTR;<br /><br /><br />TPSTR tpstr;<br /><br /><br /><br /><br />// deklaracje funkcji<br /><br /> uint8_t strParse(int znak, TPSTR * wpstr);<br /><br /><br /><br />//************ główna funkcja main() programu *****************************<br />int main(void) {<br />// inicjalizacja UART<br />USART_Init(9600);<br />lcd_init();<br /><br /><br /><br />sei();<br />uart_puts(&quot;GET http://pogoda.onet.pl HTTP/1.0\r\n\r\n&quot;);<br />tpstr.status=0;<br />tpstr.delim1=&quot;\x63\x61: &quot;;<br />tpstr.d1len = strlen(tpstr.delim1);<br />tpstr.delim2 = &quot;\x09&quot;;;<br />tpstr.d2len = strlen (tpstr.delim2);<br />uint8_t id=0;<br /><br />while(1){<br /><br />int cn=uart_getc();<br /><br />//lcd_putc(cn);  //test<br /><br />if (strParse (cn, &amp;tpstr)){<br />id++;<br /><br />if (1==id){<br />lcd_str(tpstr.outbuf);<br />tpstr.status=0;<br />      <br />}<br />}<br /><br />}<br />}<br /><br /><br />uint8_t strParse(int znak, TPSTR * wpstr){<br />static uint8_t idx1, idx2, strend;<br />char mzn=znak;<br /><br />if( wpstr-&gt;status &lt;0 || znak &lt;0) return 0;<br />if ( !wpstr-&gt;status){<br />char *dml1 = wpstr-&gt;delim1;<br />if (mzn == *(dml1+idx1)){<br />idx1++;<br />if( idx1 == wpstr-&gt;d1len){<br />wpstr-&gt;status=1;<br />wpstr-&gt;outbuf&#91;0&#93;=9;<br />idx1=0;<br />idx2=0;<br /><br />}<br />}else idx1=0;<br /><br />}else if (wpstr-&gt;status){<br />wpstr-&gt;outbuf&#91;idx1++&#93;=mzn;<br />if(idx1 &gt;30) idx1=0;<br />char *dml2 = wpstr-&gt;delim2;<br />if (mzn == *(dml2+idx2)){<br />idx2++;<br />if (1==wpstr-&gt;status){<br /><br />wpstr-&gt;status=2;<br />strend = idx1-idx2;<br />}<br />if (idx2 == wpstr-&gt;d2len){<br />idx1=0;<br />idx2=0;<br />wpstr-&gt;status = -1;<br />wpstr-&gt;outbuf&#91;strend&#93;=0;<br />return 1;<br />}<br />}else {<br />idx2=0;<br />wpstr-&gt;status =1;<br /><br />}<br />}<br />return 0;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1636">icer_cmg</a> — 19 mar 2016, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sucyn]]></name></author>
<updated>2016-03-19T16:25:42+01:00</updated>
<published>2016-03-19T16:25:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156526#p156526</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156526#p156526"/>
<title type="html"><![CDATA[Przeszukiwanie stron internetowych za pomocą WIFI232-T.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14900&amp;p=156526#p156526"><![CDATA[
Wzorując się ma mechaniźmie działania programu P. Mirka z poradnika &quot;WIFI - CLIENT - WWW/PHP&quot; spróbowałem zrobić podobne narzędzie współpracujące bazą danych i skryptem php na mojej stronie sucyn.c0.pl oraz (w późniejszym czasie) aplikacją na androida, której temat poruszałem niedawno na tym forum <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Problemem stało się napisanie programu na at32, która ma za zadanie:<br />1)wysłać zapytanie na moją stronę internetową przesyłając w adresie url odpowiednią zmienną do poprawnej reakcji skryptu php  <br />2)ze strumienia danych zwrotnych ze strony ma wyszukać pierwszy znacznik &quot;#&quot;, następnie kolejne znaki wpisać do tablicy znaków aż do momentu trafienia na drugi znacznik &quot;#&quot;<br />3) utworzoną w ten sposób tablicę znaków ma porównać z inna ustaloną w programie tablicą <br />4)jeśli porównanie nie zwróci wartości &quot;NULL&quot; to program wysyła na stronę kolejną zmienną która zastępuje wyszukiwaną dotychczas w bazie danych<br /><br />Oto kod dla at32:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;string.h&gt;<br /><br />#include &quot;MK_USART/mkuart.h&quot;<br /><br />//Funkcja badająca stronę<br />uint8_t check(void);<br /><br />//Pętla glowna<br />int main(void)<br />{<br />USART_Init(__UBRR);<br /><br />sei();<br /><br />_delay_ms(200);<br /><br />while(1)<br />{<br />//jesli znaleziono text pomiedzy znacznikami # to wyslij dane &quot;zmiana=ok&quot; na serwer<br />if(check())uart_puts(&quot;GET http://sucyn.c0.pl/index.php?zmiana=ok HTTP/1.0\r\n\r\n&quot;);<br /><br />}<br /><br /><br />}<br /><br />uint8_t check(void)<br />{<br />int cn=0;<br />uint16_t i=0;<br />char znak='\0', slowo&#91;100&#93;=&quot;\0&quot;, szukane&#91;&#93;=&quot;brak&quot;;<br /><br />//zapytanie do strony<br />uart_puts(&quot;GET http://sucyn.c0.pl/index.php?sprawdz=sprawdz HTTP/1.0\r\n\r\n&quot;);<br /><br />//odbieraj po 1 znaku z bufora UART dopuki nie trafi na znacznik #<br />while(znak!='#')<br />{<br />cn=uart_getc();<br />znak=cn;<br />}<br /><br />znak='\0';<br /><br />//odbieraj po 1 znaku z bufora UART i dopisuj go do tablicy &quot;slowo&quot; dopuki nie trafi na drugi znacznik #<br />while(znak!='#')<br />{<br />cn=uart_getc();<br />znak=cn;<br />slowo&#91;i++&#93;=znak;<br />                if(i&gt;99)i=0;<br />}<br /><br />_delay_ms(500);<br /><br />//jesli porownano prawidlowo otrzymany napis z szukanym to zwracaj 1<br />if(strstr( slowo, szukane )!=NULL)return 1;//Zwraca wskaźnik na pierwsze wystąpienie str2 w łańcuchu str1 lub NULL, jeśli szukany ciąg znaków nie został odnaleziony.<br /><br />return 0;<br />}[/syntax]<br /><br />A tu kod skryptu na serwerze:<br />[syntax=php]&lt;?php<br />// Przechwytywanie wartosci zmiennych z adresu url sucyn.c0.pl?.....<br />$sprawdz=$_GET&#91;'sprawdz'&#93;;<br />$zmiana=$_GET&#91;'zmiana'&#93;;<br /><br />/* Łączymy się z serwerem */<br />$link = mysqli_connect(<br /><br />            '***',  /* nazwa komputera, na którym działa MySQL */<br /><br />            '***',       /* nazwa użytkownika */<br /><br />            '***',   /* hasło */<br /><br />            '***');     /* domyślna baza danych */<br /><br /> <br /><br />if (!$link) <br />{<br /><br />   printf(&quot;Brak połączenia z serwerem MySQL. Kod błędu: %s\n&quot;, mysqli_connect_error());<br /><br />   exit;<br /><br />}<br /><br />// Ustawiamy kodowanie utf8<br />mysqli_query($link, &quot;SET CHARSET utf8&quot;);<br />// Ustawiamy polskie znaki<br />mysqli_query($link, &quot;SET NAMES 'utf8' COLLATE 'utf8_polish_ci'&quot;);<br /><br /><br />// Aktualizujemy tabele &quot;test&quot;, w niej zmiana w kolumnie &quot;stan&quot; w wierszu gdzie &quot;obiekt='zmiana' wedug nadeslanej wartosci &quot;<br />if($zmiana!=&quot;&quot;) mysqli_query($link, &quot;UPDATE test SET stan='$zmiana' WHERE obiekt='zmiana'&quot;);<br /><br /><br />//Wyswietlanie konkretnej danej z bazy<br />if ($sprawdz==&quot;sprawdz&quot;)<br />{<br />    //wyszukaj zmienna do wyswietlenia<br />    $result = mysqli_query($link,&quot;SELECT stan FROM test WHERE obiekt='zmiana'&quot;);<br />    $row = mysqli_fetch_assoc($result);<br />    $a1=$row&#91;'stan'&#93;;<br /><br />//wyswietl znienna    <br />echo&lt;&lt;&lt;END<br />#$a1#<br />END;<br />}<br /><br />/* Zamykamy połączenie z bazą */<br />mysqli_close($link);<br /><br />?&gt;[/syntax]<br /><br />W bibliotece MK_USART zmieniłem wielkość bufora nadawczego i odbiorczego na 100 oraz ze względu na zastosowany kwarc 16MHz szybkość UART'a na 38400. Moduł WIFI skonfigurowany chyba dobrze bo prawidłowo wysyła zapytania do serwera-sprawdzone.<br />Problemem jest pierwsza pętla wyszukująca pierwszy znacznik &quot;#&quot; ponieważ nigdy się nie kończy tak jak by nie znajdowała tego znacznika.<br />Proszę o pomoc w znalezieniu przyczyny tego problemu bo wydaje mi się że nie rozumiem do końca zasady działania funkcji &quot;uart_getc()&quot; i pewnie tu coś pomieszałem....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10670">Sucyn</a> — 19 mar 2016, o 16:25</p><hr />
]]></content>
</entry>
</feed>