@@ -36,7 +36,6 @@ import (
3636 properties "github.com/arduino/go-properties-orderedmap"
3737 "github.com/pkg/errors"
3838 "github.com/sirupsen/logrus"
39- "go.bug.st/serial"
4039)
4140
4241// Upload FIXMEDOC
@@ -293,44 +292,45 @@ func runProgramAction(pm *packagemanager.PackageManager,
293292 // to set the board in bootloader mode
294293 actualPort := port
295294 if programmer == nil && ! burnBootloader {
296- // Perform reset via 1200bps touch if requested
297- if uploadProperties .GetBoolean ("upload.use_1200bps_touch" ) {
298- if port == "" {
299- outStream .Write ([]byte (fmt .Sprintln ("Skipping 1200-bps touch reset: no serial port selected!" )))
300- } else {
301- ports , err := serial .GetPortsList ()
302- if err != nil {
303- return fmt .Errorf ("cannot get serial port list: %s" , err )
304- }
305- for _ , p := range ports {
306- if p == port {
307- if verbose {
308- outStream .Write ([]byte (fmt .Sprintf ("Performing 1200-bps touch reset on serial port %s" , p )))
309- outStream .Write ([]byte (fmt .Sprintln ()))
310- }
311- logrus .Infof ("Touching port %s at 1200bps" , port )
312- if err := serialutils .TouchSerialPortAt1200bps (p ); err != nil {
313- outStream .Write ([]byte (fmt .Sprintf ("Cannot perform port reset: %s" , err )))
314- outStream .Write ([]byte (fmt .Sprintln ()))
315- }
316- break
317- }
318- }
319- }
295+ // Perform reset via 1200bps touch if requested and wait for upload port if requested.
296+ touch := uploadProperties .GetBoolean ("upload.use_1200bps_touch" )
297+ wait := uploadProperties .GetBoolean ("upload.wait_for_upload_port" )
298+ if touch && port == "" {
299+ outStream .Write ([]byte (fmt .Sprintln ("Skipping 1200-bps touch reset: no serial port selected!" )))
320300 }
321301
322- // Wait for upload port if requested
323- if uploadProperties .GetBoolean ("upload.wait_for_upload_port" ) {
324- if verbose {
325- outStream .Write ([]byte (fmt .Sprintln ("Waiting for upload port..." )))
326- }
327-
328- actualPort , err = serialutils .WaitForNewSerialPortOrDefaultTo (actualPort )
329- if err != nil {
330- return errors .WithMessage (err , "detecting serial port" )
302+ if newPort , err := serialutils .TouchAndWait (port , wait ); err != nil {
303+ } else {
304+ if newPort != "" {
305+ actualPort = newPort
331306 }
332307 }
333- }
308+ // ports, err := serial.GetPortsList()
309+ // for _, p := range ports {
310+ // if p == port {
311+ // if verbose {
312+ // outStream.Write([]byte(fmt.Sprintf("Performing 1200-bps touch reset on serial port %s", p)))
313+ // outStream.Write([]byte(fmt.Sprintln()))
314+ // }
315+ // logrus.Infof("Touching port %s at 1200bps", port)
316+ // if err := serialutils.TouchSerialPortAt1200bps(p); err != nil {
317+ // outStream.Write([]byte(fmt.Sprintf("Cannot perform port reset: %s", err)))
318+ // outStream.Write([]byte(fmt.Sprintln()))
319+ // }
320+ // break
321+ // }
322+ // }
323+ }
324+
325+ // Wait for upload port if requested
326+ // if verbose {
327+ // outStream.Write([]byte(fmt.Sprintln("Waiting for upload port...")))
328+ // }
329+
330+ // actualPort, err = serialutils.WaitForNewSerialPortOrDefaultTo(actualPort)
331+ // if err != nil {
332+ // return errors.WithMessage(err, "detecting serial port")
333+ // }
334334
335335 if port != "" {
336336 // Set serial port property
0 commit comments