Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: sm_sections.cpp
- Revision:
- 8:f23601373e8b
- Parent:
- 6:ab9f3695633f
- Child:
- 9:1b54bac6d9a7
--- a/sm_sections.cpp Sun Sep 29 20:22:43 2019 +0000 +++ b/sm_sections.cpp Wed Oct 02 22:25:12 2019 +0000 @@ -1,23 +1,26 @@ #include "sm_sections.h" +#include "sm_mpu.h" s_Section s_section1; s_Section s_section2; -E_STATE_SECTIONS e_stateSections; +E_STATE_SECTIONS e_SECTIONS_state; + -void init_sm_sections(){ +void init_sm_sections() +{ d_ODOM_distFromSectionStart_m = 0.0; - e_stateSections = STOPPED; - s_UTILS_currentSection = NULL; + e_SECTIONS_state = STOPPED; + s_section1.nextSection = NULL; - //section de départ +//section de départ s_section1.nextSection = &s_section2; s_section1.consigne_position = 0.75; - s_section1.targetSpeed_mps = 1.0; - s_section1.lng_section_m = 1.0; + s_section1.targetSpeed_mps = 1640; + s_section1.lng_section_m = 4.0; s_section1.coef_p = 1.0; s_section1.coef_d = 0.0; s_section1.coef_i = 0.000; @@ -25,82 +28,78 @@ //epingle 1 s_section2.nextSection = NULL; s_section2.consigne_position = 0.75; - s_section2.targetSpeed_mps = 1.0; - s_section2.lng_section_m = 1.0; + s_section2.targetSpeed_mps = 1640; + s_section2.lng_section_m = 4.0; s_section2.coef_p = 1.0; s_section2.coef_d = 0.0; s_section2.coef_i = 0.000; return; } -void update_sm_sections(){ - - E_STATE_SECTIONS e_next_state = e_stateSections; +void update_sm_sections() +{ + + E_STATE_SECTIONS e_next_state = e_SECTIONS_state; - //pc.printf("\r\nUpdate Section\r\n"); - - if(b_UTILS_flag_button){ - e_next_state = INIT_SECTION; - } - else if(s_UTILS_currentSection == NULL && e_stateSections != INIT_SECTION) { + //rs_UTILS_pc.printf("\r\nUpdate Section\r\n"); + + if(b_UTILS_flag_emergency_stop) { + rs_UTILS_pc.printf("emergency stop -> STOPPED\r\n"); e_next_state = STOPPED; } else { - - switch (e_stateSections) { + switch (e_SECTIONS_state) { case INIT_SECTION: - e_next_state = LOADING_SECTION; - break; + e_next_state = RUNNING_SECTION; + //rs_UTILS_pc.printf("RUNNING SECTION\r\n"); + break; case RUNNING_SECTION: if(d_ODOM_distFromSectionStart_m > s_UTILS_currentSection->lng_section_m) { e_next_state = LOADING_SECTION; - } else if (b_UTILS_flag_emergency_stop){ - e_next_state = STOPPED; - } - else{ - return; + //rs_UTILS_pc.printf("LOADING SECTION !\r\n"); } break; case LOADING_SECTION: - if(s_UTILS_currentSection != NULL && !b_UTILS_flag_emergency_stop) { //la section a ete chargee dans sectionOutput + if(s_UTILS_currentSection != NULL) { e_next_state = RUNNING_SECTION; + //rs_UTILS_pc.printf("RUNNING SECTION !\r\n"); } else { - e_next_state=STOPPED; + b_UTILS_flag_emergency_stop = true; + e_next_state = STOPPED; } break; case STOPPED: - if(s_UTILS_currentSection != NULL) { - e_next_state = RUNNING_SECTION; - } else { - return; + if(b_UTILS_flag_button_SECTIONS) { + e_next_state = INIT_SECTION; + rs_UTILS_pc.printf("INIT SECTION !\r\n"); } break; default: break; } } - e_stateSections = e_next_state; + e_SECTIONS_state = e_next_state; return; } -void output_sm_sections(){ - - //pc.printf("\r\n Output Section\r\n"); - if(s_UTILS_currentSection !=NULL) { - switch (e_stateSections) { - case INIT_SECTION: - b_UTILS_flag_button = false; +void output_sm_sections() +{ + switch (e_SECTIONS_state) { + case INIT_SECTION: + b_UTILS_flag_button_SECTIONS = false; s_UTILS_currentSection = &s_section1; - case RUNNING_SECTION: - break; - case LOADING_SECTION: - s_UTILS_currentSection=s_UTILS_currentSection->nextSection; - d_ODOM_distFromSectionStart_m = 0.0; - break; - case STOPPED: - //on est à l'arret - break; - default: - break; - } + rs_UTILS_pc.printf("sect 1 INITIALIZED\r\n"); + mpu_log_start(10000); + case RUNNING_SECTION: + break; + case LOADING_SECTION: + //rs_UTILS_pc.printf("next section loading\r\n"); + s_UTILS_currentSection=s_UTILS_currentSection->nextSection; + d_ODOM_distFromSectionStart_m = 0.0; + break; + case STOPPED: + //on est à l'arret + break; + default: + break; } return; }