Psi Swarm robot library version 0.9
Fork of PsiSwarmV9 by
Diff: demo.cpp
- Revision:
- 17:bf614e28668f
- Parent:
- 16:50686c07ad07
- Child:
- 18:9204f74069b4
diff -r 50686c07ad07 -r bf614e28668f demo.cpp --- a/demo.cpp Thu Jun 01 23:02:32 2017 +0000 +++ b/demo.cpp Sun Jun 04 13:11:09 2017 +0000 @@ -82,7 +82,8 @@ void Demo::start_demo_mode() { psi.debug("- Starting Demo Mode\n"); - if(use_flash_basic == 1) top_menu = 7; + if(use_flash_basic == 1) top_menu = 8; + if((has_base_ir == 1 && base_ir_calibration_set != 1) || (has_base_colour_sensor == 1 && base_colour_calibration_set != 1)) top_menu = 7; demo_on = 1; display.set_backlight_brightness(bl_brightness * 0.01f); display.clear_display(); @@ -154,7 +155,7 @@ case 8: // PsiBasic Menu if(sub_menu == psi_basic_file_count) level = 0; break; - case 7: //LED Menu + case 1: //LED Menu if(sub_menu < 9) { if(led_state[sub_menu] == 0) led_state[sub_menu] = 3; else led_state[sub_menu]--; @@ -202,15 +203,15 @@ if(sub_menu == 13) level = 0; break; case 2: // Sensors Menu - if(sub_menu == 4 || sub_menu == 5) { + if(sub_menu == 4 || sub_menu == 5 || sub_menu==6) { if(base_ir_index == 0) base_ir_index = 4; else base_ir_index --; } - if(sub_menu > 5 && sub_menu < 9) { + if(sub_menu > 6 && sub_menu < 10) { if(side_ir_index == 0) side_ir_index = 7; else side_ir_index --; } - if(sub_menu == 12) level = 0; + if(sub_menu == 13) level = 0; break; case 3: // Motor Menu if(sub_menu == 0) { @@ -257,6 +258,10 @@ case 5: // Info Menu if(sub_menu == 6) level = 0; break; + case 7: // Calibration Menu + if(sub_menu == 0) sensors.calibrate_base_sensors(); + if(sub_menu == 2) level = 0; + break; case 6: // Demo Menu if(sub_menu == 0) { if(demo_running == 0) { @@ -379,15 +384,15 @@ break; case 2: // Sensors Menu - if(sub_menu == 4 || sub_menu == 5) { + if(sub_menu == 4 || sub_menu == 5 || sub_menu == 6) { if(base_ir_index == 4) base_ir_index = 0; else base_ir_index ++; } - if(sub_menu > 5 && sub_menu < 9) { + if(sub_menu > 6 && sub_menu < 10) { if(side_ir_index == 7) side_ir_index = 0; else side_ir_index ++; } - if(sub_menu == 12) level = 0; + if(sub_menu == 13) level = 0; break; case 3: // Motor Menu if(sub_menu == 0) { @@ -434,6 +439,10 @@ case 5: // Info Menu if(sub_menu == 6) level = 0; break; + case 7: // Calibration Menu + if(sub_menu == 0) sensors.calibrate_base_sensors(); + if(sub_menu == 2) level = 0; + break; case 6: // Demo Menu if(sub_menu == 0) { if(demo_running == 0) { @@ -493,8 +502,8 @@ if(top_menu == 0) { top_menu = 9; } else { + top_menu --; if(use_flash_basic == 0 && top_menu == 8) top_menu = 7; - top_menu --; } break; case 1: @@ -504,7 +513,7 @@ else sub_menu --; break; case 2: //Sensors Menu - if(sub_menu == 0) sub_menu = 12; + if(sub_menu == 0) sub_menu = 13; else sub_menu --; break; @@ -536,7 +545,8 @@ switch(level) { case 0: top_menu ++; - if((top_menu - use_flash_basic) > 7) top_menu = 0; + if(top_menu == 8 && use_flash_basic == 0) top_menu = 9; + if((top_menu) > 9) top_menu = 0; break; case 1: switch(top_menu) { @@ -545,7 +555,7 @@ else sub_menu ++; break; case 2: //Sensors Menu - if(sub_menu == 12) sub_menu = 0; + if(sub_menu == 13) sub_menu = 0; else sub_menu ++; break; case 3: //Motor Menu @@ -600,7 +610,7 @@ strcpy(topline,"---CODE DEMOS---"); break; case 7: - strcpy(topline,"-MOTOR CALIBRATE"); + strcpy(topline,"---CALIBRATION--"); break; case 8: strcpy(topline,"---PSI BASIC----"); @@ -699,31 +709,36 @@ sprintf(bottomline,"BIR%dR:%d",base_ir_index+1,sensors.get_illuminated_base_ir_value(base_ir_index)); break; case 6: + sensors.store_illuminated_base_ir_values(); + sprintf(bottomline,"BIC%dR:%1.3f",base_ir_index+1,sensors.get_calibrated_base_ir_value(base_ir_index)); + break; + case 7: sensors.store_background_raw_ir_values(); sprintf(bottomline,"SIR%dB:%d",side_ir_index+1,sensors.get_background_raw_ir_value(side_ir_index)); break; - case 7: + case 8: sensors.store_illuminated_raw_ir_values(); sprintf(bottomline,"SIR%dR:%d",side_ir_index+1,sensors.get_illuminated_raw_ir_value(side_ir_index)); break; - case 8: + case 9: sprintf(bottomline,"SIR%dD:%3.1f",side_ir_index+1,0.0); break; - case 9: + case 10: if(ultrasonic_distance_updated == 1) { sprintf(bottomline,"USONIC:%3dcm",ultrasonic_distance); } else sprintf(bottomline,"USONIC:---------"); sensors.update_ultrasonic_measure(); break; - case 10: + case 11: sensors.store_line_position(); if(line_found == 1)sprintf(bottomline,"LINE:%1.3f",line_position); else sprintf(bottomline,"LINE:---------"); break; - case 11: + + case 12: sprintf(bottomline,"COLOUR: %s",colour.get_colour_string(colour.detect_colour_once())); break; - case 12: + case 13: sprintf(bottomline,"EXIT"); break; } @@ -826,13 +841,13 @@ } break; case 7: - strcpy(topline,"-MOTOR CALIBRATE"); + strcpy(topline,"---CALIB. MENU--"); switch(sub_menu) { case 0: - sprintf(bottomline,"RUN A3 TEST"); + sprintf(bottomline,"BASE SENSOR"); break; case 1: - sprintf(bottomline,"ENTER VALUE"); + sprintf(bottomline,"MOTOR"); break; case 2: sprintf(bottomline,"EXIT");