Easy Training / Training

Dependents:   Easyfit

Committer:
MarcelPortmann
Date:
Tue Apr 28 14:00:18 2020 +0000
Revision:
1:aa8497b98ef4
Parent:
0:0c6d1b9144af
Child:
2:0df0d0be0664
sdfv

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 1:aa8497b98ef4 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 1:aa8497b98ef4 34 temp.start = loading.zahl[4]; // fragen wegen status eintrag
MarcelPortmann 1:aa8497b98ef4 35 temp.end = loading.zahl[5];
MarcelPortmann 1:aa8497b98ef4 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 0:0c6d1b9144af 53 void 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 0:0c6d1b9144af 57
MarcelPortmann 0:0c6d1b9144af 58 if(data_vec[point_count].start) { // counts the repetitions
MarcelPortmann 0:0c6d1b9144af 59 repet++;
MarcelPortmann 1:aa8497b98ef4 60
MarcelPortmann 0:0c6d1b9144af 61 }
MarcelPortmann 0:0c6d1b9144af 62
MarcelPortmann 0:0c6d1b9144af 63 temp_pos[0] = posx - data_vec[point_count].pos[0]; // calculates distance curent to needed
MarcelPortmann 0:0c6d1b9144af 64 temp_pos[1] = posx - data_vec[point_count].pos[1];
MarcelPortmann 0:0c6d1b9144af 65 temp_pos[2] = posx - data_vec[point_count].pos[2];
MarcelPortmann 0:0c6d1b9144af 66
MarcelPortmann 0:0c6d1b9144af 67 dist = sqrt(pow(temp_pos[0],2)+pow(temp_pos[1],2)+pow(temp_pos[2],2));
MarcelPortmann 0:0c6d1b9144af 68
MarcelPortmann 0:0c6d1b9144af 69 if(dist>= POSTOL) { // counts position fail
MarcelPortmann 0:0c6d1b9144af 70 fail_pos++;
MarcelPortmann 0:0c6d1b9144af 71 }
MarcelPortmann 0:0c6d1b9144af 72
MarcelPortmann 0:0c6d1b9144af 73 if(data_vec[point_count].end) { // counts time too short and time too long
MarcelPortmann 0:0c6d1b9144af 74 timediv = time - (data_vec[point_count].time);
MarcelPortmann 0:0c6d1b9144af 75 if(timediv>=TIMETOL) {
MarcelPortmann 0:0c6d1b9144af 76 time_long++;
MarcelPortmann 0:0c6d1b9144af 77 }
MarcelPortmann 0:0c6d1b9144af 78 if(timediv<=(-TIMETOL)) {
MarcelPortmann 0:0c6d1b9144af 79 time_short++;
MarcelPortmann 0:0c6d1b9144af 80 }
MarcelPortmann 0:0c6d1b9144af 81 }
MarcelPortmann 1:aa8497b98ef4 82
MarcelPortmann 0:0c6d1b9144af 83 point_count++;
MarcelPortmann 1:aa8497b98ef4 84
MarcelPortmann 1:aa8497b98ef4 85 if(point_count>= data_vec.size()) { // resets the piontecount after a complet cycle
MarcelPortmann 0:0c6d1b9144af 86 point_count = 0;
MarcelPortmann 1:aa8497b98ef4 87 }
MarcelPortmann 0:0c6d1b9144af 88
MarcelPortmann 0:0c6d1b9144af 89 }
MarcelPortmann 0:0c6d1b9144af 90
MarcelPortmann 0:0c6d1b9144af 91 void training::end_training(void)
MarcelPortmann 0:0c6d1b9144af 92 {
MarcelPortmann 0:0c6d1b9144af 93 // writhe status to memory / update memory
MarcelPortmann 0:0c6d1b9144af 94 }