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

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

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: 18335
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

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

Dzięki za szybką odpowiedz :)
vcompl
Posty: 158
Rejestracja: pn kwie 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ć?
vcompl
Posty: 158
Rejestracja: pn kwie 11, 2016 1:32 pm

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

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: 158
Rejestracja: pn kwie 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);
vcompl
Posty: 158
Rejestracja: pn kwie 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.
ODPOWIEDZ

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