summaryrefslogtreecommitdiff
path: root/output.c
diff options
context:
space:
mode:
Diffstat (limited to 'output.c')
-rw-r--r--output.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/output.c b/output.c
index f0ff6ae..51d46dd 100644
--- a/output.c
+++ b/output.c
@@ -18,6 +18,10 @@
#include <curses.h>
#include "main.h"
+u_long delta(u_long, u_long *);
+u_long ani[60];
+u_long ano[60];
+
int out(struct ifdata *diff) {
extern struct ifdata ifdata;
WINDOW *scr;
@@ -29,7 +33,10 @@ int out(struct ifdata *diff) {
printw("BR: %d Mbps\n\n", ifdata.baudrate / 1000000);
printw("RX: %lu kBps\n", diff->ibytes / 1024);
- printw("TX: %lu kBps\n\n", diff->obytes / 1024);
+ printw("RX: %i kBpm\n\n", delta(diff->ibytes, ani) / 1024);
+
+ printw("TX: %lu kBps\n", diff->obytes / 1024);
+ printw("TX: %i kBpm\n\n", delta(diff->obytes, ano) / 1024);
printw("RX: %lu pps\n", diff->ipackets);
printw("TX: %lu pps\n\n", diff->opackets);
@@ -39,3 +46,17 @@ int out(struct ifdata *diff) {
refresh();
}
+
+u_long delta(u_long n, u_long *an) {
+ u_long nsum = 0;
+ int i, del = 60;
+ for (i=59; i>0; i--) {
+ an[i] = an[i-1];
+ nsum += an[i];
+ if (an[i] == 0)
+ del -= 1;
+ }
+ an[0] = n;
+ nsum += n;
+ return (nsum / del);
+}