@@ -36,7 +36,6 @@ import (
36
36
properties "github.com/arduino/go-properties-orderedmap"
37
37
"github.com/pkg/errors"
38
38
"github.com/sirupsen/logrus"
39
- "go.bug.st/serial"
40
39
)
41
40
42
41
// Upload FIXMEDOC
@@ -293,44 +292,45 @@ func runProgramAction(pm *packagemanager.PackageManager,
293
292
// to set the board in bootloader mode
294
293
actualPort := port
295
294
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!" )))
320
300
}
321
301
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
331
306
}
332
307
}
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
+ // }
334
334
335
335
if port != "" {
336
336
// Set serial port property
0 commit comments