diff --git a/Host_cdc_usb b/Host_cdc_usb index aaae87c..0a64c1b 100755 Binary files a/Host_cdc_usb and b/Host_cdc_usb differ diff --git a/Host_cdc_usb.c b/Host_cdc_usb.c index 3bb52f5..8291dd2 100644 --- a/Host_cdc_usb.c +++ b/Host_cdc_usb.c @@ -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'; @@ -79,12 +97,42 @@ int main(){ données_led[4]=0x05; } 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); } } diff --git a/messages_propulsion.h b/messages_propulsion.h index f12cc65..74a0933 100644 --- a/messages_propulsion.h +++ b/messages_propulsion.h @@ -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 \ No newline at end of file