diff --git a/inky/inky.go b/inky/inky.go index 0c10537..51f3e97 100644 --- a/inky/inky.go +++ b/inky/inky.go @@ -333,33 +333,41 @@ func (d *Dev) reset() (err error) { } }() if err := d.sendCommand(0x12, nil); err != nil { // Soft Reset - return fmt.Errorf("failed to reset inky: %v", err) + return fmt.Errorf("inky: failed to reset inky: %v", err) } d.busy.WaitForEdge(-1) return } -func (d *Dev) sendCommand(command byte, data []byte) error { - d.cs.Out(gpio.Low) - if err := d.dc.Out(gpio.Low); err != nil { +func (d *Dev) sendCommand(command byte, data []byte) (err error) { + err = d.cs.Out(gpio.Low) + if 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) + if err = d.dc.Out(gpio.Low); err != nil { + return + } + if err = d.c.Tx([]byte{command}, nil); err != nil { + err = fmt.Errorf("inky: failed to send command %x to inky: %v", command, err) + return } d.cs.Out(gpio.High) if data != nil { - if err := d.sendData(data); err != nil { - return fmt.Errorf("failed to send data for command %x to inky: %v", command, err) + if err = d.sendData(data); err != nil { + err = fmt.Errorf("inky: failed to send data for command %x to inky: %v", command, err) + return } } - return nil + return } -func (d *Dev) sendData(data []byte) error { - d.cs.Out(gpio.Low) +func (d *Dev) sendData(data []byte) (err error) { + err = d.cs.Out(gpio.Low) + if err != nil { + return + } - if err := d.dc.Out(gpio.High); err != nil { + if err = d.dc.Out(gpio.High); err != nil { return err } @@ -370,14 +378,15 @@ func (d *Dev) sendData(data []byte) error { } else { chunk, data = data, nil } - if err := d.c.Tx(chunk, nil); err != nil { - return fmt.Errorf("failed to send data to inky: %v", err) + if err = d.c.Tx(chunk, nil); err != nil { + err = fmt.Errorf("inky: failed to send data to inky: %v", err) + return } } - d.cs.Out(gpio.High) + err = d.cs.Out(gpio.High) - return nil + return } func pack(bits []bool) ([]byte, error) {