PES 2 - Gruppe 1 / Mbed 2 deprecated Robocode_Random

Dependencies:   mbed

Fork of Robocode by PES 2 - Gruppe 1

Committer:
aeschsim
Date:
Tue Apr 25 11:42:45 2017 +0000
Revision:
78:d9138c6f82a8
Parent:
72:4e8a151d804e
Child:
79:92b9d083322d
to do: change return values of grabbing functions;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cittecla 38:3526c36e4c73 1 #include "Main.h"
cittecla 18:a82994e67297 2
cittecla 18:a82994e67297 3
cittecla 61:b57577b0072f 4 int state = 10;
cittecla 32:777976c4d733 5 bool positioning_state = 0;
cittecla 32:777976c4d733 6 bool mapping_state = 0;
cittecla 31:51f52ffa4b51 7
cittecla 71:ddf4eb5c3081 8 Timer game_timer;
cittecla 71:ddf4eb5c3081 9
cittecla 34:40d8d29b44b8 10 int IMU();
cittecla 34:40d8d29b44b8 11
cittecla 32:777976c4d733 12 int main()
cittecla 32:777976c4d733 13 {
cittecla 61:b57577b0072f 14 printf("start...\r\n");
cittecla 71:ddf4eb5c3081 15 while (game_timer.read() < 300) {
cittecla 64:c2fcf3b349e9 16 wait(0.01f);
cittecla 34:40d8d29b44b8 17 // 5min
cittecla 33:8a98f8b9d859 18 //*******************************************************************************
cittecla 33:8a98f8b9d859 19 //Non_state machine driven function
cittecla 33:8a98f8b9d859 20 //This functions will be called every cycle, use for safety and sensor functipons
cittecla 33:8a98f8b9d859 21 //*******************************************************************************
cittecla 32:777976c4d733 22
cittecla 38:3526c36e4c73 23 safety();
cittecla 31:51f52ffa4b51 24
cittecla 38:3526c36e4c73 25 //scanning();
cittecla 71:ddf4eb5c3081 26
cittecla 38:3526c36e4c73 27
cittecla 32:777976c4d733 28
cittecla 32:777976c4d733 29 if(positioning_state) {
cittecla 38:3526c36e4c73 30 positioning();
cittecla 32:777976c4d733 31 }
cittecla 32:777976c4d733 32 if(mapping_state) {
cittecla 38:3526c36e4c73 33 mapping();
cittecla 32:777976c4d733 34 }
cittecla 18:a82994e67297 35
cittecla 33:8a98f8b9d859 36 //*******************************************************************************
cittecla 33:8a98f8b9d859 37 //state machine driven function
cittecla 33:8a98f8b9d859 38 //This functions will only be called when their state is active.
cittecla 33:8a98f8b9d859 39 //The state machine will be in the same state until this action is completed or
cittecla 33:8a98f8b9d859 40 //a safty function kicks in and stops the current function.
cittecla 33:8a98f8b9d859 41 //Every function will return the next active state upon its transition table.
cittecla 33:8a98f8b9d859 42 //State and Transition Table can be found in the State_Machine.xlsx
cittecla 33:8a98f8b9d859 43 //*******************************************************************************
cittecla 72:4e8a151d804e 44 //printf("state: %d\r\n",state);
cittecla 32:777976c4d733 45 switch (state) {
cittecla 38:3526c36e4c73 46 case 0:
cittecla 38:3526c36e4c73 47 state = emergency_shutdown();
cittecla 38:3526c36e4c73 48 break;
cittecla 38:3526c36e4c73 49 case 1:
cittecla 38:3526c36e4c73 50 state = colision_detected();
cittecla 38:3526c36e4c73 51 break;
cittecla 38:3526c36e4c73 52 case 2:
cittecla 38:3526c36e4c73 53 state = current_to_high();
cittecla 38:3526c36e4c73 54 break;
cittecla 38:3526c36e4c73 55 case 3:
cittecla 38:3526c36e4c73 56 state = overheating();
cittecla 38:3526c36e4c73 57 break;
cittecla 31:51f52ffa4b51 58
cittecla 31:51f52ffa4b51 59
cittecla 38:3526c36e4c73 60 case 10:
cittecla 71:ddf4eb5c3081 61 state = idle();
cittecla 71:ddf4eb5c3081 62 printf("idle1...\r\n");
cittecla 38:3526c36e4c73 63 break;
cittecla 38:3526c36e4c73 64 case 11:
cittecla 71:ddf4eb5c3081 65 state = idle2();
cittecla 71:ddf4eb5c3081 66 printf("idle2...\r\n");
cittecla 38:3526c36e4c73 67 break;
cittecla 38:3526c36e4c73 68
cittecla 38:3526c36e4c73 69
cittecla 38:3526c36e4c73 70 case 15:
aeschsim 78:d9138c6f82a8 71 state = initialisation(); //init servo is included
cittecla 38:3526c36e4c73 72 break;
cittecla 38:3526c36e4c73 73 case 16:
cittecla 71:ddf4eb5c3081 74 state = initial_positioning();
cittecla 38:3526c36e4c73 75 break;
cittecla 71:ddf4eb5c3081 76 case 17:
cittecla 71:ddf4eb5c3081 77 state = inital_arm_positioning();
cittecla 71:ddf4eb5c3081 78 break;
cittecla 31:51f52ffa4b51 79
cittecla 38:3526c36e4c73 80 case 25:
cittecla 58:1a395b6928ee 81 state = 26;
cittecla 71:ddf4eb5c3081 82 game_timer.start();
cittecla 38:3526c36e4c73 83 break;
cittecla 38:3526c36e4c73 84 case 26:
cittecla 58:1a395b6928ee 85 state = 27;
cittecla 71:ddf4eb5c3081 86 positioning_state = 1;
cittecla 71:ddf4eb5c3081 87 break;
cittecla 71:ddf4eb5c3081 88 case 27:
cittecla 71:ddf4eb5c3081 89 state = 28;
cittecla 38:3526c36e4c73 90 mapping_state = 1;
cittecla 38:3526c36e4c73 91 break;
cittecla 71:ddf4eb5c3081 92 case 28:
cittecla 38:3526c36e4c73 93 state = initial_turn();
cittecla 38:3526c36e4c73 94 break;
cittecla 38:3526c36e4c73 95
cittecla 40:a46667b62671 96
cittecla 38:3526c36e4c73 97 case 35:
cittecla 38:3526c36e4c73 98 state = select_target();
cittecla 38:3526c36e4c73 99 break;
cittecla 38:3526c36e4c73 100 case 36:
cittecla 38:3526c36e4c73 101 state = pathfinding();
cittecla 38:3526c36e4c73 102 break;
cittecla 38:3526c36e4c73 103 case 37:
cittecla 41:462d379e85c4 104 state = switch_target_red();
cittecla 41:462d379e85c4 105 break;
cittecla 31:51f52ffa4b51 106
cittecla 31:51f52ffa4b51 107
cittecla 38:3526c36e4c73 108 case 40:
cittecla 38:3526c36e4c73 109 state = moving();
cittecla 38:3526c36e4c73 110 break;
cittecla 38:3526c36e4c73 111 case 41:
cittecla 54:453f24775644 112 state = move_forward_for_distance(0);
cittecla 38:3526c36e4c73 113 break;
cittecla 38:3526c36e4c73 114 case 42:
cittecla 54:453f24775644 115 state = move_backward_for_distance();
cittecla 38:3526c36e4c73 116 break;
cittecla 62:628f8a4e857c 117
cittecla 54:453f24775644 118
cittecla 38:3526c36e4c73 119
cittecla 38:3526c36e4c73 120 case 46:
cittecla 38:3526c36e4c73 121 state = move_to_next_coord();
cittecla 38:3526c36e4c73 122 break;
cittecla 38:3526c36e4c73 123 case 47:
cittecla 38:3526c36e4c73 124 state = move_in_search_for_brick();
cittecla 38:3526c36e4c73 125 break;
cittecla 31:51f52ffa4b51 126
cittecla 31:51f52ffa4b51 127
cittecla 38:3526c36e4c73 128 case 50:
cittecla 38:3526c36e4c73 129 state = grabbing();
cittecla 38:3526c36e4c73 130 break;
cittecla 38:3526c36e4c73 131 case 51:
cittecla 38:3526c36e4c73 132 state = arm_position_move();
cittecla 38:3526c36e4c73 133 break;
cittecla 38:3526c36e4c73 134 case 52:
aeschsim 63:87b615e4a842 135 arm_position_grabbing();
aeschsim 63:87b615e4a842 136 state = 56;
aeschsim 63:87b615e4a842 137 wait_ms(1000);
cittecla 38:3526c36e4c73 138 break;
cittecla 38:3526c36e4c73 139 case 53:
cittecla 38:3526c36e4c73 140 state = arm_position_release();
aeschsim 63:87b615e4a842 141 state = 55;
aeschsim 63:87b615e4a842 142 wait_ms(1000);
cittecla 38:3526c36e4c73 143 break;
cittecla 38:3526c36e4c73 144
cittecla 38:3526c36e4c73 145 case 55:
cittecla 61:b57577b0072f 146 state = open_grabber();
aeschsim 63:87b615e4a842 147 state = 52;
aeschsim 63:87b615e4a842 148 wait_ms(1000);
cittecla 38:3526c36e4c73 149 break;
cittecla 38:3526c36e4c73 150 case 56:
cittecla 38:3526c36e4c73 151 state = close_grabber();
aeschsim 63:87b615e4a842 152 state = 53;
aeschsim 63:87b615e4a842 153 wait_ms(1000);
cittecla 38:3526c36e4c73 154 break;
cittecla 32:777976c4d733 155 }
cittecla 32:777976c4d733 156 }
cittecla 71:ddf4eb5c3081 157 }