79 lines
1.5 KiB
C++
79 lines
1.5 KiB
C++
#include "main.hpp"
|
|
#include "autom.cpp"
|
|
#include <thread>
|
|
#include <atomic>
|
|
|
|
int marche_precedent = 0;
|
|
int marche_frontmontant = 0;
|
|
|
|
int arret_precedent = 1;
|
|
int arret_frontdescedant = 0;
|
|
|
|
int b0_precedent = 0;
|
|
int b0_frontmontant = 0;
|
|
int b1_precedent = 0;
|
|
int b1_frontmontant = 0;
|
|
int b2_precedent = 0;
|
|
int b2_frontmontant = 0;
|
|
int b3_precedent = 0;
|
|
int b3_frontmontant = 0;
|
|
int b4_precedent = 0;
|
|
int b4_frontmontant = 0;
|
|
int b5_precedent = 0;
|
|
int b5_frontmontant = 0;
|
|
int b6_precedent = 0;
|
|
int b6_frontmontant = 0;
|
|
int b7_precedent = 0;
|
|
int b7_frontmontant = 0;
|
|
|
|
int main()
|
|
{
|
|
mqtt_open(&client);
|
|
|
|
std::atomic<bool> running{true};
|
|
|
|
while (running)
|
|
{
|
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
}
|
|
|
|
mqtt_close();
|
|
return 0;
|
|
}
|
|
|
|
void process() {
|
|
|
|
// Détection du front montant (état courant supérieur à l'état précédent)
|
|
b0_frontmontant = b0 > b0_precedent;
|
|
b1_frontmontant = b1 > b1_precedent;
|
|
b2_frontmontant = b2 > b2_precedent;
|
|
b3_frontmontant = b3 > b3_precedent;
|
|
b4_frontmontant = b4 > b4_precedent;
|
|
b5_frontmontant = b5 > b5_precedent;
|
|
b6_frontmontant = b6 > b6_precedent;
|
|
b7_frontmontant = b7 > b7_precedent;
|
|
|
|
s0 = i0;
|
|
|
|
if (b1_frontmontant == 1)
|
|
{
|
|
s1 = !s1; // Inversion
|
|
}
|
|
|
|
if (b2_frontmontant == 1)
|
|
{
|
|
s2 = !s2; // Inversion
|
|
}
|
|
|
|
// Prêt pour un nouveau tour
|
|
// L'état courant devient l'état précédent
|
|
b0_precedent = b0;
|
|
b1_precedent = b1;
|
|
b2_precedent = b2;
|
|
b3_precedent = b3;
|
|
b4_precedent = b4;
|
|
b5_precedent = b5;
|
|
b6_precedent = b6;
|
|
b7_precedent = b7;
|
|
}
|