commit 562497c2dfb891e6321e0c11ccc9cee654508754
parent c40aa38862d3805aff6a84692dbbd9919bcedd62
Author: Daniel Barlow <dan@telent.net>
Date: Sun, 11 Dec 2022 11:01:41 +0000
show moving time, only after first movement
Diffstat:
| M | csc.py | | | 26 | ++++++++++++++------------ |
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/csc.py b/csc.py
@@ -5,7 +5,7 @@ import struct
import sys
import time
-from datetime import datetime
+from datetime import datetime, timedelta
import os
import pygame
@@ -22,7 +22,8 @@ class CadenceListener:
wheelSpeed = 0
crankSpeed = 0
crankSpeedMax = 120
- startTime = None
+ elapsedTime = None
+ firstMessage = True
def getWheelSpeed(self):
return self.wheelSpeed
@@ -35,13 +36,13 @@ class CadenceListener:
offset = offset + 6
if flags & 2:
crankRevolutions,crankTime = struct.unpack('<HH', bytes(value)[offset:offset+4])
- # print(wheelrevs, wheeltime, crankrevs, cranktime)
- if(not self.startTime):
+
+ if(self.firstMessage):
self.prevCtime = crankTime
self.prevWtime = wheelTime
self.prevCrevs = crankRevolutions
self.prevWrevs = wheelRevolutions
- self.startTime = datetime.now()
+ self.firstMessage = False
return
# handle wraparound
@@ -62,14 +63,15 @@ class CadenceListener:
self.prevCrevs = crankRevolutions
if(wheelTime > self.prevWtime):
- revs = ((wheelRevolutions - self.prevWrevs) /
- float(wheelTime - self.prevWtime))
+ millis = float(wheelTime - self.prevWtime)
+ self.rolling = True
+ revs = (wheelRevolutions - self.prevWrevs) / millis
+
self.wheelSpeed = revs * 2205 * 3600 / 1024.0
- print("wheel",
- (float(wheelTime - self.prevWtime)),
- self.wheelSpeed)
+ print("wheel", millis, self.wheelSpeed)
self.prevWtime = wheelTime
self.prevWrevs = wheelRevolutions
+ self.elapsedTime = (self.elapsedTime or 0) + (millis / 1024.0)
class Biscuit:
listener = CadenceListener()
@@ -95,8 +97,8 @@ class Biscuit:
(scale/16,scale + 20),
"{: 5.1f} rpm".format(self.listener.crankSpeed),
(0,255,0))
- if self.listener.startTime != None:
- runTime = datetime.now() - self.listener.startTime
+ if self.listener.elapsedTime != None:
+ runTime = timedelta(seconds=self.listener.elapsedTime)
timelabel = str(runTime)[0:9]
else:
timelabel = datetime.now().strftime("%H:%M:%S")