wobble

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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:
Mcsc.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")