@@ -413,6 +413,11 @@ func touch_port_1200bps(portname string, wait_for_upload_port bool) (string, err
413
413
initialPortName := portname
414
414
log .Println ("Restarting in bootloader mode" )
415
415
416
+ before_reset_ports , _ := serial .GetPortsList ()
417
+ log .Println (before_reset_ports )
418
+
419
+ var ports []string
420
+
416
421
mode := & serial.Mode {
417
422
BaudRate : 1200 ,
418
423
Vmin : 0 ,
@@ -428,31 +433,44 @@ func touch_port_1200bps(portname string, wait_for_upload_port bool) (string, err
428
433
log .Println (err )
429
434
}
430
435
port .Close ()
431
- time .Sleep (time .Second / 2.0 )
432
436
433
437
timeout := false
434
438
go func () {
435
- time .Sleep (2 * time .Second )
439
+ time .Sleep (10 * time .Second )
436
440
timeout = true
437
441
}()
438
442
439
- // time.Sleep(time.Second / 4)
443
+ // wait for port to disappear
444
+ if wait_for_upload_port {
445
+ for {
446
+ ports , _ = serial .GetPortsList ()
447
+ log .Println (ports )
448
+ portname = findNewPortName (ports , before_reset_ports )
449
+ if portname != "" {
450
+ break
451
+ }
452
+ if timeout {
453
+ break
454
+ }
455
+ time .Sleep (time .Millisecond * 100 )
456
+ }
457
+ }
458
+
440
459
// wait for port to reappear
441
460
if wait_for_upload_port {
442
461
after_reset_ports , _ := serial .GetPortsList ()
443
462
log .Println (after_reset_ports )
444
- var ports []string
445
463
for {
446
464
ports , _ = serial .GetPortsList ()
447
465
log .Println (ports )
448
- time .Sleep (time .Millisecond * 200 )
449
466
portname = findNewPortName (ports , after_reset_ports )
450
467
if portname != "" {
451
468
break
452
469
}
453
470
if timeout {
454
471
break
455
472
}
473
+ time .Sleep (time .Millisecond * 100 )
456
474
}
457
475
}
458
476
0 commit comments