Skip to content

Commit

Permalink
Merge pull request #23 from b3nj1/deepcopy2
Browse files Browse the repository at this point in the history
deepcopy for WRValue* and its copies
  • Loading branch information
inonoob authored Feb 21, 2021
2 parents 925a6a9 + 930d18f commit 99c4c3d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 52 deletions.
11 changes: 7 additions & 4 deletions src/smartrowtobleant.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from time import sleep
from threading import Timer
import time
from copy import deepcopy

import smartrowreader

Expand All @@ -27,6 +28,10 @@ class DataLogger():
def __init__(self, rower_interface):
self._rower_interface = rower_interface
self._rower_interface.register_callback(self.on_row_event)

self._reset_state()

def _reset_state(self):
self.WRValues_rst = {
'stroke_rate': 0,
'total_strokes': 0,
Expand All @@ -45,10 +50,8 @@ def __init__(self, rower_interface):
'watts_avg':0,
'pace_avg':0
}
self.WRValues = self.WRValues_rst
self.WRvalue_standstill = self.WRValues_rst
self.BLEvalues = self.WRValues_rst
self.ANTvalues = self.WRValues_rst
self.WRValues = deepcopy(self.WRValues_rst)
self.WRValues_standstill = deepcopy(self.WRValues_rst)
self.starttime = None
self.fullstop = True
self.SmartRowHalt = False
Expand Down
4 changes: 2 additions & 2 deletions src/waterrowerthreads.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def Waterrower(in_q, ble_out_q, ant_out_q):
Waterrowerserial()

def Smartrow(in_q, ble_out_q, ant_out_q):
logger.info("Waterrower Interface started")
logger.info("Smartrow Interface started")
Smartrowconnection = smartrowtobleant.main(in_q, ble_out_q, ant_out_q)
Smartrowconnection()

Expand Down Expand Up @@ -84,7 +84,7 @@ def ANTService(ant_in_q):
t.start()
threads.append(t)
else:
logger.info("no interface selected")
logger.info("sr not selected")

if args.blue == True:
t = threading.Thread(target=BleService, args=(q, ble_q))
Expand Down
76 changes: 30 additions & 46 deletions src/wrtobleant.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import datetime
import logging
import numpy
from copy import deepcopy

import waterrowerinterface

Expand All @@ -32,12 +33,13 @@ def __init__(self, rower_interface):
self._rower_interface.register_callback(self.reset_requested)
self._rower_interface.register_callback(self.pulse)
self._rower_interface.register_callback(self.on_rower_event)
self._event = {}
self._events = []
self._stop_event = threading.Event()

self._reset_state()

def _reset_state(self):
self._InstaPowerStroke = []
self.maxpowerStroke = 0
self._activity = None
self._stop_event = threading.Event()
self._StrokeStart = False
self.Watts = 0
self._maxpowerfivestrokes = []
Expand All @@ -61,10 +63,10 @@ def __init__(self, rower_interface):
'heart_rate': 0,
'elapsedtime': 0.0,
}
self.WRValues = self.WRValues_rst
self.WRvalue_standstill = self.WRValues_rst
self.BLEvalues = self.WRValues_rst
self.ANTvalues = self.WRValues_rst
self.WRValues = deepcopy(self.WRValues_rst)
self.WRValues_standstill = deepcopy(self.WRValues_rst)
self.BLEvalues = deepcopy(self.WRValues_rst)
self.ANTvalues = deepcopy(self.WRValues_rst)
self.secondsWR = 0
self.minutesWR = 0
self.hoursWR = 0
Expand All @@ -90,7 +92,7 @@ def on_rower_event(self, event):
self.WRValues.update({'speed':0})
else:
self.InstantaneousPace = (500 * 100) / event['value']
print(self.InstantaneousPace)
#print(self.InstantaneousPace)
self.WRValues.update({'instantaneous pace': self.InstantaneousPace})
self.WRValues.update({'speed':event['value']})
if event['type'] == 'watts':
Expand Down Expand Up @@ -125,28 +127,12 @@ def pulse(self,event):
self.PaddleTurning = False
self._StrokeStart = False
self.PulseEventTime = 0
self.WRvalueStandstill()
self.WRValuesStandstill()


