#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <wiringPi.h>

#define LED_ROUGE 1
#define LED_VERTE 0
#define LED_JAUNE 2


int main (int argc, char** argv)
{
	// déclaration des variables
    char i;
    char EtatIO=0;
    char EtatLED_Rouge=0;
    char EtatLED_Verte=0;
    char EtatLED_Jaune=0;

/* Test du mode "root". Si pas identifié
en mode "root", alors affichage d'un message d'erreur */
      if(getuid()!=0) //wiringPi requires root privileges
      {
        printf("Error:wiringPi must be run as root.\n");
        return 1;
      }
/* Configuration des bibliotheques WPi
   afin d'utiliser la numérotation des
   GPIO selon les numéros WPi.
   Si la bibliothèque ne s'initialise pas,
   affichage d'un message d'erreur*/
      if(wiringPiSetup()==-1)
      {
        printf("Error:wiringPi setup failed.\n");
        return 1;
      }
	// Broches WPi 1&2 en sortie
	pinMode(LED_ROUGE,OUTPUT);
	pinMode(LED_VERTE,OUTPUT);
	pinMode(LED_JAUNE,OUTPUT);
while(1)
{
    system("clear");
    printf("Indiquez l'état de la LED rouge (0 ou 1): ");
    scanf("%d",&EtatLED_Rouge);
    printf("\n");
    if((EtatLED_Rouge == 0) | (EtatLED_Rouge == 1))
    {
        digitalWrite(LED_ROUGE,EtatLED_Rouge);
        EtatLED_Rouge=digitalRead(LED_ROUGE);
        if(EtatLED_Rouge == 1) printf("La LED rouge est maintenant allumée.\n\n");
        else printf("La LED rouges est maintenant éteinte.\n\n");
        }
    else printf("Valeur saisie incorrecte");

    printf("Indiquez l'état de la LED verte(0 ou 1): ");
    scanf("%d",&EtatLED_Verte);
    printf("\n");
    if((EtatLED_Verte == 0) | (EtatLED_Verte == 1))
    {
        digitalWrite(LED_VERTE,EtatLED_Verte);
        EtatLED_Verte=digitalRead(LED_VERTE);
        if(EtatLED_Verte == 1) printf("La LED verte est maintenant allumée.\n\n");
        else printf("La LED verte est maintenant éteinte.\n\n");
        }
    else printf("Valeur saisie incorrecte");

    printf("Indiquez l'état de la LED jaune (0 ou 1): ");
    scanf("%d",&EtatLED_Jaune);
    printf("\n");
    if((EtatLED_Jaune == 0) | (EtatLED_Jaune == 1))
    {
        digitalWrite(LED_JAUNE,EtatLED_Jaune);
        EtatLED_Jaune = digitalRead(LED_JAUNE);
        if(EtatLED_Jaune == 1) printf("La LED jaune est maintenant allumée.\n\n");
        else printf("La LED jaune est maintenant éteinte.\n\n");
        }
    else printf("Valeur saisie incorrecte");

getchar();
getchar();

};

    return 0;
}
