Myślałem o wykorzystaniu:
https://github.com/klew/arduino/blob/ma ... /channel.h
Jakieś propozycje jak to zrobić ?
Code: Select all
#define RF_BUTTON
Code: Select all
#ifdef RF_BUTTON
#include <RCSwitch.h> //https://github.com/sui77/rc-switch (GPL)
RCSwitch mySwitch = RCSwitch();
#include <supla/element.h>
#endif
Code: Select all
...
#ifdef RF_BUTTON
main_page += "<i>";
main_page += "<input type=\"number\" name=\"rfb\" value=\"";
if (configured) {
main_page += String(rf_btn_value);
}
main_page += "\">";
main_page += "<label>RF button value</label>";
main_page += "</i>";
#endif
...
Code: Select all
//#define RF_BUTTON
Code: Select all
for (auto channel = Supla::Channel::begin(); channel != nullptr; channel = channel->next()) {
channel->doSomething();
}
Na chwilę obecną nie potrzebuję innych potrzeb niż te które zaproponowałeśklew wrote: Fri Mar 13, 2020 9:06 am Define'y z headerów będą dodane zależnie od tego, czy zrobisz include'a, czy nie. Na tej podstawie nie odkryjesz czy dany kanał jest dodany.
Najlepiej pobiegać po tej liście kanałów z channel.h.
Dorzucę jakieś metody get aby pobierać dane, które są potrzebne.
Napisz tylko co potrzebujesz odczytać?
- channel type
- ostatnio odcyztana wartość (o tym już kiedyś pisaliśmy)
- coś jeszcze?
Po kanałach można przejść przy pomocy:Code: Select all
for (auto channel = Supla::Channel::begin(); channel != nullptr; channel = channel->next()) { channel->doSomething(); }
Na razie jedyny get, który jest to "getChannelNumber()".
Ok, o ile nie zasnę wieczorem, to dziś to dorzucękrycha88 wrote: Fri Mar 13, 2020 9:57 am
Na chwilę obecną nie potrzebuję innych potrzeb niż te które zaproponowałeś![]()
Dorzuciłem getChannelType()
działa jak należy, dzięki
wydaje się to już nie aktualne. Bo właśnie wykorzystuję metody dla konkretnych sensorów getValue() czy getTemp() i getHumi().klew wrote: Fri Mar 13, 2020 11:29 pm Niestety "last read value" jeszcze nie dorzucam. To trzeba będzie zrobić na poziomie konkretnych sensorów ze względu na różne zwracane typy.
Teraz aby odczytać wartość oraz rodzaj czujnika wykorzystuję globalnego vector, chcę się ich pozbyć bo niepotrzebnie zajmują pamięć. Chciałbym wykorzystać to rozwiązanie zaproponowane przez Ciebie ale brakuje możliwości odczytania ostatniej wartości kanału. Czy nie dało by się dorobić prostych metod odczytujących wartość z reg_dev.channels[channelNumber].value?klew wrote: Fri Mar 13, 2020 9:06 am Define'y z headerów będą dodane zależnie od tego, czy zrobisz include'a, czy nie. Na tej podstawie nie odkryjesz czy dany kanał jest dodany.
Najlepiej pobiegać po tej liście kanałów z channel.h.
Dorzucę jakieś metody get aby pobierać dane, które są potrzebne.
Napisz tylko co potrzebujesz odczytać?
- channel type
- ostatnio odcyztana wartość (o tym już kiedyś pisaliśmy)
- coś jeszcze?
Po kanałach można przejść przy pomocy:Code: Select all
for (auto channel = Supla::Channel::begin(); channel != nullptr; channel = channel->next()) { channel->doSomething(); }
Na razie jedyny get, który jest to "getChannelNumber()".