<?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=30&amp;t=2674&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-03-28T00:43:50+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=2674&amp;mode</id>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-03-28T00:43:50+01:00</updated>
<published>2013-03-28T00:43:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32163#p32163</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32163#p32163"/>
<title type="html"><![CDATA[Re: parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32163#p32163"><![CDATA[
[syntax=c]const char* PATTERN_DSL_UP = &quot;DSL UP&quot; PROGMEM;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 28 mar 2013, o 00:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-03-28T00:32:02+01:00</updated>
<published>2013-03-28T00:32:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32162#p32162</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32162#p32162"/>
<title type="html"><![CDATA[Re: parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32162#p32162"><![CDATA[
Ja bym przede wszystkim powiedział, że robisz straszną rzecz próbując definiować STRING do porównania nie tylko że w pamięci RAM to jeszcze na stosie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">                char command&#91;&#93;=&quot;DSL State&quot;;</div><br /><br />baaaardzo źle .... wyżej kolega podał ci wskazówkę - wzorce do porównania zrób w zmiennych globalnych przede wszystkim a najlepiej w pamięci FLASH. Do porównania zamiast własnych karkołomnych pętli sprawdzających znak po znaku użyj funkcji - takich jakie masz opisane w Zielonej książce .... w funkcji do parsowania ....<br /><br />No a to :<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">                char buf&#91;100&#93;;</div><br /><br />to już wręcz zabójstwo dla stosu <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 mar 2013, o 00:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomwisnia]]></name></author>
<updated>2013-03-27T23:54:43+01:00</updated>
<published>2013-03-27T23:54:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32161#p32161</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32161#p32161"/>
<title type="html"><![CDATA[Re: parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=32161#p32161"><![CDATA[
hmm niestety kompletna klapa niestety nie mam pojęcia jak  zrobić to parsowanie danych z modemu coś tam nabazgrałem ale nici z tego[syntax=c]void parse_uart_data( char * pBuf ) {<br /><br /><br />char command[]=&quot;DSL State&quot;;<br />char buf[100];<br /><br /><br />     register char c;<br /><br /><br /><br />     while ((c = *pBuf++) )<br />     {<br />     char i;<br />     for (i=0; i&gt;15; i++)<br />     {<br />     buf[i]=c ;<br />     }<br /><br />      }<br /><br />       char  *str = strstr(buf,command);<br />       lcd_locate(0,0);<br />       lcd_str( str );<br /><br />}[/syntax] Proszę szanownych kolegów może jakiś przykładowy kod ???<br />Np. chciałbym wyświetlić na lcd po wysłaniu do modemu komendy : show dsl stat <br />czy modem jest synchronizowany czyli Down lub Up.<br />Jak na razie tylko tyle docelowo chciałbym sobie wyświetlić więcej parametrów łącza takie jak :SNR ATT PWR.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=183">tomwisnia</a> — 27 mar 2013, o 23:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2013-03-26T23:01:57+01:00</updated>
<published>2013-03-26T23:01:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=31985#p31985</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=31985#p31985"/>
<title type="html"><![CDATA[Re: parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=31985#p31985"><![CDATA[
O ile dobrze zrozumiałem twój problem to ja bym zrobił tak, że bym zapisał do osobnych stałych wzorce stringów jakich oczekujesz i znak po znaku je wykrywał, jak wykryjesz pełną frazę, to wyświetlasz na LCD odpowiedni napis.<br /><br />Realizacja: w pętli for z odpowiednią flagą wewnątrz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 26 mar 2013, o 23:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomwisnia]]></name></author>
<updated>2013-03-26T22:58:00+01:00</updated>
<published>2013-03-26T22:58:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=31983#p31983</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=31983#p31983"/>
<title type="html"><![CDATA[parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2674&amp;p=31983#p31983"><![CDATA[
Witam,<br />mam problem z obróbką danych które odbieram z modemu po rs232.<br />za pomocą komendy :<br />show dsl stat<br /><a href="http://imageshack.us/photo/my-images/707/nowyobrazmapybitowejmw.jpg/"  class="postlink"><img src="http://img707.imageshack.us/img707/8995/nowyobrazmapybitowejmw.jpg" alt="Obrazek" /></a><br /><br />Uploaded with <a href="http://imageshack.us"  class="postlink">ImageShack.us</a><br />chciałbym wyświetlić na lcd niektóre dane które zwróci mi modem w odpowiedzi.<br />Np. w odpowiedzi chciałbym wyświetlić DSL State - Down lub UP<br /><br />Oto moje wypociny:<br />[syntax=c]<br />// pętla główna programu<br />while(1) {<br /><br />if(  klawisz_wcisniety()  )  // jeśli klawisz wciśnięty<br />{<br />uart_puts(&quot;show dsl stat\r&quot;);<br /><br />UART_RX_STR_EVENT(bufor);// zdarzenie odbiorcze UART<br /><br />}<br /><br />//----------------- funkcja do analizowania danych odebranych z UART ------------------------------<br />void parse_uart_data( char * pBuf ) {<br /><br />lcd_locate(0,0);<br />lcd_str( pBuf );<br /><br />}<br />[/syntax]<br />Jak na razie do tego momentu jest to szkielet mojego programu. (  na lcd wyświetla sie komenda którą wysłałem do modemu ponieważ modem ma włączone Echo lub inny losowy napis) <br />Proszę o pomoc ewentualnie jakieś wskazówki jak można obrobić ten łańcuch tekstowy który zwraca modem w odpowiedzi.<br />Próbowałem użyć funkcji strstr ale niestety tak się nic nie wyświetla :<br />[syntax=c]<br />void parse_uart_data( char * pBuf ) {<br />    <br />    char str[] = &quot;DSL State &quot;;<br />    char * wynik = strstr( pBuf, str );<br />    lcd_locate(0,0);<br />    lcd_str( wynik );<br />[/syntax]<br />Dzięki pozdro<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=183">tomwisnia</a> — 26 mar 2013, o 22:58</p><hr />
]]></content>
</entry>
</feed>