a bit more robust.

This commit is contained in:
Erik Brakkee 2026-05-26 15:41:10 +02:00
parent 2bbca6f082
commit e9dd5bbc99

View File

@ -3,12 +3,29 @@ package main
import (
"context"
"fmt"
"io"
"github.com/half2me/antgo/ant"
"github.com/half2me/antgo/device"
"github.com/half2me/antgo/driver/usb"
)
func resetAndWait(drv io.ReadWriter) error {
if _, err := drv.Write(ant.SystemResetMessage()); err != nil {
return err
}
// drain until we see the startup message (0x6F)
for {
msg, err := ant.ReadMsg(drv)
if err != nil {
return err
}
if msg.Class() == ant.MESSAGE_STARTUP {
return nil
}
}
}
func main() {
drv, err := usb.GetDevice(0x0fcf, 0x1008)
if err != nil {
@ -18,13 +35,11 @@ func main() {
fmt.Println("device opened")
if err := device.ResetWait(drv); err != nil {
panic(fmt.Sprintf("reset failed: %v", err))
if err := resetAndWait(drv); err != nil {
panic(err)
}
fmt.Println("reset ok")
if err := device.StartRxScanModeWait(drv); err != nil {
panic(fmt.Sprintf("scan mode failed: %v", err))
panic(err)
}
fmt.Println("scan mode started")
@ -39,7 +54,8 @@ func main() {
switch msg.DeviceType() {
case ant.DEVICE_TYPE_POWER:
cur := ant.PowerMessage(msg)
fmt.Printf("power: %dW cadence: %d rpm\n", cur.InstantaneousPower(), cur.InstantaneousCadence())
fmt.Printf("%v: power: %dW cadence: %d rpm\n",
msg.DeviceNumber(), cur.InstantaneousPower(), cur.InstantaneousCadence())
}
}