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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-13T10:37:20+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=50&amp;t=19790&amp;mode</id>
<entry>
<author><name><![CDATA[GoRo3]]></name></author>
<updated>2017-12-13T10:37:20+01:00</updated>
<published>2017-12-13T10:37:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200437#p200437</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200437#p200437"/>
<title type="html"><![CDATA[Re: Polimorfizm w programie dla Mikrokontrolera?!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200437#p200437"><![CDATA[
Dzięki koledzy za odpowiedź.<br /><br />Kurcze dwie odpowiedzi i dwa skrajnie różne podejścia <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> W weekend siądę do kodu i wrzuce tu na forum to może razem pokombinujemy <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=18553">GoRo3</a> — 13 gru 2017, o 10:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kijas1]]></name></author>
<updated>2017-12-11T20:00:12+01:00</updated>
<published>2017-12-11T20:00:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200362#p200362</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200362#p200362"/>
<title type="html"><![CDATA[Re: Polimorfizm w programie dla Mikrokontrolera?!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200362#p200362"><![CDATA[
Ad1. Czemu nie, jeśli nie braknie pamięci, to jak najbardziej, po to są takie udogodnienia żeby z nich korzystać, a nie dążyć do tego by ram był wypełniony zerami( w avr będzie go niestety szybko zjadało ze względu na vptr który jest umieszczany w ram, a nie rom)<br />Ad2. Tutaj musisz niestety podjąć decyzje odnośnie interfejsu jaki będą implementowały klasy dziedziczące, bo żeby później mieć listę obiektów potrzebujesz wskaźnik na klasę główną, bo inaczej bez rzutowania w dół nie wywołasz metod, które zostały później dodane.<br />Ad3. Ram zajmują zmienne plus vptr jeśli jest polimorfizm. Każda metoda polimorficzna będzie wywoływana z tablicy vptr, czyli im więcej metod tym większy obiekt.  <br />Ad4. Obiekty możesz serializować, jeśli nie są one zbyt skomplikowane wystarczy użyć memcpy czy coś podobnego.<br />Ogólnie to jednak na attiny i atmega za dużo nie poszalejesz obiektowo, z szablonami już prędzej, ale kto by je tam rozumiał.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4627">kijas1</a> — 11 gru 2017, o 20:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[GoRo3]]></name></author>
<updated>2017-12-11T15:53:01+01:00</updated>
<published>2017-12-11T15:53:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200352#p200352</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200352#p200352"/>
<title type="html"><![CDATA[Polimorfizm w programie dla Mikrokontrolera?!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19790&amp;p=200352#p200352"><![CDATA[
Cześć Wam! <br /><br />Jestem tutaj bardzo nowy i do tej pory dłubałem swoje projekty w zaciszu domowym jednak doszedłem do momentu gdzie muszę zaczerpnąć wiedzy bardziej doświadczonych osób - stąd liczę na pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Od jakiegoś czasu uczę się języka C++, a ponieważ najlepszą nauką jest praktyka, uczę się tego języka budująć własna stację meteo. Zamysł jest taki że baza posiada własne czujniki oraz  zbiera odczyty z mniejszych stellit. Wszystko leci przez MQTT do openHAB oraz jest dostępne przez WWW. <br /><br />-1x Baza to ESP8266 + czujniki BME 180 i DHT + ekran OLED + komunikacja czyli nRF24L01.<br />-3x Satelity wewnętrzne: ATtinny 85 + DHT + nRF24L01 + zasilanie bateryjne <br />-1x Satelita zewnętrzny to ATmega 168 + BME 180 nRFL01 + Czujnik pyłu + czujnik opadów deszczu. W przyszłości jeszcze odczyt kierunku i siły wiatru oraz poziomu opadów. zasilanie z sieci a docelowo bateria + panele słoneczne. <br /><br />Pytanie mam do Was ws. przetwarzania zebranych danych. Na początku wymyśliłem sobie to tak, że stworzyłem strukturę danych w których miałem szablon odebranych informacji czyli zmienne na odczyty z czujników. z samej struktury zrobiłem sobie dynamiczną listę obiektów stworzonej struktury zwiększającą się w zależności od ilości urządzeń podpiętych. Dało mi to elastyczność w dodawaniu nowych satelitów. Jednak natrafiłem na pewien problem. Mianowicie chodzi o ilość zmiennych potrzebnych do przetworzenia danych w strukturze: <br /><br />I tak: <br /><br />Dla bazy - 4 zmienne - wilgotność, temperatura, ciśnienie, nazwa <br />dla wew satelity - wilgotność, temperatura, stan baterii, nazwa<br />dla zew. satelity - wilgotność, temperatura, ciśnienie, informacja o tym czy pada deszcz, odczyt pyłów, nazwa<br /><br />komunikacja między satelitami a bazą idzie w paśmie 2,4Ghz a między bazą a openHAB po WiFi. <br /> <br />Pomyślałem że jest to świetny sposób aby wykorzystać polimorfizm czyli stworzyć klasę czujnik i dziedziczone od niej klasy satelita zewn. i satelita wew z odpowiednią ilością zmiennych w klasie zwiększającą funkcjonalność klasy zewnętrznej - ewentualnie chyba mogą też dziedziczyć struktury. <br /><br />W takim przypadku pytanie mam do znawców C++: <br /><br />1. Czy faktycznie tak można to wykorzystać i jest to optymalny sposób? <br />2. W jaki sposób zrealizować później dynamiczną listę obiektów? Do obiektu klasy głównej czy dziedziczącej?  <br />3. Czy jak mam klasę z różnymi metodami to jak tworzę sobie nowe obiekty tej klasy to kopiowane są również metody czy tylko zmienne wewnątrz klasy? - Zastanawiam się pod względem zużycia pamięci ram przy alokowaniu przestrzeni dla nowych obiektów klas.  <br />4. Czy da się w ogóle utworzone zmienne w nowych obiektach klas lub cały klasy zapisać do pamięci EPROM? Chciałbym aby dodane urządzenia były zapamiętane w przypadku utraty np. zasilania na bazie. <br /><br />Pewnie są to pytania laika ale od kilku dni głowie się jak to rozwiązać projektowo. A może macie jakieś lepsze rozwiązanie? <br /><br />Pozdrawiam!<br />G.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18553">GoRo3</a> — 11 gru 2017, o 15:53</p><hr />
]]></content>
</entry>
</feed>