def reset_requested(self,event):
if event['type'] == 'reset':
self.rowerreset = True
self.WRValues_rst = {
'stroke_rate': 0,
'total_strokes': 0,
'total_distance_m': 0,
'instantaneous pace': 0,
'speed': 0,
'watts': 0,
'total_kcal': 0,
'total_kcal_hour': 0,
'total_kcal_min': 0,
'heart_rate': 0,
'elapsedtime': 0.0,
}
self.secondsWR = 0
self.minutesWR = 0
self.hoursWR = 0
self._reset_state()
logger.info("value reseted")

def TimeElapsedcreator(self):
Expand All @@ -157,12 +143,12 @@ def TimeElapsedcreator(self):
self.WRValues.update({'elapsedtime': self.elapsetime})
self.elapsetimeprevious = self.elapsetime

def WRvalueStandstill(self):
self.WRvalue_standstill = self.WRValues
self.WRvalue_standstill.update({'stroke_rate': 0})
self.WRvalue_standstill.update({'instantaneous pace': 0})
self.WRvalue_standstill.update({'speed': 0})
self.WRvalue_standstill.update({'watts': 0})
def WRValuesStandstill(self):
self.WRValues_standstill = deepcopy(self.WRValues)
self.WRValues_standstill.update({'stroke_rate': 0})
self.WRValues_standstill.update({'instantaneous pace': 0})
self.WRValues_standstill.update({'speed': 0})
self.WRValues_standstill.update({'watts': 0})

def avgInstaPowercalc(self,watts):
if watts != 0:
Expand All @@ -181,21 +167,19 @@ def avgInstaPowercalc(self,watts):
pass


def SendToBLE(self):
def get_WRValues(self):
if self.rowerreset:
self.BLEvalues = self.WRValues_rst
return deepcopy(self.WRValues_rst)
elif not self.rowerreset and not self.PaddleTurning:
self.BLEvalues = self.WRvalue_standstill
return deepcopy(self.WRValues_standstill)
elif not self.rowerreset and self.PaddleTurning:
self.BLEvalues = self.WRValues

return deepcopy(self.WRValues)

def SendToBLE(self):
self.BLEvalues = self.get_WRValues()

def SendToANT(self):
if self.rowerreset:
self.ANTvalues = self.WRValues_rst
elif not self.rowerreset and not self.PaddleTurning:
self.ANTvalues = self.WRvalue_standstill
elif not self.rowerreset and self.PaddleTurning:
self.ANTvalues = self.WRValues
self.ANTvalues = self.get_WRValues()

def main(in_q, ble_out_q,ant_out_q):
S4 = waterrowerinterface.Rower()
Expand Down Expand Up @@ -233,7 +217,7 @@ def main(in_q, ble_out_q,ant_out_q):
# #ant_out_q.append(WRtoBLEANT.ANTvalues)
# #print("Rowering_value {0}".format(WRtoBLEANT.WRValues))
# #print("Rowering_value_rst {0}".format(WRtoBLEANT.WRValues_rst))
# #print("Rowering_value_standstill {0}".format(WRtoBLEANT.WRvalue_standstill))
# #print("Rowering_value_standstill {0}".format(WRtoBLEANT.WRValues_standstill))
# print("Reset {0}".format(WRtoBLEANT.rowerreset))
# #print("Paddleturning {0}".format(WRtoBLEANT.PaddleTurning))
# #print("Lastcheck {0}".format(WRtoBLEANT.Lastcheckforpulse))
Expand All @@ -247,4 +231,4 @@ def main(in_q, ble_out_q,ant_out_q):
#
#
# if __name__ == '__main__':
# maintest()
# maintest()

0 comments on commit 99c4c3d

Please sign in to comment.