From e0c2a99c04ce42d7ddd2f7011c17a6fe02bab30e Mon Sep 17 00:00:00 2001 From: Nonoo Date: Thu, 29 Oct 2020 10:15:37 +0100 Subject: [PATCH] Use colors for retransmit/lost packet count display --- statuslog.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/statuslog.go b/statuslog.go index 50a703e..3e898c4 100644 --- a/statuslog.go +++ b/statuslog.go @@ -29,6 +29,9 @@ type statusLogStruct struct { mode string filter string + retransmitsColor *color.Color + lostColor *color.Color + startTime time.Time rttLatency time.Duration } @@ -110,10 +113,19 @@ func (s *statusLogStruct) update() { s.line1 = fmt.Sprint("state ", s.stateStr, " freq: ", fmt.Sprintf("%f", s.frequency/1000000), modeStr, filterStr) up, down, lost, retransmits := netstat.get() + lostStr := "0" + if lost > 0 { + lostStr = s.lostColor.Sprint(" ", lost, " ") + } + retransmitsStr := "0" + if retransmits > 0 { + retransmitsStr = s.retransmitsColor.Sprint(" ", retransmits, " ") + } + s.line2 = fmt.Sprint("up ", time.Since(s.startTime).Round(time.Second), " rtt ", s.rttLatency.Milliseconds(), "ms up ", netstat.formatByteCount(up), "/s down ", - netstat.formatByteCount(down), "/s retx ", retransmits, " /1m lost ", lost, " /1m\r") + netstat.formatByteCount(down), "/s retx ", retransmitsStr, "/1m lost ", lostStr, "/1m\r") if s.isRealtimeInternal() { t := time.Now().Format("2006-01-02T15:04:05.000Z0700") @@ -172,6 +184,11 @@ func (s *statusLogStruct) startPeriodicPrint() { s.state.txStr = c.Sprint(" TX ") s.state.tuneStr = c.Sprint(" TUNE ") + s.retransmitsColor = color.New(color.FgHiWhite) + s.retransmitsColor.Add(color.BgYellow) + s.lostColor = color.New(color.FgHiWhite) + s.lostColor.Add(color.BgRed) + s.startTime = time.Now() s.stopChan = make(chan bool) s.stopFinishedChan = make(chan bool)