From 1e1b3e398d6b978a9c2bbd85d8f6b7aafbf72b2f Mon Sep 17 00:00:00 2001 From: benmeyer Date: Tue, 22 Oct 2002 20:41:01 +0000 Subject: info now works --- (limited to 'noncore/net/networksetup/wlan') diff --git a/noncore/net/networksetup/wlan/info.ui b/noncore/net/networksetup/wlan/info.ui index 4e85b1b..52d3a43 100644 --- a/noncore/net/networksetup/wlan/info.ui +++ b/noncore/net/networksetup/wlan/info.ui @@ -225,7 +225,7 @@ spacing 6 - + name Spacer2 @@ -300,6 +300,39 @@ Quality + + QLabel + + name + TextLabel4_2 + + + text + Rate + + + + QLabel + + name + rateLabel + + + sizePolicy + + 7 + 1 + + + + frameShape + Panel + + + frameShadow + Sunken + + diff --git a/noncore/net/networksetup/wlan/wextensions.cpp b/noncore/net/networksetup/wlan/wextensions.cpp index f45ebf2..ef4ba8f 100644 --- a/noncore/net/networksetup/wlan/wextensions.cpp +++ b/noncore/net/networksetup/wlan/wextensions.cpp @@ -10,8 +10,8 @@ #include #define PROCNETWIRELESS "/proc/net/wireless" -#define IW_LOWER 140 -#define IW_UPPER 200 +#define IW_LOWER 0 +#define IW_UPPER 256 /** * Constructor. Sets hasWirelessExtensions @@ -89,9 +89,22 @@ double WExtensions::frequency(){ return 0; if ( 0 == ioctl( fd, SIOCGIWFREQ, &iwr )) return (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000); - return 0;; + return 0; } +/*** + * Get the current rate that the card is transmiting at. + */ +double WExtensions::rate(){ + if(!hasWirelessExtensions) + return 0; + if(0 == ioctl(fd, SIOCGIWRATE, &iwr)){ + return ((double)iwr.u.bitrate.value)/1000000; + } + return 0; +} + + /** * @return QString the AccessPoint that the interface is connected to. */ @@ -110,9 +123,15 @@ QString WExtensions::ap(){ return ap; } else return QString(); - } +/** + * Get the stats for interfaces + * @param signal the signal strength of interface + * @param noise the noise level of the interface + * @param quality the quality level of the interface + * @return bool true if successfull + */ bool WExtensions::stats(int &signal, int &noise, int &quality){ // gather link quality from /proc/net/wireless if(!QFile::exists(PROCNETWIRELESS)) @@ -131,24 +150,22 @@ bool WExtensions::stats(int &signal, int &noise, int &quality){ wstream.readLine(); // because they only contain headers while(!wstream.atEnd()){ wstream >> name >> status >> quality >> c >> signal >> c >> noise; - if(name == interface){ + if(name == QString("%1:").arg(interface)){ if ( quality > 92 ) - #ifdef MDEBUG qDebug( "WIFIAPPLET: D'oh! Quality %d > estimated max!\n", quality ); - #endif if ( ( signal > IW_UPPER ) || ( signal < IW_LOWER ) ) - #ifdef MDEBUG qDebug( "WIFIAPPLET: Doh! Strength %d > estimated max!\n", signal ); - #endif if ( ( noise > IW_UPPER ) || ( noise < IW_LOWER ) ) - #ifdef MDEBUG qDebug( "WIFIAPPLET: Doh! Noise %d > estimated max!\n", noise ); - #endif + qDebug(QString("q:%1, s:%2, n:%3").arg(quality).arg(signal).arg(noise).latin1()); + signal = ( ( signal-IW_LOWER ) * 100 ) / IW_UPPER; + noise = ( ( noise-IW_LOWER ) * 100 ) / IW_UPPER; + quality = ( quality*100 ) / 92; return true; } } - qDebug("Card no longer present"); + qDebug("WExtensions::statsCard no longer present."); quality = -1; signal = IW_LOWER; noise = IW_LOWER; diff --git a/noncore/net/networksetup/wlan/wextensions.h b/noncore/net/networksetup/wlan/wextensions.h index 29997f5..1565eb5 100644 --- a/noncore/net/networksetup/wlan/wextensions.h +++ b/noncore/net/networksetup/wlan/wextensions.h @@ -16,6 +16,7 @@ public: QString essid(); QString mode(); double frequency(); + double rate(); QString ap(); bool stats( int &signal, int &noise, int &quality); diff --git a/noncore/net/networksetup/wlan/wlanmodule.cpp b/noncore/net/networksetup/wlan/wlanmodule.cpp index ab0b9a5..73e753c 100644 --- a/noncore/net/networksetup/wlan/wlanmodule.cpp +++ b/noncore/net/networksetup/wlan/wlanmodule.cpp @@ -83,7 +83,7 @@ QWidget *WLANModule::information(Interface *i, QTabWidget **tabWidget){ info->apLabel->setText(we.ap()); info->stationLabel->setText(we.station()); info->modeLabel->setText(we.mode()); - info->freqLabel->setText(QString("%1").arg(we.frequency())); + info->freqLabel->setText(QString("%1 GHz").arg(we.frequency())); int signal = 0; int noise = 0; int quality = 0; @@ -91,6 +91,7 @@ QWidget *WLANModule::information(Interface *i, QTabWidget **tabWidget){ info->signalProgressBar->setProgress(signal); info->noiseProgressBar->setProgress(noise); info->qualityProgressBar->setProgress(quality); + info->rateLabel->setText(QString("%1 Mb/s").arg(we.rate())); return info; } -- cgit v0.9.0.2