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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-08-04T22:36:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1368&amp;mode</id>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-04T22:36:30+01:00</updated>
<published>2012-08-04T22:36:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11790#p11790</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11790#p11790"/>
<title type="html"><![CDATA[Re: Atemga128 i GSM (GPS pokonany! Później czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11790#p11790"><![CDATA[
dzięki za odpowiedź:) Oczywiście jak już mi się uda odpalić ten kod, będę go dopieszczał w sposób o którym mówisz (TimeOut, obsługa błedu)<br /><br />Czy takie podejscie jest lepsze:<br />[syntax=c]void sendSMS(void)<br />{<br />uint8_t l;<br />talkGSM(&quot;AT+CMGS=\&quot;+48510719317\&quot;\r\n&quot;,modembuff);<br />l = uart0_getstr(modembuff);<br /><br />if (strcmp(modembuff, &quot;&gt; &quot;) == 0)<br />{<br />uart0_puts(&quot;SMS\r\n&quot;);<br />uart0_putc(SUB);<br />}<br />else<br />{<br />uart0_puts(&quot;NOOT\r\n&quot;);<br />}<br />[/syntax]<br /><br />Ta funkcja działa w przypadku gdy odpowiedzą jest jedna linia...<br />Co w przypadku gdy odpowiedź ma więcej niż jedną linię? (np po wysłaniu SMS)? powininem tutaj jakoś zastosować flagę z ISR od '\n'?<br /><br />[syntax=c]uint8_t uart0_getstr(char *answer)<br />{<br />uint8_t l=0;<br />char c;<br /><br /><br />while((c=uart0_getc()) != '\n')<br />answer[l++]=c;<br /><br />answer[l]=0;<br /><br />return l;<br />}[/syntax]<br /><br />Edit o 2:42  <img src="https://forum.atnel.pl/images/smilies/icon_e_surprised.gif" alt=":o" title="Zdziwiony" /> <br />Nie daje mi spać ten problem, siedze siedze i nic <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />powyżej kody które zostawiam na teraz..<br />Nie mam pomysłu co robię źle..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 4 sie 2012, o 22:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-04T21:58:34+01:00</updated>
<published>2012-08-04T21:58:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11784#p11784</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11784#p11784"/>
<title type="html"><![CDATA[Re: Atemga128 i GSM (GPS pokonany! Później czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11784#p11784"><![CDATA[
No to ci podpowiem bo robisz JEDEN OLBRZYMII błąd tutaj <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Na znak zachęty zwykle trzeba &quot;troszkę&quot; poczekać z modemu GSM po przesłaniu pierwszej części danych po AT+CMGS<br /><br />ile to troszkę ???? no nie wiem klikadziesiąt a może kilkaset ms ???<br /><br />A ty wysyłasz tę pierwszą część i od razu BACH, leci sobie IF .... przecież on się wykona w przeciągu powiedzmy kilkunastu mikro!!!!sekund <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Więc przy takim podejściu NIGDY nie uda ci się wysłać SMS'a<br /><br />co musisz zrobić ????<br /><br />to proste - rzeczywiście POCZEKAĆ na ten znak zachęty .... czyli jakaś pętla oczekująca ????<br /><br />ale uwaga - a co będzie jeśli w wyniku jakiejś awarii znak zachęty nigdy nie nadleci ? albo nadleci ERROR ? No to też trzeba wziąć pod uwagę i zrobić obsługę TimeOut'a oraz błędu<br /><br />Jak widzisz już przy odbieraniu ramki z GPS'a poszedłeś złą drogą o tyle że teraz dla ciebie programowanie transmisji asynchronicznej to hmmm jakby ciągłe dokładanie jakichś nowych flag do przerwania???? Nie tędy droga ..<br /><br />przerwanie się robi RAZ a porządnie (czyli dostawia TYLKO flagę na CR i ew usuwa LF) i później się do tego kodu już nigdy nie zagląda. Całą resztę zawsze robi się już poza przerwaniem TYLKO już na buforach cyklicznych.<br /><br />to znaczy nie zrozum mnie źle - nie mówię że jest tylko taka jedna jedyna metoda - bo jak zauważysz i tym razem łatając pewnie też da radę tak zrobić .... ale co , przyjdzie kolejne zadanie i znowu coś do przerwanie, później znowu ? - toż ono spuchnie i przestanie pełnić prawidłowo swoją rolę - dlatego mówię że nie tędy droga<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 sie 2012, o 21:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-04T19:13:27+01:00</updated>
<published>2012-08-04T19:13:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11776#p11776</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11776#p11776"/>
<title type="html"><![CDATA[Re: Atemga128 i GSM (GPS pokonany! Później czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11776#p11776"><![CDATA[
no coż, sms nie zostanie wysłany... Nie mam pojęcia jak to ugryźć...<br /><br />Edit: napisałem sobie funkcje przez którą wysyłam komendy AT:<br />[syntax=c]<br />void talkGSM(char *question, unsigned char *answer)<br />{<br />uint8_t l; // liczba odebranych znakow<br />uart0_puts(question);<br /><br />l=uart0_getstr(answer);<br />}[/syntax]<br /><br />nic to jednak nie dało, dalej mam<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">AT+CMGF=1<br />AT+CMGS=&quot;+485xxxxx&quot;<br /><br />OK<br /></div><br /><br />[syntax=c]talkGSM(&quot;AT+CMGF=1\r\n&quot;,modembuff);<br />talkGSM(&quot;AT+CMGS=\&quot;+485xxxxxx\&quot;\r\n&quot;,modembuff);<br />l=uart0_getstr(modembuff);<br />if(flagReadyToSend)<br />{<br />uart0_puts(&quot;SMS\r\n&quot;);<br />uart0_putc(SUB);<br />}[/syntax]<br /><br />jak to ugryźć?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 4 sie 2012, o 19:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-04T19:11:57+01:00</updated>
<published>2012-08-04T19:11:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11775#p11775</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11775#p11775"/>
<title type="html"><![CDATA[Re: Atemga128 i GSM (GPS pokonany! Później czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11775#p11775"><![CDATA[
A zastanów się co się stanie gdy  znak zachęty nie nadleci ? czyli ten IF nie zostanie spełniony to co się stanie w twoim programie ???? Bo to właśnie teraz ma miejsce<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 sie 2012, o 19:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-04T19:13:54+01:00</updated>
<published>2012-08-04T17:21:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11766#p11766</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11766#p11766"/>
<title type="html"><![CDATA[Atemga128 i GSM (GPS pokonany! Później czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1368&amp;p=11766#p11766"><![CDATA[
Jak że poradziłem sobie z problemem GPS (narazie wszystko jest ok) z pomocą kolegów z forum, to brnę dalej ku marzeniom i walczę teraz z wysyłaniem owych danych przez SMS.<br /><br />zrobiłem sobie proste sprawdzanie czy jest odpowiedni czas na wysłanie smsa (co 2 min) w pętli w której pobierane są ramki z GPS:<br />[syntax=c]sekunda = gps_time[5] - '0'; // hackish, z str do int<br />sekunda_2 = gps_time[4] - '0'; // hackish<br />minuta = gps_time[3] - '0'; // hackish, z str do int<br /><br />//if(0==(sekunda%10))uart0_puts(&quot;SEND TO SD&quot;); // wysylanie co 10 sekund<br />if(1==(minuta%2) &amp;&amp; flagSek==0)<br />{<br />flagSek=1;<br />sendSMS();<br />}<br />if(0==(minuta%2)) flagSek=0; //zerowanie flagi[/syntax]<br /><br />teraz w funkcji sendSMS() robię sobie coś takiego:<br />[syntax=c]<br />uint8_t l=0;<br /><br />uart0_puts(&quot;AT\r&quot;);<br />uart0_puts(&quot;AT+CMGF=1\r&quot;);<br />uart0_puts(&quot;AT+CMGS=\&quot;+485xxxxxxxx\&quot;\r&quot;);<br />l=uart0_getstr(modembuff);<br />// TO DO SPRAWDZANIE CZYZNAK ZACHETY &gt;<br />if (flagReadyToSend == 1)<br />{<br />uart0_puts(&quot;SMS&quot;);<br />uart0_putc(SUB); // CTRL-Z<br />flagReadyToSend=0;<br />}<br />}<br />[/syntax]<br /><br />natomiast w obsłudze USART:<br />[syntax=c]uint8_t uart0_getstr(unsigned char *answer)<br />{<br />uint8_t l=0;<br />char c;<br />while((c=uart0_getc()) != '\n')<br />{<br />answer[l++]=c;<br />}<br /><br />answer[l]=0;<br />return l;<br />}<br />[/syntax]<br /><br />i przerwanie dla USART:<br />[syntax=c]if(data == '\n')<br />flagGotAnswer=1;<br />flagReadyToSend=1;<br /><br />if(data == '\r')<br />data=0;<br />if(data == '&gt;')<br />flagReadyToSend=1;<br />[/syntax]<br /><br />no i nie działa.. tzn działa tyle o ile, podglądając odpowiedzi od modemu i to co nadaje dostaje w terminalu Putty:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent"><br />Time: 162056.000<br />Time: 162057.000<br />Time: 162058.000<br />Time: 162059.000<br />Time: 162100.000<br />AT+CMGS=&quot;+48xxxxxxxxxx&quot;<br />OK<br />Time: 162101.000<br /></div><br /><br />a po podglądnięciu wlogach z putty nawet takie cos:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">Time: 162259.000<br />Time: 162300.000<br />AT<br />AT+CMGF=1<br />AT+CMGS=&quot;+485xxxxxxxxx&quot;<br /><br />OK<br />Time: 162301.000<br />Time: 162302.000<br /></div><br />gdzie jest złe moje rozumowanie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 4 sie 2012, o 17:21</p><hr />
]]></content>
</entry>
</feed>