From bb540df2d125475b0e864478c3336b0f9a422e4d Mon Sep 17 00:00:00 2001 From: Ron Evans Date: Mon, 13 Apr 2020 14:34:54 +0200 Subject: [PATCH] flash: retry 3 times when attempting to reset the serial port Signed-off-by: Ron Evans --- main.go | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index af9a7705..9af1a76d 100644 --- a/main.go +++ b/main.go @@ -473,16 +473,22 @@ func Run(pkgName string, options *compileopts.Options) error { }) } -func touchSerialPortAt1200bps(port string) error { - // Open port - p, err := serial.Open(port, &serial.Mode{BaudRate: 1200}) - if err != nil { - return fmt.Errorf("opening port: %s", err) - } - defer p.Close() +func touchSerialPortAt1200bps(port string) (err error) { + retryCount := 3 + for i := 0; i < retryCount; i++ { + // Open port + p, e := serial.Open(port, &serial.Mode{BaudRate: 1200}) + if e != nil { + time.Sleep(1 * time.Second) + err = e + continue + } + defer p.Close() - p.SetDTR(false) - return nil + p.SetDTR(false) + return nil + } + return fmt.Errorf("opening port: %s", err) } func flashUF2UsingMSD(volume, tmppath string) error {