Hej, Masz całkowita racje, ze to jest robota na około. Zdecydowanie wolałbym używać oryginalny kod z Supla, bo wówczas nie będę miał za wiele różnic w przyszłości, jakbym chciał zaktualizować kod względem nowej wersji Supla.
Jeszcze miałem ostatni pomysł "tymczasowy", użycia buttonów alokowanych w workspace Arduino czyli w sekcji
Code: Select all
void setup() {
....
buttonOpen->addAction(Supla::OPEN_OR_STOP, *rs1, Supla::ON_PRESS);
buttonClose->addAction(Supla::CLOSE_OR_STOP, *rs1, Supla::ON_PRESS);
}
Wyżej mamy dwa buttony przykładowe, jeden steruje roleta do góry obiektu "rs1" rolety, a drugi tą samą roleta w dół.
W sekcji loop {} uruchomiłem odbieranie ramek statusowych z mojego ArduinMega. I teraz.. mój pomysł, jakbym mógł wyłuskać obiekty ww. butonów w sekcji
void loop() {
SuplaDevice.iterate();
}
,
to mógłbym chociaż tymczasowo sterować wg. otrzymana ramka1 -> button1 itd.
A potem już poleci "jak po maśle", w kodzie supla, ten sam obiekt button, zostanie obsłużony w
Code: Select all
void RollerShutter::handleAction(int event, int action)
Jakbym wiedział ja to z nudów napisałbym ci ten kod który sam musisz napisać, ale musiałbyś mnie jakoś wprowadzić w to, a potem zapewne poprawić, bo ja to zatrzymałem się na C a a C++ to tylko trochę znam.
Pozdrawiam i dziękuję, że masz czas odpisać i zaplanować kolejny task.