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.
training.cpp@4:4e871024310a, 2020-05-17 (annotated)
- Committer:
- MarcelPortmann
- Date:
- Sun May 17 18:53:41 2020 +0000
- Revision:
- 4:4e871024310a
- Parent:
- 2:0df0d0be0664
- Child:
- 5:da9b6946a035
pdsmvpds
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| MarcelPortmann | 0:0c6d1b9144af | 1 | /* |
| MarcelPortmann | 0:0c6d1b9144af | 2 | Hear cold stand a discription |
| MarcelPortmann | 0:0c6d1b9144af | 3 | |
| MarcelPortmann | 0:0c6d1b9144af | 4 | |
| MarcelPortmann | 0:0c6d1b9144af | 5 | */ |
| MarcelPortmann | 0:0c6d1b9144af | 6 | |
| MarcelPortmann | 0:0c6d1b9144af | 7 | |
| MarcelPortmann | 0:0c6d1b9144af | 8 | #include "training.h" |
| MarcelPortmann | 0:0c6d1b9144af | 9 | //#include "math.h" |
| MarcelPortmann | 0:0c6d1b9144af | 10 | |
| MarcelPortmann | 0:0c6d1b9144af | 11 | training::training() |
| MarcelPortmann | 0:0c6d1b9144af | 12 | { |
| MarcelPortmann | 0:0c6d1b9144af | 13 | fail_pos = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 14 | time_short = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 15 | time_long = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 16 | |
| MarcelPortmann | 0:0c6d1b9144af | 17 | } |
| MarcelPortmann | 0:0c6d1b9144af | 18 | |
| MarcelPortmann | 0:0c6d1b9144af | 19 | |
| MarcelPortmann | 0:0c6d1b9144af | 20 | void training::load_training(string name) |
| MarcelPortmann | 0:0c6d1b9144af | 21 | { |
| MarcelPortmann | 1:aa8497b98ef4 | 22 | int i = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 23 | tr_name = name; |
| MarcelPortmann | 1:aa8497b98ef4 | 24 | int sice = 50; |
| MarcelPortmann | 1:aa8497b98ef4 | 25 | //sice = loading.size(tr_name) |
| MarcelPortmann | 1:aa8497b98ef4 | 26 | |
| MarcelPortmann | 2:0df0d0be0664 | 27 | for(i = 0; i<sice; i++) { // loads the whole trainings data into data vector |
| MarcelPortmann | 1:aa8497b98ef4 | 28 | loading.AuslesenPositionsdaten(tr_name,i); |
| MarcelPortmann | 1:aa8497b98ef4 | 29 | |
| MarcelPortmann | 1:aa8497b98ef4 | 30 | temp.time = loading.zahl[0]; |
| MarcelPortmann | 1:aa8497b98ef4 | 31 | temp.pos[0] = loading.zahl[1]; |
| MarcelPortmann | 1:aa8497b98ef4 | 32 | temp.pos[1] = loading.zahl[2]; |
| MarcelPortmann | 1:aa8497b98ef4 | 33 | temp.pos[2] = loading.zahl[3]; |
| MarcelPortmann | 2:0df0d0be0664 | 34 | temp.start = loading.zahl[4]; // fragen wegen status eintrag |
| MarcelPortmann | 2:0df0d0be0664 | 35 | temp.end = loading.zahl[5]; |
| MarcelPortmann | 2:0df0d0be0664 | 36 | |
| MarcelPortmann | 1:aa8497b98ef4 | 37 | |
| MarcelPortmann | 1:aa8497b98ef4 | 38 | data_vec.push_back(temp); |
| MarcelPortmann | 1:aa8497b98ef4 | 39 | |
| MarcelPortmann | 1:aa8497b98ef4 | 40 | } |
| MarcelPortmann | 0:0c6d1b9144af | 41 | } |
| MarcelPortmann | 0:0c6d1b9144af | 42 | |
| MarcelPortmann | 0:0c6d1b9144af | 43 | void training::start_training(void) |
| MarcelPortmann | 0:0c6d1b9144af | 44 | { |
| MarcelPortmann | 0:0c6d1b9144af | 45 | fail_pos = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 46 | time_short = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 47 | time_long = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 48 | point_count = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 49 | repet = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 50 | |
| MarcelPortmann | 0:0c6d1b9144af | 51 | } |
| MarcelPortmann | 0:0c6d1b9144af | 52 | |
| MarcelPortmann | 4:4e871024310a | 53 | int training::compire_point(float posx,float posy,float posz, int time) |
| MarcelPortmann | 0:0c6d1b9144af | 54 | { |
| MarcelPortmann | 0:0c6d1b9144af | 55 | float temp_pos[3] = {}; |
| MarcelPortmann | 0:0c6d1b9144af | 56 | float dist = 0, timediv = 0; |
| MarcelPortmann | 4:4e871024310a | 57 | int resetval = 0; |
| MarcelPortmann | 0:0c6d1b9144af | 58 | |
| MarcelPortmann | 0:0c6d1b9144af | 59 | if(data_vec[point_count].start) { // counts the repetitions |
| MarcelPortmann | 0:0c6d1b9144af | 60 | repet++; |
| MarcelPortmann | 4:4e871024310a | 61 | resetval = 1; |
| MarcelPortmann | 0:0c6d1b9144af | 62 | } |
| MarcelPortmann | 0:0c6d1b9144af | 63 | |
| MarcelPortmann | 0:0c6d1b9144af | 64 | temp_pos[0] = posx - data_vec[point_count].pos[0]; // calculates distance curent to needed |
| MarcelPortmann | 0:0c6d1b9144af | 65 | temp_pos[1] = posx - data_vec[point_count].pos[1]; |
| MarcelPortmann | 0:0c6d1b9144af | 66 | temp_pos[2] = posx - data_vec[point_count].pos[2]; |
| MarcelPortmann | 0:0c6d1b9144af | 67 | |
| MarcelPortmann | 0:0c6d1b9144af | 68 | dist = sqrt(pow(temp_pos[0],2)+pow(temp_pos[1],2)+pow(temp_pos[2],2)); |
| MarcelPortmann | 0:0c6d1b9144af | 69 | |
| MarcelPortmann | 0:0c6d1b9144af | 70 | if(dist>= POSTOL) { // counts position fail |
| MarcelPortmann | 0:0c6d1b9144af | 71 | fail_pos++; |
| MarcelPortmann | 0:0c6d1b9144af | 72 | } |
| MarcelPortmann | 0:0c6d1b9144af | 73 | |
| MarcelPortmann | 0:0c6d1b9144af | 74 | if(data_vec[point_count].end) { // counts time too short and time too long |
| MarcelPortmann | 4:4e871024310a | 75 | resetval = 2; |
| MarcelPortmann | 0:0c6d1b9144af | 76 | timediv = time - (data_vec[point_count].time); |
| MarcelPortmann | 0:0c6d1b9144af | 77 | if(timediv>=TIMETOL) { |
| MarcelPortmann | 0:0c6d1b9144af | 78 | time_long++; |
| MarcelPortmann | 0:0c6d1b9144af | 79 | } |
| MarcelPortmann | 0:0c6d1b9144af | 80 | if(timediv<=(-TIMETOL)) { |
| MarcelPortmann | 0:0c6d1b9144af | 81 | time_short++; |
| MarcelPortmann | 0:0c6d1b9144af | 82 | } |
| MarcelPortmann | 0:0c6d1b9144af | 83 | } |
| MarcelPortmann | 1:aa8497b98ef4 | 84 | |
| MarcelPortmann | 0:0c6d1b9144af | 85 | point_count++; |
| MarcelPortmann | 1:aa8497b98ef4 | 86 | |
| MarcelPortmann | 1:aa8497b98ef4 | 87 | if(point_count>= data_vec.size()) { // resets the piontecount after a complet cycle |
| MarcelPortmann | 0:0c6d1b9144af | 88 | point_count = 0; |
| MarcelPortmann | 1:aa8497b98ef4 | 89 | } |
| MarcelPortmann | 4:4e871024310a | 90 | |
| MarcelPortmann | 4:4e871024310a | 91 | return resetval; |
| MarcelPortmann | 0:0c6d1b9144af | 92 | |
| MarcelPortmann | 0:0c6d1b9144af | 93 | } |
| MarcelPortmann | 0:0c6d1b9144af | 94 | |
| MarcelPortmann | 2:0df0d0be0664 | 95 | int* training::get_status(void) |
| MarcelPortmann | 2:0df0d0be0664 | 96 | { |
| MarcelPortmann | 2:0df0d0be0664 | 97 | status_array[0] = fail_pos; |
| MarcelPortmann | 2:0df0d0be0664 | 98 | status_array[1] = time_short; |
| MarcelPortmann | 2:0df0d0be0664 | 99 | status_array[2] = time_long; |
| MarcelPortmann | 2:0df0d0be0664 | 100 | status_array[3] = repet; |
| MarcelPortmann | 2:0df0d0be0664 | 101 | |
| MarcelPortmann | 2:0df0d0be0664 | 102 | return status_array; |
| MarcelPortmann | 2:0df0d0be0664 | 103 | } |
| MarcelPortmann | 2:0df0d0be0664 | 104 | |
| MarcelPortmann | 2:0df0d0be0664 | 105 | void training::end_training(string name) |
| MarcelPortmann | 0:0c6d1b9144af | 106 | { |
| MarcelPortmann | 0:0c6d1b9144af | 107 | // writhe status to memory / update memory |
| MarcelPortmann | 4:4e871024310a | 108 | fail_pos = 0; |
| MarcelPortmann | 4:4e871024310a | 109 | time_short = 0; |
| MarcelPortmann | 4:4e871024310a | 110 | time_long = 0; |
| MarcelPortmann | 4:4e871024310a | 111 | point_count = 0; |
| MarcelPortmann | 4:4e871024310a | 112 | repet = 0; |
| MarcelPortmann | 4:4e871024310a | 113 | data_vec.clear(); |
| MarcelPortmann | 4:4e871024310a | 114 | |
| MarcelPortmann | 0:0c6d1b9144af | 115 | } |