Changeset 9381


Ignore:
Timestamp:
04/07/08 23:58:47 (5 years ago)
Author:
BrainSlayer
Message:

antenna selection for ns2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/router/services/networking/madwifi.c

    r9380 r9381  
    201201 
    202202static void 
    203 setdistance (char *device, int distance,int chanbw) 
     203setdistance (char *device, int distance, int chanbw) 
    204204{ 
    205205 
     
    766766{ 
    767767 
    768    char *next; 
    769    struct iwreq iwr; 
    770    char scanlist[32]; 
     768  char *next; 
     769  struct iwreq iwr; 
     770  char scanlist[32]; 
    771771  unsigned short list[1024]; 
    772    sprintf (scanlist, "%s_scanlist", dev); 
    773    char *sl = default_get (scanlist, "default"); 
     772  sprintf (scanlist, "%s_scanlist", dev); 
     773  char *sl = default_get (scanlist, "default"); 
    774774  memset (list, 0, 1024 * sizeof (unsigned short)); 
    775    int c = 0; 
    776    if (strlen (sl) > 0 && strcmp (sl, "default")) 
    777      { 
    778        foreach (var, sl, next) 
    779        { 
     775  int c = 0; 
     776  if (strlen (sl) > 0 && strcmp (sl, "default")) 
     777    { 
     778      foreach (var, sl, next) 
     779      { 
    780780        int ch = atoi (var); 
    781781        if (ch < 1000 || ch > 7000) 
     
    788788//      fprintf(stderr,"scanlist %d\n",chan); 
    789789        list[c++] = chan; 
    790        } 
    791      } 
    792    else 
     790      } 
     791    } 
     792  else 
    793793    c = 1; 
    794794 
    795    memset (&iwr, 0, sizeof (struct iwreq)); 
    796    strncpy (iwr.ifr_name, wif, IFNAMSIZ); 
    797    { 
     795  memset (&iwr, 0, sizeof (struct iwreq)); 
     796  strncpy (iwr.ifr_name, wif, IFNAMSIZ); 
     797  { 
    798798    /* 
    799799     * Argument data too big for inline transfer; setup a 
     
    803803    iwr.u.data.pointer = &list[0]; 
    804804    iwr.u.data.length = 1024 * sizeof (unsigned short); 
    805    } 
     805  } 
    806806 
    807807  int r = ioctl (getsocket (), SIOCSSCANLIST, &iwr); 
     
    810810      fprintf (stderr, "error while setting scanlist on %s, %d\n", wif, r); 
    811811    } 
    812  } 
     812} 
    813813#else 
    814814static void 
     
    823823  char *sl = default_get (scanlist, "default"); 
    824824  int c = 0; 
    825   eval("iwpriv",dev,"setscanlist","-ALL"); 
     825  eval ("iwpriv", dev, "setscanlist", "-ALL"); 
    826826  if (strlen (sl) > 0 && strcmp (sl, "default")) 
    827827    { 
    828828      foreach (var, sl, next) 
    829829      { 
    830         sprintf(list,"+%s",var); 
    831         eval("iwpriv",dev,"setscanlist",list); 
     830        sprintf (list, "+%s", var); 
     831        eval ("iwpriv", dev, "setscanlist", list); 
    832832      } 
    833833    } 
    834834  else 
    835   { 
    836         eval("iwpriv",dev,"setscanlist","+ALL");     
    837   } 
     835    { 
     836      eval ("iwpriv", dev, "setscanlist", "+ALL"); 
     837    } 
    838838} 
    839839#endif 
     
    12301230#else 
    12311231          eval ("iwpriv", dev, "wds_add", hwaddr); 
    1232 //        eval ("iwpriv", dev, "wds", "1"); 
     1232//        eval ("iwpriv", dev, "wds", "1"); 
    12331233#endif 
    12341234        } 
     
    12911291    } 
    12921292#else 
    1293     set_scanlist(dev,wif); 
     1293  set_scanlist (dev, wif); 
    12941294  if (strcmp (m, "sta") && strcmp (m, "wdssta") && strcmp (m, "wet")) 
    12951295    { 
     
    13061306        } 
    13071307    } 
    1308 #endif     
     1308#endif 
    13091309 
    13101310 
     
    13241324    { 
    13251325      setsysctrl (wif, "dynack_count", 0); 
    1326       char *chanbw = nvram_nget("%s_channelbw",dev); 
    1327       setdistance (wif, distance,atoi(chanbw)); //sets the receiver sensitivity 
     1326      char *chanbw = nvram_nget ("%s_channelbw", dev); 
     1327      setdistance (wif, distance, atoi (chanbw));       //sets the receiver sensitivity 
    13281328    } 
    13291329  else 
    13301330    setsysctrl (wif, "dynack_count", 20); 
     1331 
     1332#ifdef HAVE_NS5 
     1333  char *gpio = "1"; 
     1334#endif 
     1335#ifdef HAVE_NS2 
     1336  char *gpio = "7"; 
     1337#endif 
     1338 
    13311339#if defined(HAVE_NS2) || defined(HAVE_NS5) 
    13321340  int tx = atoi (default_get (txantenna, "0")); 
    13331341 
    13341342  setsysctrl (wif, "diversity", 0); 
    1335 switch(tx) 
    1336 { 
    1337 case 0: 
    1338   setsysctrl (wif, "rxantenna", 2); 
    1339   setsysctrl (wif, "txantenna", 2); 
    1340   eval("gpio","enable","1"); 
    1341 break; 
    1342 case 1: 
    1343   setsysctrl (wif, "rxantenna", 1); 
    1344   setsysctrl (wif, "txantenna", 1); 
    1345   eval("gpio","enable","1"); 
    1346 break; 
    1347 case 2: 
    1348   setsysctrl (wif, "rxantenna", 1); 
    1349   setsysctrl (wif, "txantenna", 1); 
    1350   eval("gpio","disable","1"); 
    1351 break; 
    1352 } 
     1343  switch (tx) 
     1344    { 
     1345    case 0: 
     1346      setsysctrl (wif, "rxantenna", 2); 
     1347      setsysctrl (wif, "txantenna", 2); 
     1348      eval ("gpio", "enable", gpio); 
     1349      break; 
     1350    case 1: 
     1351      setsysctrl (wif, "rxantenna", 1); 
     1352      setsysctrl (wif, "txantenna", 1); 
     1353      eval ("gpio", "enable", gpio); 
     1354      break; 
     1355    case 2: 
     1356      setsysctrl (wif, "rxantenna", 1); 
     1357      setsysctrl (wif, "txantenna", 1); 
     1358      eval ("gpio", "disable", gpio); 
     1359      break; 
     1360    } 
    13531361#else 
    13541362 
     
    13741382      m = default_get (mode, "ap"); 
    13751383#ifndef OLD_MADWIFI 
    1376         set_scanlist (dev, wif); 
     1384      set_scanlist (dev, wif); 
    13771385#endif 
    13781386 
     
    14021410        { 
    14031411#ifdef OLD_MADWIFI 
    1404         set_scanlist (dev, wif); 
     1412          set_scanlist (dev, wif); 
    14051413#endif 
    14061414        } 
Note: See TracChangeset for help on using the changeset viewer.