main: improve/simplify auto-retry to locate MSD for UF2 and HEX flashing
Signed-off-by: deadprogram <ron@hybridgroup.com>
Этот коммит содержится в:
родитель
5e2a8024a3
коммит
bcbc241d81
1 изменённых файлов: 18 добавлений и 21 удалений
35
main.go
35
main.go
|
@ -509,23 +509,12 @@ func flashUF2UsingMSD(volume, tmppath string) error {
|
||||||
infoPath = path + "/INFO_UF2.TXT"
|
infoPath = path + "/INFO_UF2.TXT"
|
||||||
}
|
}
|
||||||
|
|
||||||
var d []string
|
d, err := locateDevice(volume, infoPath)
|
||||||
var err error
|
|
||||||
for i := 0; i < maxMSDRetries; i++ {
|
|
||||||
d, err = filepath.Glob(infoPath)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if d != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
time.Sleep(1 * time.Second)
|
|
||||||
}
|
|
||||||
if d == nil {
|
|
||||||
return errors.New("unable to locate UF2 device: " + volume)
|
|
||||||
}
|
|
||||||
|
|
||||||
return moveFile(tmppath, filepath.Dir(d[0])+"/flash.uf2")
|
return moveFile(tmppath, filepath.Dir(d)+"/flash.uf2")
|
||||||
}
|
}
|
||||||
|
|
||||||
func flashHexUsingMSD(volume, tmppath string) error {
|
func flashHexUsingMSD(volume, tmppath string) error {
|
||||||
|
@ -544,23 +533,31 @@ func flashHexUsingMSD(volume, tmppath string) error {
|
||||||
destPath = path + "/"
|
destPath = path + "/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
d, err := locateDevice(volume, destPath)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return moveFile(tmppath, d+"/flash.hex")
|
||||||
|
}
|
||||||
|
|
||||||
|
func locateDevice(volume, path string) (string, error) {
|
||||||
var d []string
|
var d []string
|
||||||
var err error
|
var err error
|
||||||
for i := 0; i < maxMSDRetries; i++ {
|
for i := 0; i < maxMSDRetries; i++ {
|
||||||
d, err = filepath.Glob(destPath)
|
d, err = filepath.Glob(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
if d != nil {
|
if d != nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(500 * time.Millisecond)
|
||||||
}
|
}
|
||||||
if d == nil {
|
if d == nil {
|
||||||
return errors.New("unable to locate device: " + volume)
|
return "", errors.New("unable to locate device: " + volume)
|
||||||
}
|
}
|
||||||
|
return d[0], nil
|
||||||
return moveFile(tmppath, d[0]+"/flash.hex")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func windowsFindUSBDrive(volume string) (string, error) {
|
func windowsFindUSBDrive(volume string) (string, error) {
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче