Changeset 2426


Ignore:
Timestamp:
2005-11-11T19:17:27+01:00 (11 years ago)
Author:
nbd
Message:

improve signal level/quality display

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/openwrt/target/linux/package/wlcompat/wlcompat.c

    r2421 r2426  
    140140 
    141141        range = (struct iw_range *) extra; 
     142        bzero(extra, sizeof(struct iw_range)); 
    142143 
    143144        range->we_version_compiled = WIRELESS_EXT; 
     
    170171 
    171172        range->max_qual.qual = 0; 
    172         range->max_qual.level = 100; 
    173         range->max_qual.noise = 100; 
     173        range->max_qual.level = 0; 
     174        range->max_qual.noise = 0; 
    174175         
    175176        range->min_rts = 0; 
     
    226227        wl_bss_info_t *bss_info = (wl_bss_info_t *) buf; 
    227228        get_pktcnt_t pkt; 
    228         int rssi, noise, ap; 
     229        unsigned int rssi, noise, ap; 
    229230         
    230231        memset(&wstats, 0, sizeof(wstats)); 
     
    235236        wl_ioctl(dev, WLC_GET_PKTCNTS, &pkt, sizeof(pkt)); 
    236237 
    237         wl_ioctl(dev, WLC_GET_AP, &ap, sizeof(ap)); 
    238         if (!ap) { 
     238        rssi = 0; 
     239        if ((wl_ioctl(dev, WLC_GET_AP, &ap, sizeof(ap)) < 0) || ap) { 
     240                if (wl_ioctl(dev, WLC_GET_PHY_NOISE, &noise, sizeof(noise)) < 0) 
     241                        noise = 0; 
     242        } else { 
    239243                // somehow the structure doesn't fit here 
    240244                rssi = buf[82]; 
    241245                noise = buf[84]; 
    242         } else { 
    243                 noise = 0; 
    244                 rssi = 0; 
    245246        } 
     247        rssi = (rssi == 0 ? 1 : rssi); 
     248        wstats.qual.updated = 0x10; 
     249        if (rssi <= 1)  
     250                wstats.qual.updated |= 0x20; 
     251        if (noise <= 1) 
     252                wstats.qual.updated |= 0x40; 
     253 
     254        if ((wstats.qual.updated & 0x60) == 0x60) 
     255                return NULL; 
    246256 
    247257        wstats.qual.level = rssi; 
     
    741751#define WLCOMPAT_SET_TXPWR_LIMIT        SIOCIWFIRSTPRIV + 2 
    742752#define WLCOMPAT_GET_TXPWR_LIMIT        SIOCIWFIRSTPRIV + 3 
    743 #define WLCOMPAT_SET_ANTDIV             SIOCIWFIRSTPRIV + 4 
    744 #define WLCOMPAT_GET_ANTDIV             SIOCIWFIRSTPRIV + 5 
    745 #define WLCOMPAT_SET_TXANT              SIOCIWFIRSTPRIV + 6 
    746 #define WLCOMPAT_GET_TXANT              SIOCIWFIRSTPRIV + 7 
     753#define WLCOMPAT_SET_ANTDIV                     SIOCIWFIRSTPRIV + 4 
     754#define WLCOMPAT_GET_ANTDIV                     SIOCIWFIRSTPRIV + 5 
     755#define WLCOMPAT_SET_TXANT                      SIOCIWFIRSTPRIV + 6 
     756#define WLCOMPAT_GET_TXANT                      SIOCIWFIRSTPRIV + 7 
    747757#define WLCOMPAT_SET_BSS_FORCE          SIOCIWFIRSTPRIV + 8 
    748758#define WLCOMPAT_GET_BSS_FORCE          SIOCIWFIRSTPRIV + 9 
Note: See TracChangeset for help on using the changeset viewer.