#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Utilisation d'un codeur rotatif incrémental

# Importer les bibliothèques utilisées par le script
from gpiozero import Button
from signal import pause
# Cette bibliothèque permet de créer une file d'attente pour ranger les événements
# La file utilisée ici est de type FIFO = First In First Out = Premier entré Premier Sorti
import queue

# Créer la file d'attente FIFO
eventq = queue.Queue()

#Déclarer les entrées du codeur comme des boutons
pin_S2 = Button(24)                      
pin_S1 = Button(25)                      

# Traitement du front montant de S1
def pin_S1_rising():                     
    if pin_S2.is_pressed: eventq.put(-1) 

# Traitement du front montant de S2
def pin_S2_rising():                    
    if pin_S1.is_pressed: eventq.put(1) 

# Attente des événements lors de la rotation du bouton
pin_S1.when_pressed = pin_S1_rising      
pin_S2.when_pressed = pin_S2_rising      

while True:
    # Affichage d'une valeur en sortie de la file d'attente FIFO        
    message = eventq.get()
    print(message)

pause()