Paramerty kanału z poziomu urządzenia - WYWALA URZĄDZENIE

PrzemexPL
Posts: 23
Joined: Fri May 01, 2020 2:14 pm

Post

Witam. Chciałem sobie hardcode w funkcji setup() ustawić parametry 3 kanałów. Zauważyłem, że jak którąkolwiek linijkę odkomentuje. ESP sie wywala, resetuje, problem z watchdogiem. O co chodzi?

Code: Select all

	// SW->getChannel()->setDefaultFunction(SUPLA_CHANNELFNC_CONTROLLINGTHEGARAGEDOOR);
	// RST->getChannel()->setDefaultFunction(SUPLA_CHANNELFNC_CONTROLLINGTHEGARAGEDOOR);
	// Status->getChannel()->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);

	// SW->getChannel()->setInitialCaption("on off");
	// SRST->getChannel()->setInitialCaption("rest");
	// Status->getChannel()->setInitialCaption("status");[code]
[/code]


oczywiście nad funkcjami mam:

Code: Select all

auto SW = new Supla::Control::Relay(SW_PIN);
auto RST = new Supla::Control::Relay(RST_PIN);
auto Status = new Supla::Sensor::Binary(LED_PIN, true, false);
auto suplaButtonCfg = new Supla::Control::Button(PROGRAM_BUTTON, false, true);

stack:

Code: Select all

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Stack smashing detected.

Exception (5):
epc1=0x40100127 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>

ctx: sys
sp: 3fffffa0 end: 3fffffb0 offset: 0000
3fffffa0:  3fffdad0 00000000 3fff21cc 40100127  
<<<stack<<<

--------------- CUT HERE FOR EXCEPTION DECODER ---------------
stack2:

Code: Select all

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Soft WDT reset

Exception (4):
epc1=0x4021e0f2 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>

ctx: sys
sp: 3ffff550 end: 3fffffb0 offset: 0160
User avatar
vajera
Posts: 7293
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 291 times
Been thanked: 161 times

Post

Sprawdź to:

Code: Select all

	
SW->setDefaultFunction(SUPLA_CHANNELFNC_CONTROLLINGTHEGARAGEDOOR);
RST->setDefaultFunction(SUPLA_CHANNELFNC_CONTROLLINGTHEGARAGEDOOR);
Status->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);

SW->setInitialCaption("on off");
SRST->setInitialCaption("rest");
Status->setInitialCaption("status");
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

Jaki ESP?
Jaka wersja SuplaDevice?
Udostępnij gdzieś pełne źródła i daj pełne logi od startu urządzenia
Najlepsze suple dla Twojego domu :mrgreen:
PrzemexPL
Posts: 23
Joined: Fri May 01, 2020 2:14 pm

Post

vajera wrote: Mon Feb 03, 2025 2:34 pm Sprawdź to:

Code: Select all

	
SW->setDefaultFunction(SUPLA_CHANNELFNC_CONTROLLINGTHEGARAGEDOOR);
RST->setDefaultFunction(SUPLA_CHANNELFNC_CONTROLLINGTHEGARAGEDOOR);
Status->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);

SW->setInitialCaption("on off");
SRST->setInitialCaption("rest");
Status->setInitialCaption("status");
To samo. Ale jutro sprawdzę, może coś pominąłem i inaczej napisałeś.
klew wrote: Mon Feb 03, 2025 4:03 pm Jaki ESP?
Jaka wersja SuplaDevice?
Udostępnij gdzieś pełne źródła i daj pełne logi od startu urządzenia
ESP-07
SDK 25.01.04-dev
kod i to co na serialu jutro postaram się ogarnąć. Ale w sumie poza tymi liniami wszystko jest jak w standardowym stockowym kodzie do uruchomienia urządzenia od strzała.
PrzemexPL
Posts: 23
Joined: Fri May 01, 2020 2:14 pm

Post

User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

PrzemexPL wrote: Tue Feb 04, 2025 1:00 pm @klew

https://pastebin.com/wjd0uRc5
Tutaj jest tylko "soft wdt reset" i w zasadzie poza komunikatem, że WDT nie dostał czasu procesora "na czas", to nic się nie stało.

Nie wiem dlaczego tam wdt się pojawiło. Włącz przy logach dodawanie jakiegoś "timestamp" (z milisekundową rozdzielczością), aby było widać kiedy dany log się pojawił.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

Chyba, że ten WDT to fałszywy alarm i winny jest problem ze stosem (co może mieć takie efekty uboczne).
Tam jest dość mocne zagnieżdżenie wywoływanych metod i może rzeczywiście stosu mu brakuje.

Dodam tam jakąś lekką optymalizację i zobaczymy czy pomoże.
Najlepsze suple dla Twojego domu :mrgreen:
PrzemexPL
Posts: 23
Joined: Fri May 01, 2020 2:14 pm

Post

klew wrote: Tue Feb 04, 2025 1:07 pm
PrzemexPL wrote: Tue Feb 04, 2025 1:00 pm @klew

https://pastebin.com/wjd0uRc5
Tutaj jest tylko "soft wdt reset" i w zasadzie poza komunikatem, że WDT nie dostał czasu procesora "na czas", to nic się nie stało.

Nie wiem dlaczego tam wdt się pojawiło. Włącz przy logach dodawanie jakiegoś "timestamp" (z milisekundową rozdzielczością), aby było widać kiedy dany log się pojawił.
https://pastebin.com/kCHHiTjH

Pierwszy jest Stack smashing dopiero potem pętla WDT
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

PrzemexPL wrote: Wed Feb 05, 2025 3:31 pm Pierwszy jest Stack smashing dopiero potem pętla WDT
Przed chwilą wrzuciłem do repo trochę zmian, które mam nadzieję, że pomogą. Zaktualizujesz sobie bibliotekę bezpośrednio z githuba i sprawdzisz czy problem został rozwiązany?
Najlepsze suple dla Twojego domu :mrgreen:
PrzemexPL
Posts: 23
Joined: Fri May 01, 2020 2:14 pm

Post

Wyczyściłem środowisko, od nowa zassałem i wgrałem. Wszystko ładnie działa. Zauważyłem, że wykrzacza mi się jak definiuje funkcję bezpośrednio w Relay'u zamiast odwoływać się metodą w setup'ie. Więc, dałem całe ustawianie nazw i funkcji kanałów w setupie i działa :D

Szkoda, że nie ma custom ustawień kanału, nawet zamkniętych typu: listy rozwijane z funkcjonalnością/nazewnictwem.
Obecnie bazuje na bramie garażowej i zamiast Włącz/Wyłącz mam Otwórz/Zamknij :lol:
Nazwa swoja, ikonki swoje, to idzie się przyzwyczaić ;)

Return to “Pomoc”