show moving time, only after first movement
This commit is contained in:
parent
c40aa38862
commit
562497c2df
26
csc.py
26
csc.py
@ -5,7 +5,7 @@ import struct
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime, timedelta
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import pygame
|
import pygame
|
||||||
@ -22,7 +22,8 @@ class CadenceListener:
|
|||||||
wheelSpeed = 0
|
wheelSpeed = 0
|
||||||
crankSpeed = 0
|
crankSpeed = 0
|
||||||
crankSpeedMax = 120
|
crankSpeedMax = 120
|
||||||
startTime = None
|
elapsedTime = None
|
||||||
|
firstMessage = True
|
||||||
|
|
||||||
def getWheelSpeed(self):
|
def getWheelSpeed(self):
|
||||||
return self.wheelSpeed
|
return self.wheelSpeed
|
||||||
@ -35,13 +36,13 @@ class CadenceListener:
|
|||||||
offset = offset + 6
|
offset = offset + 6
|
||||||
if flags & 2:
|
if flags & 2:
|
||||||
crankRevolutions,crankTime = struct.unpack('<HH', bytes(value)[offset:offset+4])
|
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.prevCtime = crankTime
|
||||||
self.prevWtime = wheelTime
|
self.prevWtime = wheelTime
|
||||||
self.prevCrevs = crankRevolutions
|
self.prevCrevs = crankRevolutions
|
||||||
self.prevWrevs = wheelRevolutions
|
self.prevWrevs = wheelRevolutions
|
||||||
self.startTime = datetime.now()
|
self.firstMessage = False
|
||||||
return
|
return
|
||||||
|
|
||||||
# handle wraparound
|
# handle wraparound
|
||||||
@ -62,14 +63,15 @@ class CadenceListener:
|
|||||||
self.prevCrevs = crankRevolutions
|
self.prevCrevs = crankRevolutions
|
||||||
|
|
||||||
if(wheelTime > self.prevWtime):
|
if(wheelTime > self.prevWtime):
|
||||||
revs = ((wheelRevolutions - self.prevWrevs) /
|
millis = float(wheelTime - self.prevWtime)
|
||||||
float(wheelTime - self.prevWtime))
|
self.rolling = True
|
||||||
|
revs = (wheelRevolutions - self.prevWrevs) / millis
|
||||||
|
|
||||||
self.wheelSpeed = revs * 2205 * 3600 / 1024.0
|
self.wheelSpeed = revs * 2205 * 3600 / 1024.0
|
||||||
print("wheel",
|
print("wheel", millis, self.wheelSpeed)
|
||||||
(float(wheelTime - self.prevWtime)),
|
|
||||||
self.wheelSpeed)
|
|
||||||
self.prevWtime = wheelTime
|
self.prevWtime = wheelTime
|
||||||
self.prevWrevs = wheelRevolutions
|
self.prevWrevs = wheelRevolutions
|
||||||
|
self.elapsedTime = (self.elapsedTime or 0) + (millis / 1024.0)
|
||||||
|
|
||||||
class Biscuit:
|
class Biscuit:
|
||||||
listener = CadenceListener()
|
listener = CadenceListener()
|
||||||
@ -95,8 +97,8 @@ class Biscuit:
|
|||||||
(scale/16,scale + 20),
|
(scale/16,scale + 20),
|
||||||
"{: 5.1f} rpm".format(self.listener.crankSpeed),
|
"{: 5.1f} rpm".format(self.listener.crankSpeed),
|
||||||
(0,255,0))
|
(0,255,0))
|
||||||
if self.listener.startTime != None:
|
if self.listener.elapsedTime != None:
|
||||||
runTime = datetime.now() - self.listener.startTime
|
runTime = timedelta(seconds=self.listener.elapsedTime)
|
||||||
timelabel = str(runTime)[0:9]
|
timelabel = str(runTime)[0:9]
|
||||||
else:
|
else:
|
||||||
timelabel = datetime.now().strftime("%H:%M:%S")
|
timelabel = datetime.now().strftime("%H:%M:%S")
|
||||||
|
Loading…
Reference in New Issue
Block a user