2018-05-09 09:57:11 +02:00
|
|
|
#include <pthread.h>
|
|
|
|
#include <signal.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <time.h> // random seed
|
|
|
|
#include <unistd.h> // sleep
|
|
|
|
#include <wiringPi.h>
|
|
|
|
|
|
|
|
#include "CF.h"
|
|
|
|
#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();
|
|
|
|
configureCF();
|
|
|
|
configureIMU();
|
2018-05-09 14:24:12 +02:00
|
|
|
printf("40\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
configureActionneurs();
|
2018-05-09 14:24:12 +02:00
|
|
|
printf("41\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
configurePosition();
|
2018-05-09 14:24:12 +02:00
|
|
|
printf("44\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
configureMovement();
|
2018-05-09 14:24:12 +02:00
|
|
|
printf("46\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
startDebug();
|
2018-05-09 14:24:12 +02:00
|
|
|
printf("48\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
|
|
|
|
debugSetActive(true);
|
2018-05-09 14:24:12 +02:00
|
|
|
sleep(1);
|
|
|
|
printf("46\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
enableConsigne();
|
2018-05-09 14:24:12 +02:00
|
|
|
struct position pos = { 0, -100, -M_PI };
|
2018-05-09 09:57:11 +02:00
|
|
|
setDestination(&pos);
|
2018-05-09 14:24:12 +02:00
|
|
|
printf("50\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
waitDestination();
|
2018-05-09 14:24:12 +02:00
|
|
|
printf("52\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
disableConsigne();
|
2018-05-09 14:24:12 +02:00
|
|
|
printf("54\n");
|
|
|
|
brake();
|
|
|
|
printf("Done\n");
|
2018-05-09 09:57:11 +02:00
|
|
|
|
|
|
|
// 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();
|
|
|
|
deconfigureCF();
|
|
|
|
deconfigureDebug();
|
|
|
|
return EXIT_SUCCESS;
|
|
|
|
}
|