package main import ( "flag" "fmt" ) func runOtaProgress(sp *serialPort, args []string) error { fs := flag.NewFlagSet("ota-progress", flag.ExitOnError) clientID := fs.Uint("client", 0, "slave client id (0 = all in session)") if err := fs.Parse(args); err != nil { return err } r, err := QueryOtaSlaveProgress(sp, uint32(*clientID)) if err != nil { return err } fmt.Printf("active=%v total=%d aggregate=%d slaves=%d\n", r.GetActive(), r.GetTotalBytes(), r.GetAggregateBytes(), r.GetSlaveCount()) for _, s := range r.GetSlaves() { fmt.Printf(" slave %d: %d / %d bytes status=%d error=%d\n", s.GetClientId(), s.GetBytesWritten(), s.GetTotalBytes(), s.GetStatus(), s.GetError()) } return nil }