diff --git a/cmd/bridge/ant.go b/cmd/bridge/ant.go index e3157da..62669b5 100644 --- a/cmd/bridge/ant.go +++ b/cmd/bridge/ant.go @@ -3,6 +3,7 @@ package main import ( "context" "io" + "time" "github.com/google/gousb" "github.com/half2me/antgo/ant" @@ -77,6 +78,7 @@ func ListenForTrainer(vendorId uint16, productId uint16, deviceNumber uint32, case events <- Event{ Power: cur.InstantaneousPower(), Cadence: cur.InstantaneousCadence(), + Now: time.Now(), }: default: logPrintf("ant: dropped event, buffer full\n") diff --git a/cmd/bridge/bluetooth.go b/cmd/bridge/bluetooth.go index 3b9bb42..6e6791b 100644 --- a/cmd/bridge/bluetooth.go +++ b/cmd/bridge/bluetooth.go @@ -56,7 +56,7 @@ func ExposeBluetooth(events <-chan Event) { lastUpdate := time.Now() var elapsedTicks float64 for event := range events { - now := time.Now() + now := event.Now deltaT := now.Sub(lastUpdate).Seconds() lastUpdate = now @@ -82,7 +82,7 @@ func ExposeBluetooth(events <-chan Event) { if _, err := powerChar.Write(payload); err != nil { logPrintf("bt: failed to write power characteristic: %v\n", err) } - logPrintf("bt: watts: %d rpm: %.0f completedRevs: %.0f lastRevTime: %.0f processingTime: %v\n", + logPrintf("bt: watts: %d rpm: %.0f completedRevs: %.0f lastRevTime: %.0f processingDelay: %v\n", watts, rpm, completedRevs, lastCompletedRev, time.Now().Sub(now)) } logMsg("bt: BLE advertising stopped") diff --git a/cmd/bridge/event.go b/cmd/bridge/event.go index 4cfd2bf..ae32799 100644 --- a/cmd/bridge/event.go +++ b/cmd/bridge/event.go @@ -1,6 +1,9 @@ package main +import "time" + type Event struct { Power uint16 Cadence uint8 + Now time.Time }