v0.2: improved serial i/o significantly
This commit is contained in:
18
main.go
18
main.go
@@ -1,14 +1,14 @@
|
||||
// Copyright 2021 Torsten Harenberg DL1THM. All rights reserved.
|
||||
|
||||
// A SCS PACTOR modem flashing utility written in Go. Should run anywhere Go runs.
|
||||
// A SCS PACTOR modem flashing utility written in Go. Should run everywhere Go runs.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"github.com/akamensky/argparse"
|
||||
"github.com/go-playground/log/v7"
|
||||
"github.com/go-playground/log/v7/handlers/console"
|
||||
"github.com/go-playground/log/v8"
|
||||
"go-scsupdate/firmware"
|
||||
"go-scsupdate/update"
|
||||
"go-scsupdate/usb"
|
||||
@@ -24,9 +24,9 @@ func main() {
|
||||
debug := parser.Flag("d", "debug", &argparse.Options{Required: false, Help: "(optional) enable debug logs"})
|
||||
dryrun := parser.Flag("n", "dryrun", &argparse.Options{Required: false, Help: "(optional) drying: if set, modem will detected but no firmware being written"})
|
||||
force := parser.Flag("", "force", &argparse.Options{Required: false, Help: "(optional) skip testing if firmware fits the modem. Useful if the modem is bricked and you need to put it into BIOS mode. Read the manual!"})
|
||||
sertimeout := parser.Int("t", "timeout", &argparse.Options{Required: false, Help: "(optional) Sets the read and write timeout. Default: 70. If you have handshake problems, enlarge this values, especially for older modems."})
|
||||
err := parser.Parse(os.Args)
|
||||
cLog := console.New(true)
|
||||
buff := new(bytes.Buffer)
|
||||
cLog := log.NewConsoleBuilder().WithWriter(buff).Build()
|
||||
if *debug {
|
||||
log.AddHandler(cLog, log.AllLevels...)
|
||||
log.Debug("DEBUG logging enabled")
|
||||
@@ -34,10 +34,6 @@ func main() {
|
||||
log.AddHandler(cLog, log.InfoLevel, log.ErrorLevel, log.AlertLevel, log.WarnLevel, log.NoticeLevel, log.PanicLevel)
|
||||
}
|
||||
|
||||
if *sertimeout == 0 { // if not set, set the write / read timeout to 70
|
||||
*sertimeout = 70
|
||||
}
|
||||
|
||||
if *serialDevice != "" && *brate == 0 {
|
||||
log.Fatal("ERROR: if you specify a device, you need to specify a baud rate as well. Cannot continue")
|
||||
}
|
||||
@@ -90,9 +86,9 @@ func main() {
|
||||
if *dryrun != true {
|
||||
var err error
|
||||
if *serialDevice != "" {
|
||||
err = update.Update(*serialDevice, baudrate, *sertimeout, *f, *force)
|
||||
err = update.Update(*serialDevice, baudrate, *f, *force)
|
||||
} else {
|
||||
err = update.Update(ports[0].Port, baudrate, *sertimeout, *f, *force)
|
||||
err = update.Update(ports[0].Port, baudrate, *f, *force)
|
||||
}
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
|
Reference in New Issue
Block a user