timeout in waitForMode

master
Friedl Ulrich 9 years ago
parent 582954a052
commit f89e07539a

@ -2,7 +2,9 @@
package rfm69
import (
"errors"
"log"
"time"
"github.com/davecheney/gpio"
"github.com/fulr/spidev"
@ -175,16 +177,24 @@ func (r *Device) setup() error {
}
func (r *Device) waitForMode() error {
errChan := make(chan error)
go func() {
for {
reg, err := r.readReg(REG_IRQFLAGS1)
if err != nil {
return err
errChan <- err
break
}
if reg&RF_IRQFLAGS1_MODEREADY != 0 {
errChan <- nil
break
}
}
return nil
}()
time.AfterFunc(5*time.Second, func() {
errChan <- errors.New("timeout")
})
return <-errChan
}
// Encrypt sets the encryption key and enables AES encryption

Loading…
Cancel
Save