a bit more robust.
This commit is contained in:
parent
2bbca6f082
commit
e9dd5bbc99
@ -3,12 +3,29 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
|
|
||||||
"github.com/half2me/antgo/ant"
|
"github.com/half2me/antgo/ant"
|
||||||
"github.com/half2me/antgo/device"
|
"github.com/half2me/antgo/device"
|
||||||
"github.com/half2me/antgo/driver/usb"
|
"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() {
|
func main() {
|
||||||
drv, err := usb.GetDevice(0x0fcf, 0x1008)
|
drv, err := usb.GetDevice(0x0fcf, 0x1008)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -18,13 +35,11 @@ func main() {
|
|||||||
|
|
||||||
fmt.Println("device opened")
|
fmt.Println("device opened")
|
||||||
|
|
||||||
if err := device.ResetWait(drv); err != nil {
|
if err := resetAndWait(drv); err != nil {
|
||||||
panic(fmt.Sprintf("reset failed: %v", err))
|
panic(err)
|
||||||
}
|
}
|
||||||
fmt.Println("reset ok")
|
|
||||||
|
|
||||||
if err := device.StartRxScanModeWait(drv); err != nil {
|
if err := device.StartRxScanModeWait(drv); err != nil {
|
||||||
panic(fmt.Sprintf("scan mode failed: %v", err))
|
panic(err)
|
||||||
}
|
}
|
||||||
fmt.Println("scan mode started")
|
fmt.Println("scan mode started")
|
||||||
|
|
||||||
@ -39,7 +54,8 @@ func main() {
|
|||||||
switch msg.DeviceType() {
|
switch msg.DeviceType() {
|
||||||
case ant.DEVICE_TYPE_POWER:
|
case ant.DEVICE_TYPE_POWER:
|
||||||
cur := ant.PowerMessage(msg)
|
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