Jeśli tworzę aplikację w UWP na przykład z Template 10. Używam C#Najlepsza praktyka umieszczania logiki GPIO w UWP
Chcę mieć logikę GpioController
w klasie lub w innym miejscu, które obsłuży wszystkie firmy wejścia i wyjścia, jak ustawić wszystkie szpilki i zdarzenia.
Przykładowo, po naciśnięciu przycisku urządzenie wyśle żądanie POST do serwera, to musi działać w dowolnym widoku.
Jeśli pójdę do widoku i chcę, aby uzyskać status szpilki, aby pokazać jak „Drzwi są otwarte”
Także jeśli na przykład czujnik jest wyzwalanie pin do wysokiej, jeśli zmienię zobacz, czy nie może wywołać zdarzenia buttonPin_ValueChanged
i lub ustawić go na LOW z jakiegokolwiek powodu, chyba że czujnik jest NISKI.
Nawet jeśli pinezka Power-on Pull to PullDown.
pin = gpio.OpenPin(12);
pin.SetDriveMode(GpioPinDriveMode.InputPullUp);
pin.Write(GpioPinValue.Low);
pin.ValueChanged += buttonPin_ValueChanged;
Nie sądzę, można po prostu napisać taką prostą klasę do abstrakcyjny stosowanie kołków GPIO. Elektronika jest bardziej skomplikowana niż w przypadku szpilek, które potrafią robić różne rzeczy w zależności od tego, co łączysz. Byłbym zainteresowany, aby zobaczyć, jakie masz odpowiedzi. –
Naprawdę nie rozumiem, jaki masz problem? Czy po prostu chcesz mieć możliwość interakcji z kontrolerem GPIO z dowolnego miejsca w twoim kodzie i otrzymywać powiadomienia o zmianach wartości pinów bez względu na to, który widok jest aktualnie wyświetlany? Czy to jest poprawne? –
Tak @robinmanuelthiel, jak pracownik tła lub coś takiego. Loguję ~ 8 statystyk/s. I nie mogę przegapić jednej zmiany, nawet jeśli przełączam widok. –