From 048f89366fddeb62f2eaafcabce436c5b5e4c020 Mon Sep 17 00:00:00 2001 From: soypat Date: Mon, 22 May 2023 08:12:32 -0300 Subject: [PATCH] receiver loops forever; add errWrap --- examples/receiver/receiver.go | 21 +++++++++++++-------- sx127x/sx127x.go | 4 ++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/examples/receiver/receiver.go b/examples/receiver/receiver.go index ec367ea..72be08a 100644 --- a/examples/receiver/receiver.go +++ b/examples/receiver/receiver.go @@ -50,15 +50,20 @@ func main() { var rx [256]byte // This blocks forever reading messages received. ctx := context.Background() - err = dev.RxContinuous(ctx, func(r io.Reader) (_ error) { - n, err := r.Read(rx[:]) + for { + time.Sleep(10 * time.Second) + err = dev.RxContinuous(ctx, func(r io.Reader) (_ error) { + n, err := r.Read(rx[:]) + if err != nil { + return err + } + println("received LoRa:", string(rx[:n])) + return nil + }) if err != nil { - return err + println(err.Error()) + } else { + println("RX finished no error") } - println("received LoRa:", string(rx[:n])) - return nil - }) - if err != nil { - panic(err) } } diff --git a/sx127x/sx127x.go b/sx127x/sx127x.go index 663b6ab..e8a97da 100644 --- a/sx127x/sx127x.go +++ b/sx127x/sx127x.go @@ -479,8 +479,8 @@ func (d *DeviceLoRa) RxContinuous(ctx context.Context, fn rxCallback) error { if err != nil { return err } else if op != OpRx { - return errors.New("unexpected op mode change during RxContinuous to " + - op.String() + " with irqs:" + irqFlagsString(irq)) + return d.wrapErr(errors.New("unexpected op mode change during RxContinuous to " + + op.String() + " with irqs:" + irqFlagsString(irq))) } } return ctx.Err()