|
|
@@ -24,12 +24,15 @@ var ifce, _ = water.New(water.Config{
|
|
|
|
|
|
var RCV_B = 0
|
|
|
var TXT_B = 0
|
|
|
+var RCV_T = 0
|
|
|
+var TXT_T = 0
|
|
|
|
|
|
func main() {
|
|
|
//for stat only
|
|
|
go func() {
|
|
|
for {
|
|
|
- log.Println("Total reciving: ", RCV_B, ", Total transmitting: ", TXT_B)
|
|
|
+ log.Println("Total recived: ", ByteCountSI(RCV_B), ", Total transmited: ", ByteCountSI(TXT_B))
|
|
|
+ log.Println("Total recived: ", RCV_T, ", Total transmited: ", TXT_T)
|
|
|
time.Sleep(5 * time.Second)
|
|
|
}
|
|
|
}()
|
|
|
@@ -48,6 +51,7 @@ func main() {
|
|
|
// output message received
|
|
|
//fmt.Print("RECV<<", string(message))
|
|
|
RCV_B += len(string(message))
|
|
|
+ RCV_T++
|
|
|
data, err := hex.DecodeString(strings.ReplaceAll("\n", "", string(message)))
|
|
|
if err != nil {
|
|
|
//log.Println(err)
|
|
|
@@ -73,6 +77,7 @@ func main() {
|
|
|
frame = frame[:n]
|
|
|
//log.Println("TRSV>>", hex.EncodeToString(frame))
|
|
|
TXT_B += len(hex.EncodeToString(frame))
|
|
|
+ TXT_T++
|
|
|
/*
|
|
|
log.Printf("Dst: %s\n", frame.Destination())
|
|
|
log.Printf("Src: %s\n", frame.Source())
|
|
|
@@ -105,3 +110,18 @@ func setupIfce(ipNet net.IPNet, dev string) {
|
|
|
log.Println(err)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+//https://yourbasic.org/golang/formatting-byte-size-to-human-readable-format/
|
|
|
+func ByteCountSI(b int) string {
|
|
|
+ const unit = 1000
|
|
|
+ if b < unit {
|
|
|
+ return fmt.Sprintf("%d B", b)
|
|
|
+ }
|
|
|
+ div, exp := int(unit), 0
|
|
|
+ for n := b / unit; n >= unit; n /= unit {
|
|
|
+ div *= unit
|
|
|
+ exp++
|
|
|
+ }
|
|
|
+ return fmt.Sprintf("%.1f %cB",
|
|
|
+ float64(b)/float64(div), "kMGTPE"[exp])
|
|
|
+}
|