Messages binaires identifiés et lus - nettoyage

This commit is contained in:
Samuel 2025-09-10 20:03:29 +02:00
parent 13643575c4
commit 320b5eaf04
2 changed files with 1 additions and 65 deletions

View File

@ -30,18 +30,8 @@
#include "log_usb.h" #include "log_usb.h"
#include <stdio.h> #include <stdio.h>
#define TAMPON_TOURNANT_TAILLE 255
#define TAMPON_TOURNANT_NB 10
volatile bool in_transfert_cb = 0; volatile bool in_transfert_cb = 0;
struct tampon_tournant_t{
uint8_t id;
uint8_t donnees[TAMPON_TOURNANT_TAILLE];
uint16_t index_ecriture, index_lecture;
} tampons_tournant[TAMPON_TOURNANT_NB];
size_t get_console_inputs(uint8_t* buf, size_t bufsize) { size_t get_console_inputs(uint8_t* buf, size_t bufsize) {
size_t count = 0; size_t count = 0;
while (count < bufsize) { while (count < bufsize) {

View File

@ -10,12 +10,9 @@
struct log_buffer_t{ struct log_buffer_t{
char idx; char idx;
char copy_active;
char tampon[TAMPON_TAILLE]; // Tampon tournant - 1er niveau de tampon char tampon[TAMPON_TAILLE]; // Tampon tournant - 1er niveau de tampon
char log_dispo[TAMPON_TAILLE]; //
unsigned int index_tampon;
unsigned int index_tampon_ecriture, index_tampon_lecture; unsigned int index_tampon_ecriture, index_tampon_lecture;
}log_buffer[10]; }log_buffer[NB_MAX_CDC_CONNEXION];
static struct log_buffer_t * get_buffer(const char idx); static struct log_buffer_t * get_buffer(const char idx);
@ -33,11 +30,7 @@ static struct log_buffer_t * get_buffer(const char idx){
/// @brief Initialisation des structure de reception des données USB-CDC /// @brief Initialisation des structure de reception des données USB-CDC
void log_init(){ void log_init(){
for (int i=0; i<NB_MAX_CDC_CONNEXION; i++){ for (int i=0; i<NB_MAX_CDC_CONNEXION; i++){
log_buffer[i].log_dispo[0] = '\0';
log_buffer[i].index_tampon = 0;
log_buffer[i].copy_active = 0;
log_buffer[i].idx = INVALID_ID; log_buffer[i].idx = INVALID_ID;
log_buffer[i].index_tampon = 0;
log_buffer[i].index_tampon_ecriture = 0; log_buffer[i].index_tampon_ecriture = 0;
log_buffer[i].index_tampon_lecture = 0; log_buffer[i].index_tampon_lecture = 0;
} }
@ -49,10 +42,6 @@ void log_create(const char idx){
for (int i=0; i<NB_MAX_CDC_CONNEXION; i++){ for (int i=0; i<NB_MAX_CDC_CONNEXION; i++){
if(log_buffer[i].idx == INVALID_ID){ if(log_buffer[i].idx == INVALID_ID){
log_buffer[i].idx = idx; log_buffer[i].idx = idx;
log_buffer[i].log_dispo[0] = '\0';
log_buffer[i].index_tampon = 0;
log_buffer[i].copy_active = 0;
log_buffer[i].index_tampon = 0;
log_buffer[i].index_tampon_ecriture = 0; log_buffer[i].index_tampon_ecriture = 0;
log_buffer[i].index_tampon_lecture = 0; log_buffer[i].index_tampon_lecture = 0;
return; return;
@ -66,7 +55,6 @@ void log_destroy(const char idx){
p_log_bufffer = get_buffer(idx); p_log_bufffer = get_buffer(idx);
p_log_bufffer->idx = INVALID_ID; p_log_bufffer->idx = INVALID_ID;
printf("Destruction: idx: %d\n", idx); printf("Destruction: idx: %d\n", idx);
sleep_ms(1500);
} }
/// @brief Ajoute les données reçu au tampon tournant /// @brief Ajoute les données reçu au tampon tournant
@ -106,9 +94,6 @@ void augmente_index(unsigned int *index, unsigned int offset){
} }
} }
void log_analyse(const char idx){ void log_analyse(const char idx){
// Les données sont dans le tampon tournant // Les données sont dans le tampon tournant
// Nous les copions dans une seconde mémoire pour les analyser. // Nous les copions dans une seconde mémoire pour les analyser.
@ -210,42 +195,3 @@ void log_analyse(const char idx){
} }
augmente_index(&(p_log_bufffer->index_tampon_lecture), fin_message); augmente_index(&(p_log_bufffer->index_tampon_lecture), fin_message);
} }
void log_analyse_input_string(const char idx, const char * input_data, unsigned int str_len){
// On charge les données dans le tampon
// Si on a un message complet, on charge dans log dispo (s'il y a la place)
struct log_buffer_t * p_log_bufffer;
p_log_bufffer = get_buffer(idx);
for(int i=0; i< str_len; i++){
if(input_data[i] == '>'){
p_log_bufffer->copy_active = 1;
}
if(p_log_bufffer->copy_active == 1){
p_log_bufffer->tampon[p_log_bufffer->index_tampon] = input_data[i];
p_log_bufffer->index_tampon++;
if(input_data[i] == '\n'){
p_log_bufffer->copy_active = 0;
p_log_bufffer->tampon[p_log_bufffer->index_tampon] = '\0';
strcat(p_log_bufffer->log_dispo, p_log_bufffer->tampon);
p_log_bufffer->index_tampon=0;
}
}
}
}
// On renvoi la chaine et on remet log_dispo à 0;
void log_get(const char idx, char * chaine){
struct log_buffer_t * p_log_bufffer;
p_log_bufffer = get_buffer(idx);
if(p_log_bufffer == NULL){
chaine[0] = '\0';
return;
}
strcpy(chaine, p_log_bufffer->log_dispo);
p_log_bufffer->log_dispo[0] = '\0';
}