Skip to content

Commit a58dca9

Browse files
committed
rework port disappear/reappear for 1200bps_touch
this should solve problems with slower (or Win based) systems
1 parent b84138f commit a58dca9

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

programmer.go

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,11 @@ func touch_port_1200bps(portname string, wait_for_upload_port bool) (string, err
413413
initialPortName := portname
414414
log.Println("Restarting in bootloader mode")
415415

416+
before_reset_ports, _ := serial.GetPortsList()
417+
log.Println(before_reset_ports)
418+
419+
var ports []string
420+
416421
mode := &serial.Mode{
417422
BaudRate: 1200,
418423
Vmin: 0,
@@ -428,31 +433,44 @@ func touch_port_1200bps(portname string, wait_for_upload_port bool) (string, err
428433
log.Println(err)
429434
}
430435
port.Close()
431-
time.Sleep(time.Second / 2.0)
432436

433437
timeout := false
434438
go func() {
435-
time.Sleep(2 * time.Second)
439+
time.Sleep(10 * time.Second)
436440
timeout = true
437441
}()
438442

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+
440459
// wait for port to reappear
441460
if wait_for_upload_port {
442461
after_reset_ports, _ := serial.GetPortsList()
443462
log.Println(after_reset_ports)
444-
var ports []string
445463
for {
446464
ports, _ = serial.GetPortsList()
447465
log.Println(ports)
448-
time.Sleep(time.Millisecond * 200)
449466
portname = findNewPortName(ports, after_reset_ports)
450467
if portname != "" {
451468
break
452469
}
453470
if timeout {
454471
break
455472
}
473+
time.Sleep(time.Millisecond * 100)
456474
}
457475
}
458476

0 commit comments

Comments
 (0)