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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-04-25T19:54:05+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=18194&amp;mode</id>
<entry>
<author><name><![CDATA[Mysteziz]]></name></author>
<updated>2017-04-25T19:54:05+01:00</updated>
<published>2017-04-25T19:54:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187878#p187878</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187878#p187878"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187878#p187878"><![CDATA[
Koledzy, na obecną chwilę poradziłem sobie tak:<br /><br />[syntax=c]#include &lt;SoftwareSerial.h&gt;<br /><br />SoftwareSerial mySerial(10, 11); // RX, TX<br /><br /><br /><br />String odczyt; //odczyt<br />String iks; <br />String yyy;<br /><br />int ind1; // indeksy<br />int ind2;<br />int ind3;<br />int ind4;<br /><br />int x;<br />int y;<br /><br />float xx;<br />float yy;<br /> <br />void setup() {<br />  mySerial.begin(9600);<br />  Serial.begin(9600);<br />}<br /><br />void loop() {<br /><br />//char c&#91;30&#93;;<br />while(!mySerial.available());<br />  if (mySerial.available())  {<br />     int i;<br />     for(i=0;i&lt;30;++i)<br />     {       <br />      char h = mySerial.read();<br />    odczyt =odczyt + h;  <br />     }<br /><br />      }<br />      <br />       ind1 = odczyt.indexOf('CJ,');  <br />      ind2 = odczyt.indexOf(',', ind1+1);  <br />      ind3 = odczyt.indexOf(';');<br /><br />      <br />      iks = odczyt.substring(ind1+1,ind2); //pierwsza liczba<br />      yyy = odczyt.substring(ind2+1,ind3); //druga liczba<br /><br />      xx=iks.toFloat(); //zmiana stringa na float<br />      yy=yyy.toFloat();<br />      xx=xx*1000;  //mnożenie bo liczby są mniejsze od 1<br />      yy=yy*1000;<br />      x=map(xx,-1000,1000,-255,255); //mapowanie do wartości pwm<br />      y=map(yy,-1000,1000,-255,255); //-minus to kierunek do tyłu<br /><br />      <br />      Serial.print(x);<br />      Serial.print(&quot;     &quot;);<br />      Serial.println(y);<br />      odczyt=&quot;&quot;; // zerowanie odczytu<br />     <br /><br />    }[/syntax]<br /><br />i ten kod już działa, jeszcze tylko przemyślę sterowanie i będzie ok. Bardzo dziękuję za pomoc wszystkim którzy pisali do mnie <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=14012">Mysteziz</a> — 25 kwi 2017, o 19:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jerzyk31]]></name></author>
<updated>2017-04-20T16:39:02+01:00</updated>
<published>2017-04-20T16:39:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187510#p187510</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187510#p187510"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187510#p187510"><![CDATA[
@Cam74 - jest, masz rację <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> mea culpa, maxima culpa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />dla autora <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <!-- m --><a class="postlink" href="https://www.tutorialspoint.com/c_standard_library/c_function_strtok.htm" >https://www.tutorialspoint.com/c_standa ... strtok.htm</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3173">jerzyk31</a> — 20 kwi 2017, o 16:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Cam74]]></name></author>
<updated>2017-04-20T09:40:33+01:00</updated>
<published>2017-04-20T09:40:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187486#p187486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187486#p187486"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187486#p187486"><![CDATA[
jerzyk31 a co w C tej funkcji nie ma?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13745">Cam74</a> — 20 kwi 2017, o 09:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jerzyk31]]></name></author>
<updated>2017-04-20T08:30:51+01:00</updated>
<published>2017-04-20T08:30:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187477#p187477</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187477#p187477"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187477#p187477"><![CDATA[
Jezeli uzywasz arduino, toma ono yaka fajna funkcje ktora nazywa sie strtok(). Za pomoca niej ja parsuje url z ethernetu.<br /><br />Wysłane z mojego HTC Desire 510 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3173">jerzyk31</a> — 20 kwi 2017, o 08:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karolen]]></name></author>
<updated>2017-04-19T18:28:01+01:00</updated>
<published>2017-04-19T18:28:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187450#p187450</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187450#p187450"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187450#p187450"><![CDATA[
Powiem  Ci tak, jakiś czas temu miałem podobny problem i mi bardzo pomogły poradniki Mirka &quot;Wifi-Uart&quot;. Niestety nie mogę znaleźć tamtego mojego kodu, ale w oparciu tylko o tamte poradniki udało mi się wtedy to zrobić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6210">karolen</a> — 19 kwi 2017, o 18:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mysteziz]]></name></author>
<updated>2017-04-19T13:28:18+01:00</updated>
<published>2017-04-19T13:28:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187441#p187441</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187441#p187441"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187441#p187441"><![CDATA[
Dalszy ciąg zabawy z parsowaniem, i z tym co i jak. Koledzy, dziękuję za pomoc. Wychodzi moje niedouczenie, PITERK, poczytałem w greenbooku o transmisji ASCII i już widzę kolejnego babola jakiego zrobiłem. Przecież wszystko idzie w postaci znaków ascii więc faktycznie jest tak jak napisałeś o separatorach. Dalej czytam i walczę z kodem chociaż czasu troszkę mało więc pewnie potrwa jeszcze kilka dni. Jak coś wymyślę takiego aby działało to wstawię na forum kod może ktos skorzysta.<br />Na tą chwilę mam tak:<br /><br />[syntax=cpp]#include &lt;SoftwareSerial.h&gt;<br />#define u08 uint8_t<br /><br /><br />SoftwareSerial mySerial(9,10); // RX, TX<br />    volatile u08 char_buffer&#91;30&#93; = {0}; //bufor z zapasem na 30 bajtów<br />    volatile u08 char_bufer_index = 0;<br />    String liczbax=&quot;&quot;;<br />    String liczbay=&quot;&quot;;<br />    <br />u08 a;<br />u08 bajt1;<br />u08 bajt2;<br />u08 bajt3;<br />u08 bajt4;<br />u08 bajt5;<br />u08 bajt6;<br />u08 bajt7;<br />u08 bajt8;<br /><br />void setup() {<br />  Serial.begin(9600);<br />   mySerial.begin(9600);<br />  Serial.println(&quot;Serial port działa!&quot;);<br />}<br /><br />void loop() {<br />  // put your main code here, to run repeatedly:<br /><br />if(mySerial.available())<br />{<br /> for (a = 1; a &lt; 28; a++)  //nie daje 255 aby nie czekać na komendy tylko reagować po jednej<br /> {<br />  char_buffer&#91;a&#93;=mySerial.read();<br />  //Serial.println(char_buffer&#91;a&#93;);<br /> }<br />  <br />    for (a = 1; a &lt; 15; a++)<br />    {<br />    if ((char_buffer&#91;a&#93; == 'C') &amp;&amp;<br />        (char_buffer &#91;a + 1&#93; == 'J'))   // stop robota<br />       {<br />       // Serial.println(a);<br />       }<br /><br />    for (a = 1; a &lt; 15; a++)  //b0 -12 - tyle ma sekwencja znaków<br />    {<br />    if ((char_buffer&#91;a&#93; == 'C') &amp;&amp;<br />        (char_buffer &#91;a + 1&#93; == 'J') &amp;&amp;<br />        (char_buffer &#91;a + 2&#93; == ','))         // start robota<br />       {<br />        bajt1 = char_buffer&#91;a + 3&#93;;  <br />        bajt2 = char_buffer&#91;a + 4&#93;;<br />        bajt3 = char_buffer&#91;a + 5&#93;;<br />        bajt4 = char_buffer&#91;a + 6&#93;;   // poskładaj te bajty które idą za CJ i przecinkiem zrób co tam uważasz<br />       //tu jest przecinek ale go omijam poprostu numer większy o jeszcze 1<br />        bajt5 = char_buffer&#91;a + 8&#93;;  <br />        bajt6 = char_buffer&#91;a + 9&#93;;<br />        bajt7 = char_buffer&#91;a + 10&#93;;<br />        bajt8 = char_buffer&#91;a + 11&#93;; <br />       }<br />    }<br /><br />    }<br />    }<br /><br /><br />liczbax=liczbax+bajt1;<br />liczbax=liczbax+bajt2;<br />liczbax=liczbax+bajt3;<br />liczbax=liczbax+bajt4;<br /><br />float x=liczbax.toFloat();<br /> Serial.println(x,4);<br /> liczbax=&quot;&quot;;<br /><br />delay(300);<br /><br />}[/syntax]<br /><br /><br />bufor dałem mniejszy bo korzystam z software serial aby w serialu hardwarowym mieć podgląd tego co się dzieje w programie, optymalizacji nie ma żadnej bo chcę aby zaczeło działać cokolwiek, później będzie czas na porzadki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14012">Mysteziz</a> — 19 kwi 2017, o 13:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mysteziz]]></name></author>
<updated>2017-04-19T08:25:13+01:00</updated>
<published>2017-04-19T08:25:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187419#p187419</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187419#p187419"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187419#p187419"><![CDATA[
Obiecałem że wstawię moje wypociny-oto one:<br /><br />[syntax=cpp]#include &lt;SoftwareSerial.h&gt;<br /><br />SoftwareSerial mySerial(9,10); // RX, TX<br /><br /><br />String inString=&quot;&quot;;<br />char buf&#91;25&#93;;<br />  <br />void setup() {<br />  <br />  Serial.begin(9600);<br /> <br /><br /><br />  mySerial.begin(9600);<br />  Serial.println(&quot;Serial port działa!&quot;);<br />}<br /><br /><br />void loop() { <br /><br />if(mySerial.available()&gt;0)<br />{<br />    <br />       int x=mySerial.readBytes(buf,28);  //odczyt do bufora<br />         <br /> }<br />uint8_t a;<br />for(a=0;a&lt;28;++a)<br />{<br />  inString&#91;a&#93;=buf&#91;a&#93;;  //zamiana na string<br />}<br /><br />byte b;<br />byte c;<br /><br />for(b=0;b&lt;28;++b)<br />{<br />   if (inString.substring(b) == &quot;CJ,&quot;) // znajdź swkwencję początkową<br />         {<br />          c=b;    //zapis numeru pozycji do zmiennej<br />          break;<br />         }<br />}<br /><br />String iks=&quot;&quot;;  //to miały być dwie liczby wydobyte ze stringa zapisane jeszcze w postaci stringa<br />String yyy=&quot;&quot;;<br />byte d;<br /><br />for(d=c;d&lt;(c+4);++d)  //4bajty float<br />{<br />  iks&#91;d&#93;=buf&#91;d&#93;;  //zamiana na string<br />}<br /><br />Serial.println(iks);   //a tu już nie działa i nie wiem co z tym zrobić<br />    <br /><br />  }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14012">Mysteziz</a> — 19 kwi 2017, o 08:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mysteziz]]></name></author>
<updated>2017-04-18T22:14:01+01:00</updated>
<published>2017-04-18T22:14:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187405#p187405</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187405#p187405"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187405#p187405"><![CDATA[
PITERK, to są liczby float, czyli 4 bajty i z kropką w zapisie i właśnie zapomniałem dodać że one mają max wartość 1, stąd te kropki.<br />Hmmm czegoś może jeszcze nie wiem próbowałem to wczytać do bufora ale dalej się trochę gubię. Mój pomysł był taki aby znależć sekwencję &quot;CJ,&quot; a dalej 4 bajty to liczba float, póżniej przecinek i następne 4 bajty float. W teorii wszystko ok ale... Dobra jutro wrzucę mój kod który nie działa <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=14012">Mysteziz</a> — 18 kwi 2017, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PITERK]]></name></author>
<updated>2017-04-18T21:21:36+01:00</updated>
<published>2017-04-18T21:21:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187403#p187403</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187403#p187403"/>
<title type="html"><![CDATA[Re: [arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187403#p187403"><![CDATA[
Cześć. A jakbym Ci powiedział żebyś nie patrzył na ten ciąg jak na liczby  a string. <br />Druga podpowiedź: twoimi separatorami będą &quot;,&quot;   &quot;.&quot; ;<br /><br />Wysłane z mojego SM-G357FZ przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2913">PITERK</a> — 18 kwi 2017, o 21:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mysteziz]]></name></author>
<updated>2017-04-18T21:12:03+01:00</updated>
<published>2017-04-18T21:12:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187401#p187401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187401#p187401"/>
<title type="html"><![CDATA[[arduino] [softwareSerial][parsowanie danych]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18194&amp;p=187401#p187401"><![CDATA[
Witajcie! Mam problem z parsowaniem danych tzn nie wiem jak z danych nadlatujących z bluetootha wysyłanych przez program wyciągnąć dwie liczby float i dwie komendy. Korzystam wprawdzie z Arduino ale tylko dlatego że na zestaw Atb jeszcze mnie nie stać poza tym zestawu nie włożę do robota ktorego zrobiłem. Ale do rzeczy. Otrzymuję dane w postaci:<br /><br />CS;CJ,0.158,-0.449;CJ,0.057,-0.998;CJ,0.054,-0.999;<br /><br />i teraz tak CS - to stop<br />CJ to jazda<br />po CJ są zawsze dwie liczby niestety w formacie FLOAT, oddzielone przecinkiem a następnie średnik.<br /><br />Tak naprawdę to wystarczy mi wydobyć te dwie liczby tylko żebym wiedział która jest pierwsza a która druga.<br /><br />jeśli napisałem nieprecyzyjnie to tak dostajemy albo:<br /><br />;CS;<br /><br /><br />albo<br /><br />;CJ,0.158,-0.449;<br /><br />Proszę o podpowiedź, jak podejść do tematu najlepiej bez &quot;magicznych&quot; funkcji arduino tylko tak po naszemu, w C.<br />p.s. nie wiedziałem jakiego znacznika mam użyć tu na forum do wstawienia danych?<br /><br />To co robię nie jest żadną tajemnicą, prosty robot a program z którego korzystam do wysyłania danych to darmowe BALANDUINO.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14012">Mysteziz</a> — 18 kwi 2017, o 21:12</p><hr />
]]></content>
</entry>
</feed>