6 votes

Meilleure pratique pour mettre la logique GPIO dans UWP

Si je crée une application en UWP par exemple avec Modèle 10 . J'utilise C#

Je veux avoir le GpioController la logique dans une classe ou quelque part qui gérera toutes les entrées et sorties, comme la configuration des broches et des événements.

Par exemple, lorsqu'un bouton est pressé, il envoie une requête POST au serveur, ceci doit fonctionner dans n'importe quelle vue.

Si je vais dans une vue et que je veux obtenir le statut d'une épingle à montrer comme "La porte est ouverte"

De même, si, par exemple, un capteur déclenche une broche vers le niveau HAUT, si je change de vue, il ne peut pas se déclencher. buttonPin_ValueChanged et ou le mettre sur BAS pour quelque raison que ce soit, sauf si le capteur est BAS.

Même si les broches Power-on Pull sont PullDown.

pin = gpio.OpenPin(12);
pin.SetDriveMode(GpioPinDriveMode.InputPullUp);
pin.Write(GpioPinValue.Low);
pin.ValueChanged += buttonPin_ValueChanged;

1voto

NonCreature0714 Points 1851

Vous pouvez créer un GpioController dans votre classe initiale, et le passer comme un objet aux autres classes.

Par exemple :

class BaseClass {
    GpioController gpio;

    void createGpioController(){
        gpio = new GpioController(/*Constuctor arguments here.*/);
    }

    void moveToNextClass(NextClass next){
        //Instantiate next class with any special constructors.
        next.gpio = this.gpio; 
        //Launch next class with same gpio member values. 
    }
}

class NextClass: BaseClass {
   GpioController gpio; //Will be assigned by last class.
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X