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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-11-14T15:48:18+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=9225&amp;mode</id>
<entry>
<author><name><![CDATA[rysieks]]></name></author>
<updated>2014-11-14T15:48:18+01:00</updated>
<published>2014-11-14T15:48:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103957#p103957</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103957#p103957"/>
<title type="html"><![CDATA[Re: Konwersja zmiennej typu String na char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103957#p103957"><![CDATA[
Dziękuję za wszystkie uwagi, poszerzają one moją nikłą widzę.<br /><br />Jednak dalej mam problem - może nie z zamianą String na char,<br />ale chyba ze zmienną tablicową typu char*<br /><br />Po prostu w części void loop()  konstruuję określony ciąg znaków (i to działa)<br />ale nie mogę zapisać tych ciągów do tablicy <br />typu char* PinKodONpytaj oraz  char* PinKodOFczytaj.<br /><br />Jak kolega XOR mi naświetlił jest to chyba wskaźnik do tablicy,<br />a ja nie potrafię go obsłużyć tak domniemam.<br /><br />Użycie funkcji strcat(), strcpy() też nic nie daje (albo źle używam)<br /><br />Funkcja czasem po kompilacji zapisuje poprawnie 4 wartości, a czasem 1<br />pozostałe to powtórzenia<br />np;<br /><br />PinKodONpytaj {&quot;GET /?status=ON__4&quot;,&quot;GET /?status=ON__4&quot;,&quot;GET /?status=ON__4&quot;,&quot;GET /?status=ON__4&quot;}<br />PinKodOFpytaj {&quot;GET /?status=ON__4&quot;,&quot;GET /?status=ON__4&quot;,&quot;GET /?status=ON__4&quot;,&quot;GET /?status=ON__4&quot;}<br /><br /><br />prawidłowo wartości powinny być<br /><br />PinKodOFpytaj {&quot;GET /?status=ON__1&quot;,&quot;GET /?status=ON__2&quot;,&quot;GET /?status=ON__3&quot;,&quot;GET /?status=ON__4&quot;}<br />PinKodOFpytaj {&quot;GET /?status=OF__1&quot;,&quot;GET /?status=OF__2&quot;,&quot;GET /?status=OF__3&quot;,&quot;GET /?status=OF__4&quot;}<br /> <br />pomimo że przed zapisem dane wyglądają prawidłowo, jeżeli je drukuję.<br /><br /><br />I tutaj moja prośba o skierowanie na właściwe tory, bo nijak nie mogę tego ugryźć.<br />Mogę stworzyć tablicę String i tam zapisać wartości - niema z tym problemu.<br /><br />Chodzi szczególnie o;<br /><br />char* KodPinONpytaj[] <br />char* KodPinOFpytaj[]      zapisane w liniach 13 do 20<br /><br />które podstawiane są do (linia 102, 106);<br />          if(strstr((char *)Ethernet::buffer + pos, KodPinONpytaj[i] ) != 0)  w części void loop() <br /><br />i zapis do tablicy char* KodPinONpytaj[]  w części void setup () <br />I z tym zapisem właśnie mam problem, z gwiazdką przed tablicą też próbowałem.<br />Zapis w liniach 62 do 78, <br />a tak naprawdę to chodzi o linie   67   i  76 !!!<br /><br />[syntax=c]#include &lt;EtherCard.h&gt;          //dołączona biblioteka z Arduino<br /><br />//******************************************************* DEKLARACJE<br />static byte mymac&#91;&#93; = {0xDD,0xDD,0xDD,0x00,0x00,0x01};  // adres mac karty<br />static byte myip&#91;&#93; = {192,168,0,25};                    // TCP/IP karty<br /><br />byte Ethernet::buffer&#91;3500&#93;;                            // bufor na stronę<br />const int ILEPIN = 4;                                   // ile jest PIN wykorzystanych<br />const int LedPin&#91;&#93; = {13, 4, 5, 6 };                    // deklaracja PIN wykorzystanych<br />boolean LedStan&#91;&#93;  = { 0, 0, 0, 0 };                    // deklaracja statusu PIN (prawda/fałsz)<br /><br />// *************************  &quot;GET /?status=123456&quot;     ŹLE - tu nie chciałbym deklarować wielkości zmiennych<br />char* KodPinONpytaj&#91;&#93;   =   { &quot;n                    &quot;,<br />                              &quot;n                    &quot;,<br />                              &quot;n                    &quot;,<br />                              &quot;n                    &quot;} ;<br />char* KodPinOFpytaj&#91;&#93;   =   { &quot;f                    &quot;,<br />                              &quot;f                    &quot;,<br />                              &quot;f                    &quot;,<br />                              &quot;f                    &quot;} ;<br />//********************************************************************************************************<br />char* KodPinON&#91;&#93;   = {&quot;ON__1&quot;,&quot;ON__2&quot;,&quot;ON__3&quot;,&quot;ON__4&quot;};        // ON kod przyporządkowany dla danego PIN<br />char* KodPinOF&#91;&#93;   = {&quot;OF__1&quot;,&quot;OF__2&quot;,&quot;ON__3&quot;,&quot;ON__4&quot;};        // OFF kod przyporządkowany dla danego PIN<br />char* KodPinXX&#91;ILEPIN&#93;;<br /><br />char* KodKlawON&#91;&#93;    = {&quot;ON_1&quot; ,&quot;ON_2&quot; ,&quot;ON_3&quot; ,&quot;ON_4&quot; };          // ON kod klawisza (przycisku)<br />char* KodKlawOF&#91;&#93;    = {&quot;OFF1&quot;,&quot;OFF2&quot;,&quot;OFF3&quot;,&quot;OFF4&quot;};              // OFF kod klawisza (przycisku)<br />char* KodKlawXX&#91;ILEPIN&#93;;<br /><br />char* KodStanON&#91;&#93;    = {&quot;1ON_&quot;,&quot;2ON_&quot;,&quot;3ON_&quot;,&quot;4ON_&quot;};              // ON stan opisowy przycisku<br />char* KodStanOF&#91;&#93;    = {&quot;1OFF&quot;,&quot;2OFF&quot;,&quot;3OFF&quot;,&quot;4OFF&quot;};              // OFF stan opisowy przycisku<br />char* KodStanXX&#91;ILEPIN&#93;;<br /><br />String PoczLinii = &quot;GET /?status=&quot;;                     // nagłówek kodu otrzymywanego<br />String ZmON = &quot;&quot;;<br />String ZmOF = &quot;&quot;;<br />int OFdlugosc_len = 0;<br />int ONdlugosc_len = 0;<br />//******************************************************* SETUP<br />void setup () <br />{<br />    <br />    Serial.begin(9600);<br />    Serial.println(&quot;WebLed Demo&quot;);<br />    if (!ether.begin(sizeof Ethernet::buffer, mymac, 53))<br />    Serial.println( &quot;Failed to access Ethernet controller&quot;);<br />    else<br />    Serial.println(&quot;Ethernet controller initialized&quot;);<br />    if (!ether.staticSetup(myip))<br />    Serial.println(&quot;Failed to set IP address&quot;);<br />    Serial.println();<br />    <br />    for (int i=0; i&lt;ILEPIN; i=i+1)        // wszystkie PIN wyzeruj<br />    {<br />      pinMode(LedPin&#91;i&#93;, OUTPUT);<br />      LedStan&#91;i&#93; = false;<br />      digitalWrite(LedPin&#91;i&#93;, LOW);<br />      KodStanXX&#91;i&#93; = KodStanOF&#91;i&#93;;<br />      KodKlawXX&#91;i&#93; = KodKlawON&#91;i&#93;;<br />      KodPinXX&#91;i&#93;  = KodPinON&#91;i&#93;;<br />      //******************************************************* TU JEST PROBLEM ****************************<br />           ZmON = PoczLinii + KodPinON&#91;i&#93;;                      // OK złożenie tekstu zmiennej<br />           Serial.println(KodPinON&#91;i&#93;);<br />           ONdlugosc_len = ZmON.length()+1 ;                    // OK obliczamy długość zmiennej typu string<br />           //OFdlugosc_len = 19;<br />           //char ZmKonON&#91;ONdlugosc_len&#93;;                       // OK definiujemy zmienną char o długości dlugosc_lenn<br />           ZmON.toCharArray(KodPinONpytaj&#91;i&#93;, ONdlugosc_len);   // ŹLE **** konwersja String &quot;ZmON&quot; na char &quot;KodPinONpztaj&quot;<br />                                                                // ŻLE **** brak mi instrukcji do zrobienia zmiennej o długości ONdlugosc_len<br />                                                                // ŹLE **** brak mi instrukcji do zapisania na zmiennej w Tablicy<br /><br />           ZmOF = PoczLinii + KodPinOF&#91;i&#93;;                      // złożenie tekstu zmiennej<br />           Serial.println(KodPinOF&#91;i&#93;);<br />           OFdlugosc_len = ZmOF.length()+1 ;                    // obliczamy długość zmiennej typu string<br />           //OFdlugosc_len = 20;<br />           //char ZmKonOF&#91;OFdlugosc_len&#93;;                       // definiujemy zmienną char o długości dlugosc_len<br />           ZmOF.toCharArray(KodPinOFpytaj&#91;i&#93;, OFdlugosc_len);   // konwersja na char ZmiennaC<br />           //strcpy(KodPinOFpytaj&#91;i&#93;, ZmKonOF);             tak też nie chce działać<br />      //******************************************************* TU JEST PROBLEM ****************************<br /><br />   }<br />    <br />    for (int i=0; i&lt;ILEPIN; i++)                                // ptla wzdruku dla sprawdzenia wartosci<br />    {        <br />      Serial.print(KodPinOFpytaj&#91;i&#93;);<br />      Serial.print(&quot;&lt;--OF----ON--&gt;&quot;);<br />      Serial.print(KodPinONpytaj&#91;i&#93;);<br />      Serial.println(&quot;&lt;&lt;&lt;&quot;);<br />    }<br />}<br /><br />//******************************************************* LOOP<br />void loop() <br />{<br />  word len = ether.packetReceive();<br />  word pos = ether.packetLoop(len);<br /><br />  if(pos) <br />  {<br />       //######################################### Funkcja podstawiająca tablice jak dobre to OK<br />       for ( int i=0; i&lt;ILEPIN; i++)<br />       {<br />          if(strstr((char *)Ethernet::buffer + pos, KodPinONpytaj&#91;i&#93; ) != 0) <br />              {  <br />                 LedStan&#91;i&#93; = true;   Serial.println(&quot;Received ON command &quot;);<br />              }<br />          if(strstr((char *)Ethernet::buffer + pos, KodPinOFpytaj&#91;i&#93; ) != 0) <br />              {<br />                  LedStan&#91;i&#93; = false;  Serial.println(&quot;Received OFF command &quot;);<br />              }<br />        }      <br />        //************************************** druga pętla<br />       for ( int i=0; i&lt;ILEPIN; i++)<br />        {<br />          if(LedStan&#91;i&#93;)<br />              {  <br />                  digitalWrite(LedPin&#91;i&#93;, HIGH);              // zmień Pin na stan 1 (ON)<br />                  KodStanXX&#91;i&#93; = KodStanON&#91;i&#93;;<br />                  KodKlawXX&#91;i&#93; = KodKlawOF&#91;i&#93;;<br />                  KodPinXX&#91;i&#93; = KodPinOF&#91;i&#93;;                  // przyciskowi przyporządkuj odwrotny kod (OFF)<br />              }<br />          else<br />              {<br />                  digitalWrite(LedPin&#91;i&#93;, LOW);<br />                  KodStanXX&#91;i&#93; = KodStanOF&#91;i&#93;;<br />                  KodKlawXX&#91;i&#93; = KodKlawON&#91;i&#93;;<br />                  KodPinXX&#91;i&#93; = KodPinON&#91;i&#93;;                  // przyciskowi przyporządkuj odwrotny kod (ON)              <br />              }          <br />        }<br /><br />        BufferFiller bfill = ether.tcpOffset();<br />        bfill.emit_p(PSTR(&quot;HTTP/1.0 200 OK\r\n&quot;<br />          &quot;Content-Type: text/html\r\nPragma: no-cache\r\n\r\n&quot;<br />          &quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;Arduino straznik domowy&lt;/title&gt;&lt;/head&gt;&quot;<br />          &quot;&lt;body&gt;&quot;<br />          &quot;&lt;center&gt;&lt;h1&gt;Witaj na stronie generowanej przez Arduino ENC28J60 Ethernet Shield V1.0&lt;/h1&gt;&quot;<br />          &quot;&lt;hr&gt;&lt;br&gt;&lt;h2&gt;&lt;font color=\&quot;blue\&quot;&gt;-- Witaj na stronie obrazujacej stan wyjsc -- &quot;<br />          &quot;&lt;br&gt; tutaj beda stany poszczegolnych urzadzen&quot;<br />          &quot;&lt;br&gt; na poczatek stan wyjscia 13 (zamontowana dioda na plycie Arduino)&quot;<br />          &quot;&lt;br&gt;&lt;br&gt;&lt;/h2&gt;&lt;h4&gt; LED Status: $S &quot;<br />          &quot;&lt;a href=\&quot;/?status=$S\&quot;&gt;&lt;input type=\&quot;button\&quot; value=\&quot;$S\&quot;&gt;&lt;/a&gt;&quot;<br />          &quot;&lt;a href=\&quot;/?status=$S\&quot;&gt;&lt;input type=\&quot;button\&quot; value=\&quot;$S\&quot;&gt;&lt;/a&gt;&quot;          <br />          &quot;&lt;a href=\&quot;/?status=$S\&quot;&gt;&lt;input type=\&quot;button\&quot; value=\&quot;$S\&quot;&gt;&lt;/a&gt;&quot;<br />          &quot;&lt;a href=\&quot;/?status=$S\&quot;&gt;&lt;input type=\&quot;button\&quot; value=\&quot;$S\&quot;&gt;&lt;/a&gt;&quot;<br />          &quot;&lt;br&gt;&lt;br&gt;&lt;/h4&gt;&lt;h2&gt; tak mniej wiecej mozna to przedstawic&quot;<br />          &quot;&lt;br&gt; moga byc tez wartosci z poszczegolnych czujnikow &quot;<br />          &quot;&lt;br&gt; i jakies grafiki generowane w kodzie html5&quot;<br />          &quot;&lt;br&gt; takze obrazki sciagniete z innego serwera i ramki html5 &quot;<br />          &quot;&lt;br&gt;&lt;/font&gt;&lt;/h2&gt;&quot;<br />          &quot;&lt;/center&gt;&lt;hr&gt;&quot;<br />          &quot;V1.0 &lt;a href=\&quot;http://\&quot;&gt;Strona domowa&lt;/a&gt;&quot;<br />          &quot; projekt ADziala_8_WebLeds_003.ino &quot;<br />          &quot;&lt;/body&gt;&lt;/html&gt;&quot;), KodStanXX&#91;0&#93;, KodPinXX&#91;0&#93; , KodKlawXX&#91;0&#93;,<br />                                          KodPinXX&#91;1&#93; , KodKlawXX&#91;1&#93;,<br />                                          KodPinXX&#91;2&#93; , KodKlawXX&#91;2&#93;,<br />                                          KodPinXX&#91;3&#93; , KodKlawXX&#91;3&#93;   ) ;<br />        <br />        ether.httpServerReply(bfill.position());<br />  }<br />}[/syntax]<br />Jakie linijki trzeba tam dopisać       (do 67 i 76 )<br />żeby funkcjonowało to z tą nieszczęsną tablicą typu char* prawidłowo ?<br />Pozostała część kodu o ile podstawię tablice &quot;PinKodONpytaj&quot; i &quot;PinKodOFpytaj&quot; już wypełnione wartościami<br />działa prawidłowo.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6545">rysieks</a> — 14 lis 2014, o 15:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-11-13T22:48:32+01:00</updated>
<published>2014-11-13T22:48:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103872#p103872</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103872#p103872"/>
<title type="html"><![CDATA[Re: Konwersja zmiennej typu String na char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103872#p103872"><![CDATA[
Klasa String w C++ to pewne rozszerzenie typu łańcuchowego z C (tablic znaków zakończonych znakiem '\0' czyli tzw ASCIIZ). Objawia się to to m.in. w uproszczeniu operacji na ciągach, np., łączenie  dwóch łańcuchów jest tak proste jak dodanie dwóch liczb (W C to wyrażenie nie ma najmniejszego sensu, a pewnie nawet nie da się skompilować.):<br /><br />[syntax=cpp]String str1 = &quot;siała&quot;, str2 = &quot;baba&quot;, str3 = &quot;mak&quot;;<br /><br />str1 = str1 + ' ' + str2 + ' '  + str3;[/syntax]<br /><br />No ale nadal jest to ciąg znaków ASCIIZ (czyli chyba można sobie darować karkołomne konwersje ze string na char*).<br /><br /><div class="quotetitle">rysieks napisał(a):</div><div class="quotecontent"><br />czy można dodać typ char do char - i jak się to robi ?<br /></div><br />No char do char to raczej zwykle nie ma sensu<br /><br />[syntax=c]char znak = 'a';<br /><br />znak += 'b';[/syntax]<br /><br />ale char do String rozszerzy string o ten znak.<br /><br />[syntax=cpp]String str = &quot;a';<br /><br />str += 'b';[/syntax]<br /><br /><div class="quotetitle">rysieks napisał(a):</div><div class="quotecontent"><br />od czego zależy czy zmienna jest widoczna jako &quot;czysta&quot; zmienna, czy jako wskaźnik do innej zmiennej,<br /></div><br /><br />W przypadku typow prostych (int, char, float) jest specjalny operator &quot;uwskaźnikowienia&quot;, natomiast w przypadku tablic (w tym tablic znakowych ASCIIZ) jest to trochę ukryte - tablica jest już wskaźnikiem, element tablicy jest &quot;zwykła&quot; zmienną. <br /><br />[syntax=c]int arr&#91;&#93; = { 2, 3 };<br />int *var;<br />int elem;<br /><br />var = arr; //do zmiennej 'var&quot; zostanie przypisany wskaźnik do tablicy 'arr'<br />elem = arr&#91;0&#93;; //do zmiennej 'elem' zostanie przypisana wartość z pierwszego elementu tablicy o typie int[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 13 lis 2014, o 22:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysieks]]></name></author>
<updated>2014-11-13T19:32:08+01:00</updated>
<published>2014-11-13T19:32:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103802#p103802</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103802#p103802"/>
<title type="html"><![CDATA[Re: Konwersja zmiennej typu String na char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103802#p103802"><![CDATA[
Dzięki serdeczne za odpowiedź, a ja nad tym siedziałem ostatnie dwa wieczory.<br />wystarczy zadeklarować ZmiennaC na początku i już działa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Krótko - po co mi to ?<br />Jak już pisałem jestem początkujący - Arduino mam od paru dni.<br />Znalazłem w sieci sterowanie wyjściami poprzez stronę html.<br />tam za odczyt ze strony odpowiada konstrukcja <br />[syntax=cpp]if(strstr((char *)Ethernet::buffer + pos, &quot;GET /?status=ON&quot; ) != 0)[/syntax]<br />Aby umieścić wiele przycisków - chcę to zrobić w pętli, i dlatego potrzeba<br />mi zastąpić konstrukcję  &quot;GET /?status=ON&quot; zmienną.<br />Ponieważ ta zmienna ma typ char, chciałem połączyć 2 ciągi char np &quot;GET /?status=&quot; i dołączyć &quot;ON&quot; a następnie zapisać w zmiennej.<br />Problem w tym że nie znalazłem instrukcji jak połączyć ciągi typu char (Jak taka istnieje proszę o napisanie).<br /><br />W następnym ciągu myślowym - stworzyłem sobie zmienne typu String które mogłem już dodać.<br />i teraz chciałem to podstawić String zamiast &quot;GET /?status=ON&quot;<br /><br />Ale tutaj znowu problem - więc znalazłem instrukcję do zmiany typu String na char i ją zastosowałem,<br />[syntax=cpp]int dlugosc_len = ZmiennaA.length()+1 ;            // obliczamy długość zmiennej typu string<br />        char ZmiennaC&#91;dlugosc_len&#93;;                           // definiujemy zmienną char o długości str_len<br />        ZmiennaA.toCharArray(ZmiennaC, dlugosc_len);   // String ZmiennaA na char ZmiennaC[/syntax]<br />i wszystko by było dobrze gdyby nie te krzaczki - i tu dziękuję za pomoc.<br /><br />To moje pierwsze zetknięcie z C++, wcześniej coś tam programowałem w języku Clipper.<br />No i jak widać mam trochę problemów ze zrozumieniem typów zmiennych i wskaźników.<br /><br />Jeszcze takie pytanie korzystając z uprzejmości;<br />czy można dodać typ char do char - i jak się to robi ?<br />od czego zależy czy zmienna jest widoczna jako &quot;czysta&quot; zmienna, czy jako wskaźnik do innej zmiennej,<br />bo mam problem ze zrozumieniem tego faktu - jeżeli jest na to jakaś prosta odpowiedź.<br /><br />Dziękuję za pomoc. Rysiek S.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6545">rysieks</a> — 13 lis 2014, o 19:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-11-13T17:30:23+01:00</updated>
<published>2014-11-13T17:30:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103764#p103764</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103764#p103764"/>
<title type="html"><![CDATA[Re: Konwersja zmiennej typu String na char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103764#p103764"><![CDATA[
Zasięg zmiennej '<em>char <strong>ZmiennaC</strong>[]</em>' jest tylko do nawiasu klamrowego pętli. Wszystkie zmienne automatyczne istnieją tylko wewnątrz bloku kodu w której zostały zdefiniowane. W wyrażeniu <em>WartoscA = ZmiennaC</em> przypisujesz tylko wskaźnik na zmienną '<strong><em>ZmiennaC</em></strong>'. Po wyjściu z pętli '<strong><em>ZmiennaC</em></strong>' przestaje istnieć, obszar pamięci zajęty dotychczas przez ZmiennaC zostaje wykorzystany do czegoś innego, wskaźnik WartoscA wskazuje na śmieci.<br /><br />Po co w ogóle takie kombinacje? Ta zamiana ze String na tablicę znaków?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 13 lis 2014, o 17:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysieks]]></name></author>
<updated>2014-11-13T16:37:33+01:00</updated>
<published>2014-11-13T16:37:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103757#p103757</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103757#p103757"/>
<title type="html"><![CDATA[Konwersja zmiennej typu String na char]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9225&amp;p=103757#p103757"><![CDATA[
Witam. <br />Jestem na początku drogi Arduino, męczę się nad opisanym niżej problemem, <br />może koledzy podpowiedzą - co robię źle.<br /><br />Chcę dodać dwie wartości ciągów String, <br />a wynik zapisać do zmiennej char (WartoscA),<br />o ile w pętli przykładowej for - zmienna WartoscA jest wyświetlana prawidłowo,<br />to po opuszczeniu tej pętli przybiera wartość jakichś krzaczków.<br /><br />Pytanie - co robię źle ?<br />Jak zrobić żeby po opuszczeniu pętli for WartoscA była oczekiwana ?<br /><br />Podejrzewam że to jest coś związane ze zmianą typu zmiennej, ale szukając<br />rozwiązania nie mogę na nic trafić, albo nie rozumiem problemu / nie wiem gdzie szukać.<br />Gdyby ktoś mógł mnie naprowadzić byłbym wdzięczy.<br /><br /><br /><br />[syntax=cpp]String ZmiennaA  = &quot;abc&quot;;                                // to jest jedna zmienna<br />String ZmiennaB  = &quot;abc&quot;;                                // to jest druga zmienna <br />String Dodaj = &quot;Tresc_Poczatkowa_&quot;;                 // to jest wartosc do dodania <br /><br />char* WartoscA = &quot;to do zmiany&quot;;                     // w tej zmiennej chce miec wartosc wyniku<br /><br />void setup () <br />  {<br />    Serial.begin(9600);<br />  }<br /><br />void loop() <br />{<br />    for (int i=0; i&lt;1; i++);                            // pętla <br />    {<br />        ZmiennaA = Dodaj;                                <br />        ZmiennaB = String(WartoscB) ;                    <br />        ZmiennaA = ZmiennaA + ZmiennaB; <br />        <br />        int dlugosc_len = ZmiennaA.length()+1 ;          // obliczamy długość zmiennej typu string<br />        char ZmiennaC&#91;dlugosc_len&#93;;                      // definiujemy zmienną char o długości str_len<br />        ZmiennaA.toCharArray(ZmiennaC, dlugosc_len);     // konwersja String na char<br />        <br />        WartoscA = ZmiennaC;                             // podstawienie<br />        Serial.print (WartoscA); Serial.println(&quot; &lt; wewnatrz&quot;);   // tu jest dobrze wyswietlane <br />    }<br />        Serial.print (WartoscA); Serial.println(&quot; &lt; na zewnątrz&quot;);  // a tu sa krzaczki<br />        delay(20000);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6545">rysieks</a> — 13 lis 2014, o 16:37</p><hr />
]]></content>
</entry>
</feed>