/*! \file cesi1.ino
    \brief Premier TD pour le CESI.
    \author Bertrand Vandeportaele IUT GEII
    \date  28/10/2021
*/ 
#include "lib_io_tp.h"
#include "classmae.h"

CStateMachine MaMAE;
/** Variable globale indiquant la broche Arduino connectée à la LED */
const unsigned int LEDPIN=3;
/** Variable globale indiquant la broche Arduino connectée au bouton poussoir */
const unsigned int BUTTONPIN=2;
/** Variable globale permettant de stocker la dernière valeur écrite sur le 
    port de sortie, pour pouvoir en modifier uniquement certains bits */
unsigned char imageSortie=0;  

////////////////////////////////////////////////////////////////////
void setup(){
  
    char nom[]="JAKMOUR VINUESA";
    //adresse ip de la boucle locale pour simulation
    //char ip[]="127.0.0.1";
    Serial.begin(115200);
    //adresse ip de la maquette arduino réelle sur le réseau iut gomette bleue
    //char ip[]="172.16.6.60";
    //char port[]="4242";  
    SetupES();
    readPort();
    Serial.println(nom);
    Serial.println("Elapsed time:");
    Serial.println(millis());
    Serial.println("milliseconds\n");
    delay(1000);
}
//////////////////////////////////////////////////////
void loop(){
    unsigned int periodiciteTache1=1000;
    static unsigned long timerTache1 = millis();
    if (millis() - timerTache1 >= periodiciteTache1) {
        timerTache1 += periodiciteTache1;
        unsigned char val = readPort();

    
    Serial.print("Entree:");
    Serial.println(val,HEX);

        MaMAE.setEntree(val);
        writePort(MaMAE.getSortie());
        MaMAE.clock();
    }
    unsigned int periodiciteTache2=1000;
    static unsigned long timerTache2 = millis();
    if (millis() - timerTache2 >= periodiciteTache2) {
        timerTache2 += periodiciteTache2;
        //static unsigned int cpt=0;
        //cpt++;
        //char chaine[100];
        Serial.println("etat=");
        Serial.println(MaMAE.getEtat());
    }
}
74HC165
74HC595
D0D1D2D3D4D5D6D7GNDLOGIC