Aby nie błądzić i wywarzać otwartych dzwi
@pzygmunt - w wersji kodu dla Raspberry Pi (supla-dev ) - w których miejscach kodu trzeba zmienić obsługę logiki dla przekażnika (zmianić na 0 w stanie ON) ?
To zmiana na potrzeby nakładki :
https://botland.com.pl/pl/rozszerzenia- ... ry-pi.html
SUPLA - Raspberry Pi - obsługa przekażników
-
- Posts: 158
- Joined: Mon Apr 11, 2016 1:32 pm
Nakładka ta sterowana jest 0 dla stanu ON i 1 dla stanu OFF
np dla kanału 26
echo 0 > /sys/class/gpio/gpio26/value włącza przekażnik
W supla-dev dla Raspberry Pi jest na odwrót.
chciałbym zdefiniować nowy typ przekażnika i ustawić dla niego odwróconą logikę.
Jak to zrobić? Możesz wskazać miejsca w kodzie?
np dla kanału 26
echo 0 > /sys/class/gpio/gpio26/value włącza przekażnik
W supla-dev dla Raspberry Pi jest na odwrót.
chciałbym zdefiniować nowy typ przekażnika i ustawić dla niego odwróconą logikę.
Jak to zrobić? Możesz wskazać miejsca w kodzie?
-
- Posts: 18946
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
Musisz zmienić dla set i get.
https://github.com/SUPLA/supla-core/blo ... -io.c#L980
https://github.com/SUPLA/supla-core/blo ... io.c#L1097
https://github.com/SUPLA/supla-core/blo ... -io.c#L980
https://github.com/SUPLA/supla-core/blo ... io.c#L1097
-
- Posts: 158
- Joined: Mon Apr 11, 2016 1:32 pm
Zaimplementowałem tą zmianę.
Aby poprawnie (w odwróconej logice) supla-dev zamykał się musiałem jeszcze dodać wywołania gpio_set_value w procedurze channelio_free
Nie wiem czy dobrze wymusiłem stany wyjściowe (zamknięty) w odwróconej logice w channelio_channel_init - powinienem móc odczytać stan zamknięcia ale nie mogłem znaleść miejsca gdzie to trzeba poprawić
ale efekt końcowy jest częsciowy:
- przyciski na aplikacji Android działają odwrotnie tzn - przycisk po lewej stronie zamyka przełacznik ALE ikona zmienia się na stan ON, przycisk po prawej stronie otwiera przełącznik ALE ikona NIE zmienia się na ON.
Jak to poprawić?
Aby poprawnie (w odwróconej logice) supla-dev zamykał się musiałem jeszcze dodać wywołania gpio_set_value w procedurze channelio_free
Nie wiem czy dobrze wymusiłem stany wyjściowe (zamknięty) w odwróconej logice w channelio_channel_init - powinienem móc odczytać stan zamknięcia ale nie mogłem znaleść miejsca gdzie to trzeba poprawić
ale efekt końcowy jest częsciowy:
- przyciski na aplikacji Android działają odwrotnie tzn - przycisk po lewej stronie zamyka przełacznik ALE ikona zmienia się na stan ON, przycisk po prawej stronie otwiera przełącznik ALE ikona NIE zmienia się na ON.
Jak to poprawić?
-
- Posts: 158
- Joined: Mon Apr 11, 2016 1:32 pm
Pytanie [jak to poprawić?] skierowane jest głównie do @pzygmunt ale liczę też na innych znawców kodu Supli.
-
- Posts: 18946
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
Wygląda na to, że przekombinowałeś. Wystarczyło w miejscu gdzie odczytujesz wartość bezpośrednio z GPIO dodać wykrzyknik. To samo w miejscu gdzie ustawiasz stan gpio.
-
- Posts: 158
- Joined: Mon Apr 11, 2016 1:32 pm
Masz na myśli to miejsce w kodzie?
gpio_value->value = hi == 0 ? 0 : 1;
gpio_set_value(port, gpio_value->value);
gpio_value->value = hi == 0 ? 0 : 1;
gpio_set_value(port, gpio_value->value);
-
- Posts: 158
- Joined: Mon Apr 11, 2016 1:32 pm
Dodam jeszcze, że w obecnym stanie (po mojej poprawce) sam przekażnik sterowany jest poprawnie
DEBUG[1562606940.802268] gpio_set_value port: 26, value: 0
DEBUG[1562606943.807507] gpio_set_value port: 26, value: 1
value 0 go włącza a 1 wyłącza
Nie wiem czy się dobrze zrozumieliśmy. Niepoprawnie zmieniają się ikony [akurat mam ustawiony wł/wył] w aplikacji Android
@pzygmunt - aby uniknąć dłuższej rozmowy tu na forum prośba o potwierdzenie linii kodu w których trzeba wprowadzić poprawki aby działał poprawnie w odwróconej logice przekaźnik i ikony w aplikacji mobilnej.
DEBUG[1562606940.802268] gpio_set_value port: 26, value: 0
DEBUG[1562606943.807507] gpio_set_value port: 26, value: 1
value 0 go włącza a 1 wyłącza
Nie wiem czy się dobrze zrozumieliśmy. Niepoprawnie zmieniają się ikony [akurat mam ustawiony wł/wył] w aplikacji Android
@pzygmunt - aby uniknąć dłuższej rozmowy tu na forum prośba o potwierdzenie linii kodu w których trzeba wprowadzić poprawki aby działał poprawnie w odwróconej logice przekaźnik i ikony w aplikacji mobilnej.