Easy Training / Training

Dependents:   Easyfit

Committer:
MarcelPortmann
Date:
Wed May 27 19:19:24 2020 +0000
Revision:
7:e74e7496ac8c
Parent:
6:f117c1cc9640

        

Who changed what in which revision?

UserRevisionLine numberNew 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 7:e74e7496ac8c 70 if(dist>= POSTOL && (resetval!= 1)) { // counts position fail
MarcelPortmann 0:0c6d1b9144af 71 fail_pos++;
MarcelPortmann 6:f117c1cc9640 72 resetval = 3;
MarcelPortmann 0:0c6d1b9144af 73 }
MarcelPortmann 0:0c6d1b9144af 74
MarcelPortmann 0:0c6d1b9144af 75 if(data_vec[point_count].end) { // counts time too short and time too long
MarcelPortmann 4:4e871024310a 76 resetval = 2;
MarcelPortmann 0:0c6d1b9144af 77 timediv = time - (data_vec[point_count].time);
MarcelPortmann 0:0c6d1b9144af 78 if(timediv>=TIMETOL) {
MarcelPortmann 0:0c6d1b9144af 79 time_long++;
MarcelPortmann 0:0c6d1b9144af 80 }
MarcelPortmann 0:0c6d1b9144af 81 if(timediv<=(-TIMETOL)) {
MarcelPortmann 0:0c6d1b9144af 82 time_short++;
MarcelPortmann 0:0c6d1b9144af 83 }
MarcelPortmann 0:0c6d1b9144af 84 }
MarcelPortmann 1:aa8497b98ef4 85
MarcelPortmann 0:0c6d1b9144af 86 point_count++;
MarcelPortmann 1:aa8497b98ef4 87
MarcelPortmann 1:aa8497b98ef4 88 if(point_count>= data_vec.size()) { // resets the piontecount after a complet cycle
MarcelPortmann 0:0c6d1b9144af 89 point_count = 0;
MarcelPortmann 1:aa8497b98ef4 90 }
MarcelPortmann 4:4e871024310a 91
MarcelPortmann 4:4e871024310a 92 return resetval;
MarcelPortmann 0:0c6d1b9144af 93
MarcelPortmann 0:0c6d1b9144af 94 }
MarcelPortmann 0:0c6d1b9144af 95
MarcelPortmann 2:0df0d0be0664 96 int* training::get_status(void)
MarcelPortmann 2:0df0d0be0664 97 {
MarcelPortmann 2:0df0d0be0664 98 status_array[0] = fail_pos;
MarcelPortmann 2:0df0d0be0664 99 status_array[1] = time_short;
MarcelPortmann 2:0df0d0be0664 100 status_array[2] = time_long;
MarcelPortmann 2:0df0d0be0664 101 status_array[3] = repet;
MarcelPortmann 2:0df0d0be0664 102
MarcelPortmann 2:0df0d0be0664 103 return status_array;
MarcelPortmann 2:0df0d0be0664 104 }
MarcelPortmann 2:0df0d0be0664 105
MarcelPortmann 2:0df0d0be0664 106 void training::end_training(string name)
MarcelPortmann 0:0c6d1b9144af 107 {
MarcelPortmann 5:da9b6946a035 108 loading.SpeichernDaten(tr_name, repet, "TRAININGSOMATINATOR 3000", repet*3, fail_pos, time_short, time_long, 1, 1, 1, 1 );
MarcelPortmann 5:da9b6946a035 109
MarcelPortmann 5:da9b6946a035 110 fail_pos = 0; // reset all parameters
MarcelPortmann 4:4e871024310a 111 time_short = 0;
MarcelPortmann 4:4e871024310a 112 time_long = 0;
MarcelPortmann 4:4e871024310a 113 point_count = 0;
MarcelPortmann 4:4e871024310a 114 repet = 0;
MarcelPortmann 4:4e871024310a 115 data_vec.clear();
MarcelPortmann 4:4e871024310a 116
MarcelPortmann 0:0c6d1b9144af 117 }