mirror of
https://github.com/RobotechLille/cdf2018-principal
synced 2024-11-24 17:16:04 +01:00
Outils de debug
This commit is contained in:
parent
d795e2d906
commit
0a9009d0c3
|
@ -1,3 +1,7 @@
|
|||
/*
|
||||
* Définition des fonctions utilisées pour échager entre l'Arduino et le chef
|
||||
*/
|
||||
|
||||
#ifndef __SERIAL_H_
|
||||
#define __SERIAL_H_
|
||||
|
||||
|
|
|
@ -7,6 +7,13 @@
|
|||
|
||||
#define AC_BAUDRATE 9600UL
|
||||
|
||||
// Structures used everywhere
|
||||
struct position {
|
||||
float x;
|
||||
float y;
|
||||
float o;
|
||||
};
|
||||
|
||||
// D: Direct
|
||||
// Sens naturel : Envoi de donnée
|
||||
// Sens inverse : Accusé de réception
|
||||
|
@ -33,11 +40,8 @@ struct C2ADD_STOPs {
|
|||
|
||||
// Donne une destination
|
||||
#define C2AD_GOTO 'G'
|
||||
struct C2AD_GOTOs {
|
||||
float x;
|
||||
float y;
|
||||
float o; // Peut-être NaN ou autre valeur spécifique si indifférent
|
||||
};
|
||||
#define C2AD_GOTOs position
|
||||
// Peut-être o à NaN ou autre valeur spécifique si indifférent
|
||||
|
||||
// Arduino → Chef
|
||||
|
||||
|
@ -52,9 +56,9 @@ struct A2CI_ERRs {
|
|||
// Envoie les infos de debug
|
||||
#define A2CI_DBG 'D'
|
||||
struct A2CI_DBGs {
|
||||
float x;
|
||||
float y;
|
||||
float o;
|
||||
struct position actuel;
|
||||
struct position destination;
|
||||
unsigned char movement;
|
||||
// ...
|
||||
};
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ FORMAT = ihex
|
|||
|
||||
# Target file name (without extension).
|
||||
TARGET = principal
|
||||
OBJS = AC position movement
|
||||
OBJS = AC position movement debug
|
||||
|
||||
# Custom
|
||||
NAME = $(TARGET).c
|
||||
|
|
32
arduino/debug.c
Normal file
32
arduino/debug.c
Normal file
|
@ -0,0 +1,32 @@
|
|||
#include <string.h>
|
||||
#include "debug.h"
|
||||
#include "AC.h"
|
||||
|
||||
#include "position.h"
|
||||
#include "movement.h"
|
||||
|
||||
void TaskDebug(void *pvParameters) {
|
||||
(void) pvParameters;
|
||||
for (;;) {
|
||||
vTaskSuspend(tDebug);
|
||||
|
||||
// Copie des valeurs à envoyer en debug
|
||||
memcpy((void*) &debug.actuel, (const void*) &actuel, (unsigned long) sizeof(actuel));
|
||||
memcpy((void*) &debug.destination, (const void*) &destination, (unsigned long) sizeof(destination));
|
||||
debug.movement = movement;
|
||||
|
||||
// Envoi des valeurs
|
||||
sendAC(A2CI_DBG, &debug, sizeof(debug));
|
||||
}
|
||||
}
|
||||
|
||||
void onA2CI_DBG() {
|
||||
vTaskResume(tDebug);
|
||||
}
|
||||
|
||||
|
||||
void configureDebug() {
|
||||
registerRxHandler(A2CI_DBG, onA2CI_DBG);
|
||||
xTaskCreate(TaskDebug, "Debug", 128, NULL, 10, &tDebug);;
|
||||
}
|
||||
|
18
arduino/debug.h
Normal file
18
arduino/debug.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* Outils pour envoyer des informations de debug au chef
|
||||
*/
|
||||
|
||||
#ifndef __DEBUG_H_
|
||||
#define __DEBUG_H_
|
||||
|
||||
#include <FreeRTOS.h>
|
||||
#include <task.h>
|
||||
|
||||
TaskHandle_t tDebug;
|
||||
|
||||
struct A2CI_DBGs debug;
|
||||
|
||||
void TaskDebug();
|
||||
void configureDebug();
|
||||
|
||||
#endif
|
|
@ -8,11 +8,9 @@
|
|||
#include <FreeRTOS.h>
|
||||
#include <task.h>
|
||||
|
||||
struct position {
|
||||
float x;
|
||||
float y;
|
||||
float o;
|
||||
};
|
||||
#include "ACsignals.h"
|
||||
|
||||
struct position actuel;
|
||||
|
||||
TaskHandle_t tPosition;
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "AC.h"
|
||||
#include "position.h"
|
||||
#include "movement.h"
|
||||
#include "debug.h"
|
||||
|
||||
unsigned char speed = 200;
|
||||
|
||||
|
@ -24,9 +25,10 @@ void TaskBlink(void *pvParameters) {
|
|||
}
|
||||
|
||||
int main(void) {
|
||||
configureAC();
|
||||
configureAC(); // Doit rester en premier :)
|
||||
configureMovement();
|
||||
configurePosition();
|
||||
configureDebug();
|
||||
|
||||
xTaskCreate(TaskBlink, "Blink", 128, NULL, 2, NULL);
|
||||
sei();
|
||||
|
|
Loading…
Reference in a new issue