a bit more robust.
This commit is contained in:
parent
2bbca6f082
commit
e9dd5bbc99
@ -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())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user