[chronojump/michrolab] Selection of gravitatory exercise



commit ba4fe01e27c4747b4aa4a37e903dd28c583a3b15
Author: Xavier Padullés <testing chronojump org>
Date:   Mon Aug 22 18:52:28 2022 +0200

    Selection of gravitatory exercise

 arduino/michrolab/SDExample/gravType.txt |  4 ++++
 arduino/michrolab/exercsiseManage.ino    | 24 ++++++++++++++++++----
 arduino/michrolab/menus.ino              | 35 +++++++++++++++++++++-----------
 arduino/michrolab/michrolab.ino          |  9 +++++---
 4 files changed, 53 insertions(+), 19 deletions(-)
---
diff --git a/arduino/michrolab/SDExample/gravType.txt b/arduino/michrolab/SDExample/gravType.txt
new file mode 100644
index 000000000..74db55a23
--- /dev/null
+++ b/arduino/michrolab/SDExample/gravType.txt
@@ -0,0 +1,4 @@
+#id, name, description, percentBodyWeight, speed1RM
+0,Bench Press, Typical Bench press with a barbell,0,0.185
+1,Squat,Squat movement with a barbell,100,0.31
+2,Biceps Curl,Typical biceps curl with,0,0 
diff --git a/arduino/michrolab/exercsiseManage.ino b/arduino/michrolab/exercsiseManage.ino
index 325b3b19f..2d4575905 100644
--- a/arduino/michrolab/exercsiseManage.ino
+++ b/arduino/michrolab/exercsiseManage.ino
@@ -80,14 +80,14 @@ void readExercisesFile(exerciseType mode)
   }
   else if (mode == gravitatory) {
     //Serial.println("G");
-    file = "gravitat.txt";
+    file = "gravType.txt";
   }
 
   File  exercisesFile = SD.open(file);
 
   if (exercisesFile)
   {
-    Serial.println("file size: " + String(exercisesFile.size()) );
+    //Serial.println("File size = " + String(exercisesFile.size() ) );
     while (pos <= exercisesFile.size())
     {
       readChar = '0';
@@ -98,8 +98,9 @@ void readExercisesFile(exerciseType mode)
         readString = readString + readChar;
         pos++;
       }
+      
+      //Serial.print(readString);
 
-      //Serial.print(" | ");
       //Check that it is a valid row.
       if ( isDigit(readString[0]) )
       {
@@ -122,7 +123,7 @@ void readExercisesFile(exerciseType mode)
 void printJumpTypesList()
 {
   Serial.println("id, name, jumpLimit,timeLimit, hardTimeLimit, percentBodyWeight, fall, startIn");
-  for (unsigned int i = 0; i < totalJumpTypes; i++)
+  for (unsigned int i = 0; i < totalGravTypes; i++)
   {
     Serial.print(jumpTypes[i].id);
     Serial.print("," + jumpTypes[i].name + ", ");
@@ -136,3 +137,18 @@ void printJumpTypesList()
     else Serial.println("No, ");
   }
 }
+
+void printGravTypesList()
+{
+  Serial.println();
+  Serial.println("totalGravTypes: " + String(totalGravTypes) );
+  Serial.println("id, name, description, percentBodyWeight, speed1RM");
+  for (unsigned int i = 0; i < totalGravTypes; i++)
+  {
+    Serial.print(String(gravTypes[i].id) + ", ");
+    Serial.print(gravTypes[i].name + ", ");
+    Serial.print(gravTypes[i].description + ", ");
+    Serial.print(String( gravTypes[i].percentBodyWeight , 2) + "%, ");
+    Serial.println(String( gravTypes[i].speed1Rm , 2) + "m/s, ");
+  }
+}
diff --git a/arduino/michrolab/menus.ino b/arduino/michrolab/menus.ino
index ad7ea9310..4c2e51998 100644
--- a/arduino/michrolab/menus.ino
+++ b/arduino/michrolab/menus.ino
@@ -208,29 +208,40 @@ float selectValueDialog(String description, String rangesString, String incStrin
   return (value);
 }
 
-void selectJumpType()
+void selectExerciseType(exerciseType mode)
 {
   tft.fillScreen(BLACK);
-  printTftText("Jump type", 40, 20, WHITE, 3);
+  if (mode == jumps) {
+    printTftText("Jump type", 40, 20, WHITE, 3);
+    printTftText(jumpTypes[currentExerciseType].name, 50, 100);
+  }
+  else if (mode == gravitatory) {
+    printTftText("Gravit. type", 40, 20, WHITE, 3);
+    printTftText(gravTypes[currentExerciseType].name, 50, 100);
+  }
   
   drawLeftButton("Next", WHITE, BLUE);
   drawRightButton("Accept", WHITE, RED);
-
-  printTftText(jumpTypes[currentExerciseType].name, 50, 100);
-
   
   blueButton.update();
   redButton.update();
   while(!redButton.fell())
   {
     if(blueButton.fell())
-    {      
-      //Deleting last jumpType text
-      printTftText(jumpTypes[currentExerciseType].name, 50, 100, BLACK);
-
-      //Printing new jump type text
-      currentExerciseType = (currentExerciseType + 1) % totalJumpTypes;
-      printTftText(jumpTypes[currentExerciseType].name, 50, 100);
+    {
+      
+      //Deleting last exercise type text and
+      //Printing new exersise type text
+      if (mode == jumps) {
+        printTftText(jumpTypes[currentExerciseType].name, 50, 100, BLACK);
+        currentExerciseType = (currentExerciseType + 1) % totalJumpTypes;
+        printTftText(jumpTypes[currentExerciseType].name, 50, 100);
+      }
+      else if (mode == gravitatory) {
+        printTftText(gravTypes[currentExerciseType].name, 50, 100, BLACK);
+        currentExerciseType = (currentExerciseType + 1) % totalGravTypes;   
+        printTftText(gravTypes[currentExerciseType].name, 50, 100);   
+      }
     }
     blueButton.update();
     redButton.update();
diff --git a/arduino/michrolab/michrolab.ino b/arduino/michrolab/michrolab.ino
index fa16580bf..2abf8fedf 100644
--- a/arduino/michrolab/michrolab.ino
+++ b/arduino/michrolab/michrolab.ino
@@ -174,7 +174,7 @@ menuEntry mainMenu[10] = {
   { "", "", &backMenu}
 };
 
-int mainMenuItems = 9;
+int mainMenuItems = 8;
 
 menuEntry systemMenu[10] {
   { "Group", "Select the group you are going to use.\nUp to 9 groups can be\nselected", &selectGroup},
@@ -416,7 +416,7 @@ void setup() {
   totalPersons = getTotalPerson();
   readPersonsFile();
 
-  //TODO: Read jumps only if necessary
+  //TODO: Read exercises only if necessary
   currentExerciseType = 0;
 
   tft.fillScreen(BLACK);
@@ -1255,6 +1255,9 @@ void startEncoderCapture(void)
   avgVelocity = 0;
   maxAvgVelocity = 0;
   lastVelocity = 0;
+  readExercisesFile(gravitatory);
+  currentExerciseType = 0;
+  selectExerciseType(gravitatory);
   selectValueDialog("Select the load you are\ngoing to move", "0,5,20,200", "0.5,1,5", 1);
   //captureRaw();
   captureBars();
@@ -1375,7 +1378,7 @@ void jumpsCapture()
 {
   readExercisesFile(jumps);
   printJumpTypesList();
-  selectJumpType();
+  selectExerciseType(jumps);
   IntervalTimer testTime;             //Timer that controls the refreshing of time in lower right corner
   capturing = true;
   //In the first change of state the header of the row is writen.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]