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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=31&amp;t=4050&amp;mode</id>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-09-03T11:43:42+01:00</updated>
<published>2013-09-03T11:43:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47998#p47998</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47998#p47998"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47998#p47998"><![CDATA[
Dzięki Mirku za wszelkie sugestie, o tym, jak to ładnie określiłeś obsługiwaniu błędów cały czas myślę i spędza mi to sen z powiek <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />. Bo projekt poważny i nie ma to tamto <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br />30 urządzeń będzie na raz włączanych, i po pierwsze musi być bardzo dobrze ogarnięte które ma problem, po drugie, w przypadku jak padnie coś to nie chciał bym za każdym razem jeździć do Ustki <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br /><br />Do tych timeoutów świetnie nada się softwerowy timer, <br />będę was zamęczał moimi wypocinami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 3 wrz 2013, o 11:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-09-03T10:53:29+01:00</updated>
<published>2013-09-03T10:53:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47985#p47985</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47985#p47985"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47985#p47985"><![CDATA[
taki mały hint <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zamiast tego <br /><br />[syntax=c]for(uint8_t i=0;i&lt;10;i++){<br />                bufor_komunikat&#91;i&#93;=0;<br />        }[/syntax]<br /><br />korzystaj pan z bibliotek wbudowanych, będzie łatwiej, prościej, lepiej, szybciej i przyjemniej ... o np tak<br /><br />[syntax=c]memset( bufor_komunikat, 0, 10 );[/syntax]<br /><br />albo:<br /><br />[syntax=c]memset( bufor_komunikat, 0, sizeof(bufor_komunikat) );[/syntax]<br /><br />bardzo przydatna funkcja w wielu przypadkach - a leży gotowa i się marnuje - no nie ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 wrz 2013, o 10:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-09-03T10:04:52+01:00</updated>
<published>2013-09-03T10:04:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47978#p47978</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47978#p47978"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47978#p47978"><![CDATA[
Nie wiem czy nie przekombinowałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]/*<br /> * wizfi.c<br /> *<br /> *  Created on: 2 wrz 2013<br /> *      Author: Sylwq<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;string.h&gt;<br /><br />#include &quot;../LCD/lcd44780.h&quot;<br />#include &quot;../MK_USART/mkuart.h&quot;<br />#include &quot;wizfi.h&quot;<br /><br /><br />char bufor_komunikat&#91;10&#93;;<br />void komunikat(void){<br /><br />uint8_t sw = 1;<br />while(sw){<br />UART1_RX_STR_EVENT(bufor_komunikat);// zdarzenie odbiorcze UART1<br />lcd_locate(1,0);<br />lcd_str(bufor_komunikat);<br />if(!(strcmp(bufor_komunikat,&quot;&#91;OK&#93;&quot;)))sw = 0;<br />}<br />for(uint8_t i=0;i&lt;10;i++){<br />bufor_komunikat&#91;i&#93;=0;<br />}<br />}<br /><br />void WizFi_init(void){<br />uart_puts(1,&quot;WA+WD\r&quot;);<br />komunikat();<br />uart_puts(1,&quot;AT+WM\r&quot;);<br />komunikat();<br />}[/syntax]<br /><br />A tu main.c<br />[syntax=c]/*<br /> * main.c<br /> *WizFi-Display on DI162<br /> *  Created on: 28 sie 2013<br /> *      Author: Sylwester Taras<br /> */<br />#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 />#include &quot;AT_COMMAND/komendy_at.h&quot;<br />#include &quot;WizFi/wizfi.h&quot;<br />#include &quot;common.h&quot;<br /><br /><br />//definicje i deklaracje zmiennych globalnych<br />char bufor_uart0&#91;32&#93;;// bufor na potrzeby odebranych danych z UART0<br />char bufor_uart1&#91;32&#93;;// bufor na potrzeby odebranych danych z UART1<br /><br />uint8_t SetPointUP, SetPointDown;<br />uint8_t init_sw = 1;<br /><br />int main(void) {<br />DDRD |= (1&lt;&lt;PD7);// Podswietlenie<br />PORTD |= (1&lt;&lt;PD7);<br />DDRC |= UART_LED_PIN;<br />DDRC |= LED_PIN;<br />// ****** Inicjacja ********<br />USART0_Init( __UBRR0 );// inicjacja USART<br />USART1_Init( __UBRR1 );// inicjacja USART<br /><br />// rejestracja własnej funkcji do analizowania danych odebranych przez UART0<br />register_uart0_str_rx_event_callback( parse_uart_data );<br />// rejestracja własnej funkcji do analizowania danych odebranych przez UART1<br />register_uart1_str_rx_event_callback( czytaj_dane_z_uart1 );<br /><br />lcd_init();// Inicjacja LCD<br />lcd_str_P(PSTR(&quot;WizFi_Alfa&quot;));<br />_delay_ms(500);<br />// Włączenie globalnej obsługi przerywań<br />sei();<br /><br />uart_puts(0,&quot;WizFi OK\n\r&quot;);<br />uart_puts(1,&quot;WizFi OK\n\r&quot;);<br /><br />// *****************  pętla główna<br /><br />while(1){<br />if(init_sw){<br />lcd_locate(0,0);<br />lcd_str_P(PSTR(&quot;WizFi Init&quot;));<br />WizFi_init();<br />init_sw = 0;<br />lcd_locate(0,0);<br />lcd_str_P(PSTR(&quot;WizFi Init OK&quot;));<br />}<br /><br />UART0_RX_STR_EVENT(bufor_uart0);// zdarzenie odbiorcze UART0<br />UART1_RX_STR_EVENT(bufor_uart1);// zdarzenie odbiorcze UART1<br />UART_LED_OFF;<br />}<br /><br />}<br /><br />void czytaj_dane_z_uart0( char * mybuf ) {<br />UART_LED_ON;// Migamy jak przylatują dane ;)<br />lcd_locate(0,0);<br />lcd_str(mybuf);<br />uart_puts(0,mybuf);<br />uart_puts(0,&quot;\r\n&quot;);<br />}<br />void czytaj_dane_z_uart1( char * mybuf ) {<br />UART_LED_ON;// Migamy jak przylatują dane ;)<br />lcd_locate(1,0);<br />lcd_str(mybuf);<br />uart_puts(1,mybuf);<br />uart_puts(1,&quot;\r\n&quot;);<br />}[/syntax]<p>Statystyki: Napisane przez Gość — 3 wrz 2013, o 10:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-09-03T09:33:15+01:00</updated>
<published>2013-09-03T09:33:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47975#p47975</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47975#p47975"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47975#p47975"><![CDATA[
<div class="quotetitle">rezasurmar napisał(a):</div><div class="quotecontent"><br />Mirku mam nadzieje, że zależnościami czasowymi aż tak nie będę się musiał przejmować.<br /></div><br /><br />Tzn o tym (wydaje mi się), że będziesz musiał pomyśleć ... i już tłumaczę dlaczego<br /><br />tzn wiem że parsowanie masz już obcykane i super ... ale rozmowa z modemami za pomocą komend AT wymaga czy tego chcesz czy nie chcesz timeoutów. Tzn o ile chcesz to zrobić dobrze .... Bo fakt można to pominąć ... i jakoś tam na sztywno gadać z modemem ...<br /><br />to jednak pragnę zwrócić uwagę na pewien fakt, który po jakimś czasie zacznie (chyba jak każdemu kto zaczyna tą zabawę) spędzać czas z oczu, przyprawiać o siwe włosy albo ich utratę przez wyrywanie sobie z głowy ...<br /><br />do rzeczy ...<br /><br />1. rozważmy taki przypadek - wysyłasz polecenie AT i .... kurka wodna nie dostajesz ŻADNEJ odpowiedzi <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... i na co wtedy zda się całe parsowanie ? <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> .... pomyśl co się w takich sytuacjach może dziać ... i nie zakładaj, że tobie się one nigdy nie pojawią. Albo że to są tylko jakieś strachy na lachy - bo to nie jest straszenie tylko zwrócenie uwagi na pierwszy podstawowy aspekt każdej ASYNCHRONICZNEJ i dobrze obsłużonej komunikacji. Zwykle osoby zaczynające zabawę w komunikację komendami AT ale w kierunku DO MODEMU na tym łamią pierwsze zęby<br /><br />2. drugi przypadek to standardowy komunikat ERROR w komedach AT, który wymaga czasem niezłych rozgałęzień w programie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tu też zaczyna się często HARDCORE ... bo taki niewinny napis ERROR trzeba np czasem obsłużyć w ten sposób aby ponownie wysłać komendę (o ile pewni jesteśmy jej składni) a do tego przewidzieć po drodze to co wyżej w pkt.1 czyli TimeOUT <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />3. kolejny przypadek to np odpowiedzi z modemu gdy nadlatuje UWAGA! może się z tym jeszcze nie spotkałeś - PACZKA STRINGÓW hmmm może inaczej LISTA STRINGÓW ... a dopiero na samym końcu komunikat &quot;OK&quot; - to jest &quot;smakowity kąsek&quot; do kodowania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Generalnie gdy oprogramowuje się to na PC, gdzie człowiek ma pod ręką sprzętowe WĄTKI - to jest dużo łatwiej ... a tu? ... a tu trzeba się troszkę namęczyć<br /><br />a pewnie (odnoście pkt nr.1) nie chciałbyś mieć takiej sytuacji, że kiedyś urządzenie zrobi totalną zwiechę bo po wysłaniu AT+COŚTAM będziesz czekał na odpowiedź ...<br /><br />I to miałem na myśli pisząc o zależnościach czasowych - stąd moja sugestia aby od razu myśleć o tym - tak zawczasu, bo później przerobić program - oj będzie ciężko ...<br /><br />co więcej - żeby dobrze się dogadywać z modemem to gdy zdarzy się TimeOUT zawsze warto co najmniej 3 razy powtórzyć wysłanie tego samego polecenia i dopiero po kilku powtórzeniach timeoutu ostatecznie podjąć decyzję w programie o tym, że mamy jakąś awarię ... choć nie zawsze musi to oznaczać awarii całego modemu - tylko jakiejś jego części że tak powiem ...<br /><br />No generalnie dużo można by pisać o tym jakie są sposoby podejść do komunikacji za pomocą komend AT<br /><br />ale na pewno te przeróżne wyrywkowe pokazywane przykłady czy to w internecie czy w niektórych publikacjach - często w ogóle nie poruszają tego bardzo ważnego zagadnienia i później mamy taki efekt, że ktoś coś zrobi ... i pojawiają się kłopoty z których nawet nie wiadomo jak wybrnąć ... dopiero długa żmudna analiza i praca z tym umożliwia dojście do takich wniosków. A jest to o tyle niewdzięczna analiza <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> że niestety takiego głupiego Timeouta nie uda się wywołać na zamówienie szczególnie podczas próby odbioru nagle dużej ilości danych - bo tu bywają one najgorsze.<br /><br />wiem wiem ... może to co piszę to trochę takie masło maślane ... i wygląda jakbym się mądrzył czy straszył czymś .... co przecież zwykle w takich prostych testach prawie nigdy się nie zdarza. No ale ... kurczę na prawdę uważam, że jest to zagadnienie warte uwagi i przemyślenia chociaż ... I to właśnie to podejście chcę sam sobie usystematyzować - jak się uda to wtedy będę w stanie to dokładnie opisać i w kodach pokazać - a na razie tylko sygnalizuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 wrz 2013, o 09:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-09-03T08:14:03+01:00</updated>
<published>2013-09-03T08:14:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47970#p47970</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47970#p47970"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47970#p47970"><![CDATA[
Dzięki, o tym też pomyślałem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<p>Statystyki: Napisane przez Gość — 3 wrz 2013, o 08:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2013-09-03T08:08:35+01:00</updated>
<published>2013-09-03T08:08:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47969#p47969</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47969#p47969"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47969#p47969"><![CDATA[
Jak ci biblioteka za duza to sobie wez strcmp z implementacji standardowej i ja przerob pod siebie:<br /><br />[syntax=c]int my_strcmp(const char* s1, const char* s2)<br />{<br />    while(*s1 &amp;&amp; (*s1==*s2))  s1++,s2++;<br />    return *(const unsigned char*)s1-*(const unsigned char*)s2;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 3 wrz 2013, o 08:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-09-03T08:10:28+01:00</updated>
<published>2013-09-03T07:41:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47968#p47968</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47968#p47968"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47968#p47968"><![CDATA[
Dzięki za wszelkie sugestie.<br /><br />Mirku mam nadzieje, że zależnościami czasowymi aż tak nie będę się musiał przejmować.<br />Parsowanie danych wejściowych (masa w ascii + parę innych drobnych komunikatów) to w zasadzie mam już załatwione <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br />Gorzej sprawa wygląda z obsługą wizfi po AT, bo po pierwsze nie wiem, czy iść w &quot;ordynarne&quot; wrzucanie do modułu za każdym włączeniem parametrów startowych, czy jednak zrobić jakieś zapytania.<br /><br />Jakoś porównywanie stringów, taka wielka biblioteka do takiej pierdoły <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br /><br />PS. Ależ Mirku nie musisz się tłumaczyć <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />, po prostu Anty miał na myśli (przynajmniej tak mi się wydaje), że ty masz już obcykane te parsowanie i nawet ja by cie obudzić o 3 rano to byś sparsował nawet zapytanie do serwera sql <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> po rs232.<br />No ale ja to ja, nie widzę pewnych aspektów od razu.<br /><br />Przykład funkcja z twojej biblioteki at_lcd_service(....)<br />gdzie pasowane są dane dla wyświetlacza, dla mnie to jakiś potwór <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br />Przydało by się za każdym razem takie tłumaczenie jak na stronie 431 greenbooka, toż to poezja <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Przykładowy &quot;tekst&quot; a potem rozłożenie go na czynniki <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />.<br /><br />U mnie lata sporo więcej, bo np. (nie wiem czy uda mi się oddać wygląd z terminala) tu jest ręczne łączenie,<br />ale np. jeżeli APek nie będzie odpowiadał już przy AT+WA=Teraoka, wywali [ERROR] na terminal, zamiast [OK].<br /><a href="http://forum.atnel.pl/_obrazki/o/248/155a401216f2dff6d843619c35593a35.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/248/155a401216f2dff6d843619c35593a35.jpg" alt="Obrazek" /></a><br /><br />Nie wiem, czy nie chcę za dużo, ale jakaś obsługa błędów by się przydała.<br />Procek to będzie Atmega644P (PA) więc flasza sporo, ramu też w miarę.<p>Statystyki: Napisane przez Gość — 3 wrz 2013, o 07:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-09-03T07:33:39+01:00</updated>
<published>2013-09-03T07:33:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47967#p47967</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47967#p47967"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47967#p47967"><![CDATA[
Anty, ale oczywiście że masz rację - że z takich modułów może nadlatywać bardzo dużo tekstu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> nawet więcej niż 256 bajtów w stringu ...<br /><br />ale ... oczywiście, że są sposoby na rozwiązywanie takich zadań i realizowałem je niejednokrotnie ... To nie jest tak, że liczę, że dopiero wpadnę na te pomysły ... Krótko mówiąc sposoby są dwa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> (co najmniej dwa)<br /><br />1. zastosować np mikrokontroler ATmega1284 który ma 16kB RAM <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... no ale to takie banalne<br /><br />2. zastosować w miarę potrzeb parsowanie &quot;W LOCIE&quot; też się da <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i wtedy można do obróbki użyć nawet ATtiny2313 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> który przecież całego RAM'u ma bidulek, tylko 128 bajtów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />z tym, że pisałem właśnie o tym uporządkowaniu i usystematyzowaniu tych moich pomysłów na ten drugi sposób, bo realizowałem to wielokrotnie, ale prawie zawsze nieco inaczej (wiesz jak jest) i ciężko byłoby to wyjaśnić wtedy w szczegółach. A tymczasem gdy człowiek usiądzie, pomyśli (sam tak przecież masz - jesteś mistrzem w tym!) napisze jakiegoś LIB'sika .... który nawet nie musi być zaraz tym NAJ... NAJ... lepszym libsikiem - ale umożliwi zrozumienie jak można do tego podchodzić - to wtedy jest fajnie ...<br /><br />tylko to miałem na myśli<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 wrz 2013, o 07:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sonix]]></name></author>
<updated>2013-09-03T07:31:09+01:00</updated>
<published>2013-09-03T07:31:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47966#p47966</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47966#p47966"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47966#p47966"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />.........<br /><br />To jest pisane pod wpływem impulsu,  taka nagła wizja, więc proszę  mnie zweryfikować. <br />Aha...  i  juz teraz nie jestem pewien czy sim900  wysyła  do 255 bajtów... czy mój gps. Kurcze,    zwątpiłem.<br /></div><br /><br /><br />Do podstawowej pracy z GSM na SIM900 używam bufora 128 bajtów zakładając że obsługuję tylko kilkunastoznakowe SMS'y (zdalna konfiguracja, nic więcej).<br />Jeżeli chcesz obsłużyć pełną długość SMS'a musisz mieć już prawie 200 bajtów.<br />Z GPS'em wszystkie ramki podchodzą już pod 255 bajtów <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=127">Sonix</a> — 3 wrz 2013, o 07:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-09-02T20:34:41+01:00</updated>
<published>2013-09-02T20:34:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47934#p47934</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47934#p47934"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47934#p47934"><![CDATA[
<div class="quotetitle">rezasurmar napisał(a):</div><div class="quotecontent"><br />przecież nie da się bezpośrednio porównywać stringa?<br /></div><br /><br />Nie ? .... a to jakby działały funkcje, które opisujesz, że działają ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> przecież w tym kodzie na który patrzysz do obsługi AT są właśnie funkcje porównujące stringi <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> W C masz ich od groma i ciut ciut.<br /><br />Komunikacja komend AT w drugą stronę ? ... ja bym się tu mniej przejmował porównywaniem stringów ... ale bardziej skoncentrowałbym się na timeoutach - bo zaczyna się asynchroniczność na maxa że tak powiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Ja do tego tematu przyłożę się z wyjasnieniem dopiero w 3 książce przy okazji SMS/GSM/GPRS ... sam muszę usystematyzować wszystkie swoje pomysły w tym zakresie, a książka będzie dobrym celem. Niestety minęło tyle czasu od zapowiedzi a nadal nie ruszyłem niestety - więc to jeszcze troszkę potrwa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 wrz 2013, o 20:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-09-02T15:05:13+01:00</updated>
<published>2013-09-02T15:05:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47890#p47890</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47890#p47890"/>
<title type="html"><![CDATA[Re: Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47890#p47890"><![CDATA[
Cześć,  w bibliotece string.h jest funkcja do porównania dwóch stringów.  Jeżeli są takie same funkcja zwraca 0 a jeżeli różne to 1. Funkcja  wyglądała jakoś tak strcmp (tab1, tab2). Jak będę w domu to potwierdzę nazwę<br /><br />Edit. <br />Oczywiście funkcja porównuje dwie tablice zawierające stringi<br /><br />Wysłane z mojego GT-I9100 za pomocą Tapatalk 4<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 2 wrz 2013, o 15:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-09-02T14:58:16+01:00</updated>
<published>2013-09-02T14:58:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47889#p47889</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47889#p47889"/>
<title type="html"><![CDATA[Komendy AT, sprawdzanie poprawności konfiguracji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4050&amp;p=47889#p47889"><![CDATA[
Mam mały problem, w zielonej książce jest świetnie opisane parsowanie danych z komendami AT.<br /><br />Potrzebował bym jeszcze w jak prosty sposób można w drugą stronę, czyli wysyłając komendę AT z procesora do urządzenia i dostając odpowiedź, ją sparsować.<br />Na początek wystarczyła by obsługa zwykłego [OK] i [ERROR], jak to ugryźć? przecież nie da się bezpośrednio porównywać stringa? a może się da?, ale czy to nie będzie za bardzo zasobnożerne?<br /><br />Jak w prosty sposób poradzić sobie z tym, potrzebuje wysyłać konfigurację do wizfi, dostaję zwrotnie albo samo [OK], albo dosyć sporo parametrów z których potrzebuje wyłuskać np IP.<p>Statystyki: Napisane przez Gość — 2 wrz 2013, o 14:58</p><hr />
]]></content>
</entry>
</feed>