Obsługa przycisków w SuplaDevice

krycha88
Posty: 5199
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

Spróbowałem to samo zrobić nie za pomocą vektorów i ten sam efekt ;/

Kod: Zaznacz cały

  Supla::Control::Relay *relay = new Supla::Control::Relay(5);
  Supla::Control::Button *button = new Supla::Control::Button(0, true);
  button->willTrigger(*relay, Supla::ON_PRESS, Supla::TOGGLE);
PS.
Udało się okazała się rzecz banalna! Jeżeli operuje się na wskaźnikach to kod powyższy musi być przed SuplaDevice.begin w innym przypadku nie ma to znaczenia w którym miejscu się go odpali :)
https://gui-generic-builder.supla.io/
Awatar użytkownika
klew
Posty: 8289
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

krycha88 pisze: ndz maja 24, 2020 8:26 am Spróbowałem to samo zrobić nie za pomocą vektorów i ten sam efekt ;/

Kod: Zaznacz cały

  Supla::Control::Relay *relay = new Supla::Control::Relay(5);
  Supla::Control::Button *button = new Supla::Control::Button(0, true);
  button->willTrigger(*relay, Supla::ON_PRESS, Supla::TOGGLE);
PS.
Udało się okazała się rzecz banalna! Jeżeli operuje się na wskaźnikach to kod powyższy musi być przed SuplaDevice.begin w innym przypadku nie ma to znaczenia w którym miejscu się go odpali :)
Wszystkie elementy sterujące muszą być przed "begin". Inaczej nie zostanie odpalona metoda "onInit" i element się nie zainicjalizuje.

"willTrigger" warto dać po "begin", bo aktualnie nie ma zabezpieczenia i może się okazać, że "button" jest dodany wcześniej i postanowi on wykonać akcję na nie zainicjalizowanym przekaźniku. To tymczasowa niedogodność - planuję się pozbyć tego problemu
Widzimy się na Supla Offline Party vol. 2 :!:
krycha88
Posty: 5199
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

Jak ustawić domyślny stan przekaźnika po starcie urządzenia, np. chciał bym ustawić aby przekaźnik był na ON?
https://gui-generic-builder.supla.io/
Awatar użytkownika
klew
Posty: 8289
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

krycha88 pisze: sob cze 06, 2020 6:28 pm Jak ustawić domyślny stan przekaźnika po starcie urządzenia, np. chciał bym ustawić aby przekaźnik był na ON?
Na chwilę obecną możesz po "SuplaDevice.begin()" wstawić przekaznik->turnOn();
Widzimy się na Supla Offline Party vol. 2 :!:
krycha88
Posty: 5199
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

klew pisze: sob cze 06, 2020 9:32 pm
krycha88 pisze: sob cze 06, 2020 6:28 pm Jak ustawić domyślny stan przekaźnika po starcie urządzenia, np. chciał bym ustawić aby przekaźnik był na ON?
Na chwilę obecną możesz po "SuplaDevice.begin()" wstawić przekaznik->turnOn();
Faktycznie działa.

Mam przekaźniki sterowane stanem niskim i podłączone do nodemcu. Przekaźnika po przełączeniu z aplikacji zawsze jest odwrotny niezależnie od ustawień. Przełączenie dla przycisku ustawia odpowiednie stany.
https://gui-generic-builder.supla.io/
Awatar użytkownika
lukfud
Posty: 2101
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

krycha88 pisze: ndz cze 07, 2020 10:24 am Mam przekaźniki sterowane stanem niskim i podłączone do nodemcu. Przekaźnika po przełączeniu z aplikacji zawsze jest odwrotny niezależnie od ustawień. Przełączenie dla przycisku ustawia odpowiednie stany.

Kod: Zaznacz cały

new Supla::Control::Relay(pin, false);
nie działa poprawnie?
https://www.facebook.com/groups/supladiy/
krycha88
Posty: 5199
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

lukfud pisze: ndz cze 07, 2020 12:33 pm
krycha88 pisze: ndz cze 07, 2020 10:24 am Mam przekaźniki sterowane stanem niskim i podłączone do nodemcu. Przekaźnika po przełączeniu z aplikacji zawsze jest odwrotny niezależnie od ustawień. Przełączenie dla przycisku ustawia odpowiednie stany.

Kod: Zaznacz cały

new Supla::Control::Relay(pin, false);
nie działa poprawnie?
Błąd był po mojej stronie a nie biblioteki :)
https://gui-generic-builder.supla.io/
Awatar użytkownika
lukfud
Posty: 2101
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

@klew,
wczoraj zauważyłem, że przy braku połączenia z serwerem (wyłączone raspberry) przycisk nie działa za każdym naciśnięciem.
To jest normalne zachowanie, że musi się wstrzelić pomiędzy próbę połączenia, czy ja coś namieszałem?
https://www.facebook.com/groups/supladiy/
Awatar użytkownika
klew
Posty: 8289
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

lukfud pisze: pn cze 08, 2020 7:37 am @klew,
wczoraj zauważyłem, że przy braku połączenia z serwerem (wyłączone raspberry) przycisk nie działa za każdym naciśnięciem.
To jest normalne zachowanie, że musi się wstrzelić pomiędzy próbę połączenia, czy ja coś namieszałem?
Na EPS czy Arduino Mega?
Funkcje sieciowe na Arduino są niestety blokujące, więc pewnie stąd ten efekt. Pewnie trzeba będzie przerzucić obsługę większości rzeczy na przerwania.
Widzimy się na Supla Offline Party vol. 2 :!:
krycha88
Posty: 5199
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

lukfud pisze: pn cze 08, 2020 7:37 am @klew,
wczoraj zauważyłem, że przy braku połączenia z serwerem (wyłączone raspberry) przycisk nie działa za każdym naciśnięciem.
To jest normalne zachowanie, że musi się wstrzelić pomiędzy próbę połączenia, czy ja coś namieszałem?
też to zauważyłem, ustaw sobie setTimeout(500) w esp_wifi.h w setupie i będzie znaczna poprawa :)
https://gui-generic-builder.supla.io/
ODPOWIEDZ

Wróć do „Arduino IDE”