first running version
This commit is contained in:
35
main.go
35
main.go
@@ -14,9 +14,10 @@ import (
|
||||
func main() {
|
||||
parser := argparse.NewParser("go-scsupdate", "Update Firmware of SCS PACTOR modems")
|
||||
serialDevice := parser.String("s", "serialDevice", &argparse.Options{Required: false, Help: "(optional) serial device the modem is attached to, e.g. /dev/ttyUSB0. If not set, go-scsupdate will search for SCS modems."})
|
||||
_ = parser.String("b", "baudrate", &argparse.Options{Required: false, Help: "(optional) sets the serial baudrate, e.g. 115200"})
|
||||
brate := parser.Int("b", "baudrate", &argparse.Options{Required: false, Help: "(optional, required when -s is set) sets the serial baudrate, e.g. 115200"})
|
||||
f := parser.String("f", "file", &argparse.Options{Required: true, Help: "(required) the file to flash, e.g. profi41r.pro"})
|
||||
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"})
|
||||
err := parser.Parse(os.Args)
|
||||
cLog := console.New(true)
|
||||
if *debug {
|
||||
@@ -25,6 +26,10 @@ func main() {
|
||||
} else {
|
||||
log.AddHandler(cLog, log.InfoLevel, log.ErrorLevel, log.AlertLevel, log.WarnLevel, log.NoticeLevel, log.PanicLevel)
|
||||
}
|
||||
|
||||
if *serialDevice != "" && *brate == 0 {
|
||||
log.Fatal("ERROR: if you specify a device, you need to specify a baud rate as well. Cannot continue")
|
||||
}
|
||||
if err != nil {
|
||||
log.Fatal(parser.Usage(err))
|
||||
os.Exit(1)
|
||||
@@ -41,10 +46,14 @@ func main() {
|
||||
msg += fmt.Sprintf("Port: %30s : Name: %s\n", p.Port, p.Name)
|
||||
}
|
||||
log.Fatal(msg)
|
||||
} else { // exactly one modem found, that's how we like it :-)
|
||||
log.Infof("Found %s modem at port %s. Default baud rate is: %d", ports[0].Name, ports[0].Port, ports[0].Baudrate)
|
||||
}
|
||||
} else {
|
||||
log.Fatal("Error while seaching SCS modems: ", err)
|
||||
}
|
||||
} else {
|
||||
log.Notice("Using given device! Will not check if firmware fits your modem!")
|
||||
}
|
||||
|
||||
if !firmware.FwExists(*f) {
|
||||
@@ -58,9 +67,27 @@ func main() {
|
||||
log.Debug("checks passed")
|
||||
}
|
||||
|
||||
err = update.Update("/dev/ttyUSB0", 829400, *f)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
baudrate := 0
|
||||
if *brate != 0 {
|
||||
baudrate = *brate
|
||||
log.Infof("Using given baudrate of %d", baudrate)
|
||||
} else {
|
||||
baudrate = ports[0].Baudrate
|
||||
log.Infof("Using default baudrate of %d", baudrate)
|
||||
}
|
||||
|
||||
if *dryrun != true {
|
||||
var err error
|
||||
if *serialDevice != "" {
|
||||
err = update.Update(*serialDevice, baudrate, *f)
|
||||
} else {
|
||||
err = update.Update(ports[0].Port, baudrate, *f)
|
||||
}
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
} else {
|
||||
log.Info("Dryrun requested, no firmware written!")
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user