Les messages sont bien reçus par la carte qui répond en clair ("printf")

This commit is contained in:
Samuel 2026-01-28 21:40:45 +01:00
parent 4d7c9c7d43
commit 0776437e6a
3 changed files with 71 additions and 8 deletions

Binary file not shown.

View File

@ -59,15 +59,33 @@ int main(){
printf("Open success: %s\n", filename);;
}
int my_char;
int type_message=0;
// Données à envoyer
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 mode = 2;
struct msg_propulsion_pwm_t msg_propulsion_pwm;
msg_propulsion_pwm.pwm_droit= -20;
msg_propulsion_pwm.pwm_gauche= 20;
struct msg_propulsion_vitesse_roues_t msg_propulsion_vitesse_roues;
msg_propulsion_vitesse_roues.vitesse_droite_mm_s = 253.5;
msg_propulsion_vitesse_roues.vitesse_gauche_mm_s = -153.2;
struct msg_propulsion_vitesse_robot_t msg_propulsion_vitesse_robot;
msg_propulsion_vitesse_robot.avance_mm_s = 354.3;
msg_propulsion_vitesse_robot.rotation_rad_s = -2.3;
while(1){
time ( &rawtime );
if(rawtime > rawtime_old +2){
if(rawtime > rawtime_old){
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';
@ -80,11 +98,41 @@ int main(){
}
on = !on;
if (type_message>4) type_message=0;
printf("envoi message\n");
switch (type_message){
case 0:
printf("case 0\n");
envoi_données_applicatives('r', 'P', REG_PROPULSION_POSITION, (uint8_t *) &msg_propulsion_position,
sizeof(msg_propulsion_position), fp);
break;
case 1:
printf("case 1\n");
envoi_données_applicatives('r', 'P', REG_PROPULSION_MODE, &mode, sizeof(mode), fp);
break;
case 2:
printf("case 2\n");
envoi_données_applicatives('r', 'P', REG_PROPULSION_PWM, (uint8_t *) &msg_propulsion_pwm, sizeof(msg_propulsion_pwm), fp);
break;
case 3:
printf("case 3\n");
envoi_données_applicatives('r', 'P', REG_PROPULSION_VITESSE_ROUES, (uint8_t *) &msg_propulsion_vitesse_roues, sizeof(msg_propulsion_vitesse_roues), fp);
break;
case 4:
printf("case 2\n");
envoi_données_applicatives('r', 'P', REG_PROPULSION_VITESSE_ROBOT, (uint8_t *) &msg_propulsion_vitesse_robot, sizeof(msg_propulsion_vitesse_robot), fp);
break;
default: type_message=0;
}
type_message++;
//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);
//envoi_données_applicatives('r', 'P', 0, (uint8_t *) &msg_propulsion_position, sizeof(msg_propulsion_position), fp);
}
}

View File

@ -4,10 +4,25 @@
#define USB_ID_PROPULSION 'P'
#define REG_PROPULSION_POSITION 0x00
#define REG_PROPULSION_MODE 0x0D
#define REG_PROPULSION_PWM 0x0E
#define REG_PROPULSION_VITESSE_ROUES 0x12
#define REG_PROPULSION_VITESSE_ROBOT 0x1A
struct msg_propulsion_position_t{
float position_x_mm, position_y_mm, orientation_rad;
};
struct msg_propulsion_pwm_t{
uint16_t pwm_gauche, pwm_droit;
};
struct msg_propulsion_vitesse_roues_t{
float vitesse_gauche_mm_s, vitesse_droite_mm_s;
};
struct msg_propulsion_vitesse_robot_t {
float avance_mm_s, rotation_rad_s;
};
#endif