From 53592c599b547c30475e4432de442148f9bf8872 Mon Sep 17 00:00:00 2001 From: John Maguire Date: Tue, 29 Jan 2019 17:44:15 +0000 Subject: [PATCH] inky: Add more error checking (#394) --- experimental/devices/inky/inky.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/experimental/devices/inky/inky.go b/experimental/devices/inky/inky.go index 558afac..16a6df8 100644 --- a/experimental/devices/inky/inky.go +++ b/experimental/devices/inky/inky.go @@ -186,7 +186,7 @@ func (d *Dev) Draw(dstRect image.Rectangle, src image.Image, srcPtrs image.Point return d.update(borderColor[d.border], bufA, bufB) } -func (d *Dev) update(border byte, black []byte, red []byte) error { +func (d *Dev) update(border byte, black []byte, red []byte) (err error) { if err := d.reset(); err != nil { return err } @@ -269,8 +269,14 @@ func (d *Dev) update(border byte, black []byte, red []byte) error { } } - d.busy.In(gpio.PullUp, gpio.FallingEdge) - defer d.busy.In(gpio.PullUp, gpio.NoEdge) + if err := d.busy.In(gpio.PullUp, gpio.FallingEdge); err != nil { + return err + } + defer func() { + if err2 := d.busy.In(gpio.PullUp, gpio.NoEdge); err2 != nil { + err = err2 + } + }() if err := d.sendCommand(0x20, nil); err != nil { return err } @@ -280,7 +286,7 @@ func (d *Dev) update(border byte, black []byte, red []byte) error { if err := d.sendCommand(0x10, []byte{0x01}); err != nil { // Enter deep sleep. return err } - return nil + return } func (d *Dev) reset() (err error) { @@ -309,7 +315,9 @@ func (d *Dev) reset() (err error) { } func (d *Dev) sendCommand(command byte, data []byte) error { - d.dc.Out(gpio.Low) + if err := d.dc.Out(gpio.Low); err != nil { + return err + } if err := d.c.Tx([]byte{command}, nil); err != nil { return fmt.Errorf("failed to send command %x to inky: %v", command, err) }