From 4d7c9c7d4308ac7c77ba29212a176fbf9e3ddb94 Mon Sep 17 00:00:00 2001 From: Samuel Date: Wed, 28 Jan 2026 19:12:56 +0100 Subject: [PATCH] Envoi message de position selon protocole "com_v2" --- Host_cdc_usb | Bin 0 -> 20968 bytes Host_cdc_usb.c | 103 ++++++++++++++++++++++++++++++++++++++++++ Messages.h | 17 +++++++ messages_propulsion.h | 13 ++++++ 4 files changed, 133 insertions(+) create mode 100755 Host_cdc_usb create mode 100644 Host_cdc_usb.c create mode 100644 Messages.h create mode 100644 messages_propulsion.h diff --git a/Host_cdc_usb b/Host_cdc_usb new file mode 100755 index 0000000000000000000000000000000000000000..aaae87caaa98fc9d9edb52faaa7fddeec34d3a49 GIT binary patch literal 20968 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 HY$W@ChZS=D literal 0 HcmV?d00001 diff --git a/Host_cdc_usb.c b/Host_cdc_usb.c new file mode 100644 index 0000000..3bb52f5 --- /dev/null +++ b/Host_cdc_usb.c @@ -0,0 +1,103 @@ +#include +#include +#include +#include + +#include "Messages.h" + + time_t rawtime; + struct tm * timeinfo; + + +void envoi_données(uint8_t * données, unsigned int taille_données, FILE *fp){ + for(int i=0; i rawtime_old +2){ + rawtime_old = rawtime; + struct msg_propulsion_position_t msg_propulsion_position; + msg_propulsion_position.position_x_mm = 1.5; + msg_propulsion_position.position_y_mm = 2.5; + msg_propulsion_position.orientation_rad = -3; + uint8_t données_led[10]; + données_led[0]='r'; + données_led[1]='D'; + données_led[2]=0x00; + données_led[3]=0x01; + if(on){ + données_led[4]=0x25; + }else{ + données_led[4]=0x05; + } + on = !on; + + + //envoi_données_protocole(données_led, 5, fp); + //envoi_données_applicatives('r', 'D', 0, &données_led[4], 1, fp); + printf("envoi message\n"); + envoi_données_applicatives('r', 'P', 0, (uint8_t *) &msg_propulsion_position, sizeof(msg_propulsion_position), fp); + } + } + + // Lecture de la liaison série (décodage hexa) + do{ + my_char = fgetc(fp); + printf("%02x ", my_char); + if(my_char == '\n'){ + + printf("\n"); + } + }while(my_char != EOF); + printf("fin de lecture\n"); + fclose(fp); + +} \ No newline at end of file diff --git a/Messages.h b/Messages.h new file mode 100644 index 0000000..9de02dc --- /dev/null +++ b/Messages.h @@ -0,0 +1,17 @@ +#include +#include "messages_propulsion.h" + +struct message_applicatif_t{ + uint8_t commande; // 'r' : réception de données, 'd' : demande de données + uint8_t id_carte; // Identifiant de la carte (on reprend les adresses I2C) + uint8_t adresse_registre; // Adresse du registre lu ou écrit + uint8_t taille_donnees; + union{ + uint8_t donnees[100]; +#ifdef MESSAGE_PROPULSION_H + struct msg_propulsion_position_t msg_propulsion_position; +#endif + + }donnees_applicative; + +}; \ No newline at end of file diff --git a/messages_propulsion.h b/messages_propulsion.h new file mode 100644 index 0000000..f12cc65 --- /dev/null +++ b/messages_propulsion.h @@ -0,0 +1,13 @@ +#include +#ifndef MESSAGE_PROPULSION_H +#define MESSAGE_PROPULSION_H +#define USB_ID_PROPULSION 'P' + +#define REG_PROPULSION_POSITION 0x00 + +struct msg_propulsion_position_t{ + float position_x_mm, position_y_mm, orientation_rad; +}; + + +#endif \ No newline at end of file