Ignore:
Timestamp:
2015-03-08T22:20:34Z (10 years ago)
Author:
Jan Kolarik <kolarik@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
864762a
Parents:
4cb0148
Message:

Fixed PLL initialization value that blocked communication with external devices. Started implementing IEEE802.11 scanning and authentication functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/ieee80211/ieee80211_impl.c

    r4cb0148 r9e5a51c  
    4040#include <ieee80211_impl.h>
    4141
    42 static int ieee80211_freq_to_channel(uint16_t freq)
    43 {
    44         return (freq - IEEE80211_FIRST_FREQ) / IEEE80211_CHANNEL_GAP + 1;
    45 }
    46 
    47 static int ieee80211_probe_request(ieee80211_dev_t *ieee80211_dev)
    48 {
    49         size_t buffer_size = sizeof(ieee80211_header_t);
    50         void *buffer = malloc(buffer_size);
    51        
    52         /* TODO */
    53        
    54         ieee80211_freq_to_channel(ieee80211_dev->current_freq);
    55        
    56         ieee80211_dev->ops->tx_handler(ieee80211_dev, buffer, buffer_size);
    57        
    58         free(buffer);
    59        
    60         return EOK;
    61 }
    62 
    6342/**
    6443 * Default implementation of IEEE802.11 scan function.
     
    7049int ieee80211_scan_impl(ieee80211_dev_t *ieee80211_dev)
    7150{
    72         /* TODO */
    73         int rc = ieee80211_probe_request(ieee80211_dev);
    74         if(rc != EOK)
    75                 return rc;
     51        uint16_t orig_freq = ieee80211_dev->current_freq;
     52       
     53        for(uint16_t freq = IEEE80211_FIRST_FREQ;
     54                freq <= IEEE80211_MAX_FREQ;
     55                freq += IEEE80211_CHANNEL_GAP) {
     56                ieee80211_dev->ops->set_freq(ieee80211_dev, freq);
     57                ieee80211_probe_request(ieee80211_dev);
     58               
     59                /* Wait for probe responses. */
     60                usleep(100000);
     61        }
     62       
     63        ieee80211_dev->ops->set_freq(ieee80211_dev, orig_freq);
     64       
     65        /* TODO: Collect results. */
    7666       
    7767        return EOK;
Note: See TracChangeset for help on using the changeset viewer.