#include #include #include #include #include // random seed #include // sleep #include #include "actionneurs.h" #include "debug.h" #include "i2c.h" #include "ihm.h" #include "imu.h" #include "movement.h" #include "motor.h" #include "position.h" pthread_mutex_t sRunning; void endRunning(int signal) { (void)signal; pthread_mutex_unlock(&sRunning); } int main() { if (wiringPiSetup() < 0) { fprintf(stderr, "Impossible d'initialiser WiringPi\n"); exit(EXIT_FAILURE); } initI2C(); srand(time(NULL)); configureDebug(); configureIMU(); configureActionneurs(); configurePosition(); configureMovement(); startDebug(); debugSetActive(true); struct position pos = {1000, 0, 0 }; setDestination(&pos); waitDestination(); for (;;) { setLoquet(false); setLoquet(true); } printf("Done\n"); // Bloque jusqu'à l'arrivée d'un signal pthread_mutex_init(&sRunning, NULL); signal(SIGINT, endRunning); signal(SIGTERM, endRunning); signal(SIGQUIT, endRunning); pthread_mutex_lock(&sRunning); pthread_mutex_lock(&sRunning); deconfigureMovement(); deconfigurePosition(); deconfigureActionneurs(); deconfigureIMU(); deconfigureDebug(); return EXIT_SUCCESS; }