Skip to content

Commit b91750d

Browse files
authored
Overhead presses feature and bug fixes (#21)
* Changed formatting to allow routines * Merging progress between branches * Workout transition fix * Added overhead exercises
1 parent 8433178 commit b91750d

File tree

3 files changed

+39
-15
lines changed

3 files changed

+39
-15
lines changed

UDPHandler.py

+19-5
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@
1515
# Processing UDP updates
1616
def process(address, data):
1717
#print("Processing", data, " from", address)
18+
#print(data)
1819
if type(data) == str:
1920
userID, isRoutine, workoutOrRoutineID = [int(e) for e in data.split(" ")]
21+
print("GOT FIRST: ", userID, isRoutine, workoutOrRoutineID)
22+
2023
if isRoutine:
2124
routine_data = workoutSetModel.get_workouts_of_routine(workoutOrRoutineID)
2225
mode = routine_data[0]["workoutType"]
@@ -36,7 +39,16 @@ def process(address, data):
3639
return
3740

3841
# Process table update
39-
session = temporaryData[address[0]]
42+
try:
43+
session = temporaryData[address[0]]
44+
45+
if session == None:
46+
print("GETTING UDP WITH NONE SESSION")
47+
return
48+
except:
49+
print("GETTING UDP WITHOUT SESSION")
50+
return
51+
4052
if not session.jointTotals: # initialize iteration table
4153
session.jointTotals = data
4254
return
@@ -85,23 +97,25 @@ def poll():
8597
return {"change": "nothing"}
8698

8799
elif change == "complete": # finished
88-
# TODO: clear data
100+
dataMapping[id] = None
101+
temporaryData[addr] = None
102+
print("FINISHED!!!!!!!!!!!!!!!!")
89103
return {"change": "complete"}
90104

91105
elif change == "next routine":
92106
next_workout_data = session.routine_data[session.routine_counter]
93107
mode = next_workout_data["workoutType"]
94-
maxReps = next_workout_data["workoutType"]
108+
maxReps = next_workout_data["reps"]
95109

96110
session = makeSession(mode, maxReps, session.routine_data, session.routine_counter)
97111
temporaryData[addr] = session
98112

99-
return {"change": "new routine", "details": mode}
113+
return {"change": "message", "details": f"Set complete. Next workout is {maxReps} reps of {mode}"}
100114

101115
elif change == "new state":
102116
print("New State:", session.rep_state, "total reps:", session.reps)
103117
return {"change": session.rep_state, "reps": session.reps}
104118

105119
else:
106120
print("Bad form: ", change)
107-
return {"change": "bad form", "details": change}
121+
return {"change": "message", "details": change}

graphing/upload_images.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
from flask import Blueprint, request, send_file
2+
import os
23

34
graphing_blueprint = Blueprint('graphing_blueprint', __name__)
45

56
@graphing_blueprint.route("/graph/time", methods=["GET"])
67
def getTimeGraph():
7-
#img_dir = "./static"
8-
#img_list = os.listdir(img_dir)
9-
#img_path = os.path.join(img_dir, random.choice(img_list))
10-
return
8+
img_path = "D:\\Coding\\PeddieHacks2022\\backend\\graphing\\graphs\\time_graph.png" #os.path.join(os.getcwd(), "/graphs/time_graph.png")
9+
return send_file(img_path, mimetype='image/png')
10+
11+
@graphing_blueprint.route("/graph/reps", methods=["GET"])
12+
def getRepsGraph():
13+
img_path = "D:\\Coding\\PeddieHacks2022\\backend\\graphing\\graphs\\reps_graph.png" #os.path.join(os.getcwd(), "/graphs/time_graph.png")
14+
return send_file(img_path, mimetype='image/png')

sessionModels.py

+12-6
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ def __init__(self, max_reps, routine_data, routine_counter):
1717

1818
class curlSession(workoutSession):
1919
def __init__(self, max_reps, routine_data, routine_counter,
20-
rightEnabled, leftEnabled, alternatingEnabled):
20+
rightEnabled, leftEnabled, overheadEnabled):
2121
super().__init__(max_reps, routine_data, routine_counter)
2222
self.rightEnabled = rightEnabled
2323
self.leftEnabled = leftEnabled
24-
self.alternatingEnabled = alternatingEnabled
24+
self.overheadEnabled = overheadEnabled
2525

26-
rep_state = "down"
26+
rep_state = None
2727
rep_progress = 0
2828

2929
UP_THRESHOLD = 80
@@ -51,7 +51,14 @@ def process_poll(self, points) -> str:
5151
state = "up"
5252
if (left_angle > self.DOWN_THRESHOLD and right_angle > self.DOWN_THRESHOLD):
5353
state = "down"
54+
if (self.overheadEnabled):
55+
state = state == "up" and "down" or "up"
5456

57+
if not self.rep_state:
58+
# intialize repstate
59+
self.rep_state = state or "down"
60+
return
61+
5562
if state:
5663
if self.rep_state != state:
5764
if state == "up":
@@ -96,9 +103,8 @@ def process_poll(self, points) -> str:
96103

97104

98105
def makeSession(mode: str, max_reps, routine_data, routine_counter) -> workoutSession:
99-
if mode.find("Bicep") > -1:
100-
print(max_reps, routine_data, routine_counter)
101-
session = curlSession(max_reps, routine_data, routine_counter, mode != "Left Bicep Curl", mode != "Right Bicep Curl", mode == "Alternating Bicep Curl")
106+
if mode.find("Bicep") > -1 or mode.find("Overhead") > -1:
107+
session = curlSession(max_reps, routine_data, routine_counter, mode.find("Right") > -1, mode.find("Left") > -1, mode.find("Overhead") > -1)
102108
return session
103109

104110
else:

0 commit comments

Comments
 (0)