ports/net/e169-stats (was: UMTS Huawei monitor)

Matthias Apitz guru at unixarea.de
Thu Feb 2 08:34:11 UTC 2012


El día Tuesday, January 31, 2012 a las 01:43:47PM +0100, Matthias Apitz escribió:

> At the end I decided to understand the source code. Btw: the device port
> /dev/cuaU0.n is hardcoded set to .2, while mine is .3 for the E1750;

Hello,

While digging into the source, I saw that I was wrong saying that; only
the default is hardcoded set to .2 and if one provides an argument on
the cmd line, this is used; don't know how I have overlooked that;
Edwin, please accept my honestly sorry for this;

I did some minor cosmetic changes (attached) for your consideration;

in any case, now I have it clear why in some place where I sit reading
with my netbook, the bandwidth and speed is so poor: the RSSI value
there is only 2-3 in that place; it is a relatively new building with a
lot of steel and concrete; the distance from the table to the windows is
around 5-6 meters; when I move to the window the RSSI value is ~14,
outside as well; in short words: your tool, Edwin, helped me a lot to
get a clear picture of my problem; thanks!

	matthias
-- 
Matthias Apitz
e <guru at unixarea.de> - w http://www.unixarea.de/
UNIX since V7 on PDP-11, UNIX on mainframe since ESER 1055 (IBM /370)
UNIX on x86 since SVR4.2 UnixWare 2.1.2, FreeBSD since 2.2.5
-------------- next part --------------
*** e169-stats.c.orig	2011-03-08 07:47:40.000000000 +0100
--- e169-stats.c	2012-01-31 22:14:32.000000000 +0100
***************
*** 120,126 ****
  		v3 /= 1000;
  	}
  
! 	mvwprintw(screen, Y - 1 - (v2 * yscale) / v1, 0, "%u%cB", v3, prefix);
  	return (v1);
  }
  
--- 120,128 ----
  		v3 /= 1000;
  	}
  
! 	wattrset(screen, colour[scbar[0].sb_mode]);
! 	mvwprintw(screen, Y - 1 - (v2 * yscale) / v1, 0, "%u%cbps", v3*8, prefix);
! 	wattrset(screen, colour[1]);
  	return (v1);
  }
  
***************
*** 153,160 ****
  
  	bytestosomething(rxtotal, srxtotal, sizeof(srxtotal));
  	bytestosomething(txtotal, stxtotal, sizeof(stxtotal));
! 	bytestosomething(rxnow, srxnow, sizeof(srxnow));
! 	bytestosomething(txnow, stxnow, sizeof(stxnow));
  
  	int X = getmaxx(screen);
  	int Y = getmaxy(screen);
--- 155,164 ----
  
  	bytestosomething(rxtotal, srxtotal, sizeof(srxtotal));
  	bytestosomething(txtotal, stxtotal, sizeof(stxtotal));
! 	// bytestosomething(rxnow, srxnow, sizeof(srxnow));
! 	// bytestosomething(txnow, stxnow, sizeof(stxnow));
! 	snprintf(srxnow, sizeof(srxnow), "%1.03f Mbps", (double)rxnow*8/1024/1024);
! 	snprintf(stxnow, sizeof(stxnow), "%1.03f Mbps", (double)txnow*8/1024/1024);
  
  	int X = getmaxx(screen);
  	int Y = getmaxy(screen);
***************
*** 176,183 ****
  		mvwprintw(screen, 3, 0, "RSSI:  %d dBm (%d)",
  			  2 * scbar[0].sb_ssi - 113, scbar[0].sb_ssi);
  	mvwprintw(screen, 4, 0, "Total: %s / %s", stxtotal, srxtotal);
  	mvwprintw(screen, 5, 0, "Now:   %s / %s", stxnow, srxnow);
! //	mvwprintw(screen, 6, 0, "Last:  %d / %d", scbar[0].sb_tx, scbar[0].sb_rx);
  
  	int i;
  	for (i = -9; i <= 0; i++) {
--- 180,189 ----
  		mvwprintw(screen, 3, 0, "RSSI:  %d dBm (%d)",
  			  2 * scbar[0].sb_ssi - 113, scbar[0].sb_ssi);
  	mvwprintw(screen, 4, 0, "Total: %s / %s", stxtotal, srxtotal);
+ 	wattrset(screen, colour[scbar[0].sb_mode]);
  	mvwprintw(screen, 5, 0, "Now:   %s / %s", stxnow, srxnow);
! 	wattrset(screen, colour[1]);
! //	mvwprintw(screen, 6, 0, "Last:  %d / %d", scbar[1].sb_tx, scbar[1].sb_rx);
  
  	int i;
  	for (i = -9; i <= 0; i++) {
***************
*** 216,230 ****
  			mvwaddch(screen, Y - 1 - (ssi / LENGTH(c)), X - i,
  				colour[scbar[i].sb_mode] | c[ssi % LENGTH(c)]);
  		}
  		if (scbar[i].sb_tx > 0) {
  			mvwaddch(screen,
  				 Y - 1 - (scbar[i].sb_tx * yscale) / vol,
  				 X - i, colour[scbar[i].sb_mode] | '^');
  		}
  		if (scbar[i].sb_rx > 0) {
  			mvwaddch(screen,
  				 Y - 1 - (scbar[i].sb_rx * yscale) / vol,
! 				 X - i, colour[scbar[i].sb_mode] | 'v');
  		}
  		if (scbar[i].sb_rx == 0 && scbar[i].sb_tx == 0) {
  			mvwaddch(screen, Y - 1,
--- 222,244 ----
  			mvwaddch(screen, Y - 1 - (ssi / LENGTH(c)), X - i,
  				colour[scbar[i].sb_mode] | c[ssi % LENGTH(c)]);
  		}
+ 		int y1, y2;
+ 		int v;
  		if (scbar[i].sb_tx > 0) {
+ 			y1 = Y - 1 - (scbar[i].sb_tx * yscale) / vol;
  			mvwaddch(screen,
  				 Y - 1 - (scbar[i].sb_tx * yscale) / vol,
  				 X - i, colour[scbar[i].sb_mode] | '^');
  		}
  		if (scbar[i].sb_rx > 0) {
+ 			y2 = Y - 1 - (scbar[i].sb_rx * yscale) / vol;
+ 			v = 'v';
+ 			/* 'v' and '^' don't fit into same place
+ 			 * if so we use 'x' */
+ 			if (y1 == y2) v = 'x';
  			mvwaddch(screen,
  				 Y - 1 - (scbar[i].sb_rx * yscale) / vol,
! 				 X - i, colour[scbar[i].sb_mode] | v);
  		}
  		if (scbar[i].sb_rx == 0 && scbar[i].sb_tx == 0) {
  			mvwaddch(screen, Y - 1,
***************
*** 282,288 ****
  	int i;
  	fd_set fdset;
  	int empty = 0;
! 	const char *dev = "/dev/cuaU0.2";
  	struct timeval timeout;
  	int isfile;
  
--- 296,302 ----
  	int i;
  	fd_set fdset;
  	int empty = 0;
! 	const char *dev = "/dev/cuaU0.3";
  	struct timeval timeout;
  	int isfile;
  


More information about the freebsd-net mailing list