owlps/owlps-positioning/src/posutil.cc

81 lines
1.7 KiB
C++
Raw Normal View History

#include "posutil.hh"
#include "posexcept.hh"
/* Wi-Fi channel frequencies in Hz */
#define CHANNEL_1 2412000000ul
#define CHANNEL_2 2417000000ul
#define CHANNEL_3 2422000000ul
#define CHANNEL_4 2427000000ul
#define CHANNEL_5 2432000000ul
#define CHANNEL_6 2437000000ul
#define CHANNEL_7 2442000000ul
#define CHANNEL_8 2447000000ul
#define CHANNEL_9 2452000000ul
#define CHANNEL_10 2457000000ul
#define CHANNEL_11 2462000000ul
#define CHANNEL_12 2467000000ul
#define CHANNEL_13 2472000000ul
#define CHANNEL_14 2477000000ul
/**
* @param channel A IEEE 802.11 channel or frequency in Hz.
* @return The frequency in Hz.
* @throw malformed_input_data if \em channel is not a valid channel or
* frequency value.
*/
unsigned long PosUtil::wifi_channel_to_hz(const unsigned long &channel)
{
switch (channel)
{
case 1:
case CHANNEL_1:
return CHANNEL_1 ;
case 2:
case CHANNEL_2:
return CHANNEL_2 ;
case 3:
case CHANNEL_3:
return CHANNEL_3 ;
case 4:
case CHANNEL_4:
return CHANNEL_4 ;
case 5:
case CHANNEL_5:
return CHANNEL_5 ;
case 6:
case CHANNEL_6:
return CHANNEL_6 ;
case 7:
case CHANNEL_7:
return CHANNEL_7 ;
case 8:
case CHANNEL_8:
return CHANNEL_8 ;
case 9:
case CHANNEL_9:
return CHANNEL_9 ;
case 10:
case CHANNEL_10:
return CHANNEL_10 ;
case 11:
case CHANNEL_11:
return CHANNEL_11 ;
case 12:
case CHANNEL_12:
return CHANNEL_12 ;
case 13:
case CHANNEL_13:
return CHANNEL_13 ;
case 14:
case CHANNEL_14:
return CHANNEL_14 ;
}
// Error: wrong channel value
throw bad_channel(channel) ;
}