ClubCedille/jardiniot

Abstraire l'accès aux GPIO

Opened this issue · 0 comments

En ce moment, les fonctions de lectures doivent être modifiés pour être portés sur une nouvelle plateforme. C'est la constatation qui m'est douloureusement rendue évidente en travaillant sur la rev2.

Je propose de créer un nouveau module, un simple patron stratégie qui abstrait l'accès au GPIOs. Cela serait utile pour isoler le code nécessitant accès au matériel de celui qui est plus général et ne le requiert pas. J'implémenterai cela pour ESP32 et x86_64 à buts de tests.

Donc, à l'avenir, au lieu de changer le code de toutes les routines de toutes les implémentations, le programmeur ne fera qu'implémenter une interface de quelques fonctions.

Je propose d'appeller cette interface HardwareStrategy qui contiendra les methodes:

  • initialize(): pour toutes les actions à prendre avant d'utiliser le matériel.
  • read(int, bool): pour lire une pin.
  • read_analog(int): pour lire une tension analogique.
  • write(int, unsigned char): pour ecrire un etat sur une pin, de 0 - 255, 0 et 255 représentants false & true respectivement. Les valeures entre les deux peuvent être utilisé si l'actionneur utilisé est analogique.

il faut que le programmeur s’assure que cette pin existe sur la plateforme.