fix error handling

pull/106/head
George Sexton 1 year ago
parent bca1c90b5e
commit 9f3eb67a7b

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

Loading…
Cancel
Save