SUPLA - Raspberry Pi - obsługa przekażników

vcompl
Posty: 156
Rejestracja: pn kwie 11, 2016 1:32 pm

śr lip 03, 2019 11:25 am

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
Awatar użytkownika
pzygmunt
Posty: 8867
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

śr lip 03, 2019 11:36 am

Nie rozumiem
vcompl
Posty: 156
Rejestracja: pn kwie 11, 2016 1:32 pm

śr lip 03, 2019 12:47 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?
vcompl
Posty: 156
Rejestracja: pn kwie 11, 2016 1:32 pm

śr lip 03, 2019 2:01 pm

Dzięki za szybką odpowiedz :)
vcompl
Posty: 156
Rejestracja: pn kwie 11, 2016 1:32 pm

pn lip 08, 2019 8:04 am

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ć?
vcompl
Posty: 156
Rejestracja: pn kwie 11, 2016 1:32 pm

pn lip 08, 2019 11:50 am

Pytanie [jak to poprawić?] skierowane jest głównie do @pzygmunt ale liczę też na innych znawców kodu Supli.
Awatar użytkownika
pzygmunt
Posty: 8867
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

pn lip 08, 2019 3:50 pm

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.
vcompl
Posty: 156
Rejestracja: pn kwie 11, 2016 1:32 pm

pn lip 08, 2019 4:48 pm

Masz na myśli to miejsce w kodzie?

gpio_value->value = hi == 0 ? 0 : 1;
gpio_set_value(port, gpio_value->value);
vcompl
Posty: 156
Rejestracja: pn kwie 11, 2016 1:32 pm

pn lip 08, 2019 5:36 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.
ODPOWIEDZ

Wróć do „FAQ / Jak to zrobić”