From 37997242c5a553425bb6378338ef3c9335471d9f Mon Sep 17 00:00:00 2001 From: Matteo Cypriani Date: Wed, 29 Jun 2011 11:37:33 +0200 Subject: [PATCH] [Positioning] Uppercase all MAC addresses on input --- .../src/accesspointsreadercsv.cc | 1 + owlps-positioning/src/inputcsv.cc | 2 ++ owlps-positioning/src/inputudpsocket.cc | 10 ++++--- owlps-positioning/src/wifidevice.hh | 29 +++++++++++++++---- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/owlps-positioning/src/accesspointsreadercsv.cc b/owlps-positioning/src/accesspointsreadercsv.cc index a33aa52..858b9a3 100644 --- a/owlps-positioning/src/accesspointsreadercsv.cc +++ b/owlps-positioning/src/accesspointsreadercsv.cc @@ -33,6 +33,7 @@ void AccessPointsReaderCSV::process_access_point_line() string mac ; if (! file.read_field(mac)) throw malformed_input_data("Cannot read access point MAC address!") ; + PosUtil::to_upper(mac) ; Point3D coord ; if (! file.read_point3d(coord)) diff --git a/owlps-positioning/src/inputcsv.cc b/owlps-positioning/src/inputcsv.cc index 99a67e1..3a3ce78 100644 --- a/owlps-positioning/src/inputcsv.cc +++ b/owlps-positioning/src/inputcsv.cc @@ -45,6 +45,7 @@ const Request& InputCSV::get_next_request() cerr << "InputCSV: cannot read mac_mobile.\n" ; return *current_request ; } + PosUtil::to_upper(mac_mobile) ; const Mobile &mobile = Stock::find_create_mobile(mac_mobile) ; current_request->set_mobile(&mobile) ; @@ -114,6 +115,7 @@ const Request& InputCSV::get_next_request() cerr << "InputCSV: cannot read mac_ap.\n" ; return *current_request ; } + PosUtil::to_upper(mac_ap) ; const AccessPoint &ap = Stock::find_create_ap(mac_ap) ; measurements[mac_ap].set_ap(&ap) ; measurements[mac_ap].add_ss(ss) ; diff --git a/owlps-positioning/src/inputudpsocket.cc b/owlps-positioning/src/inputudpsocket.cc index a40128e..8009308 100644 --- a/owlps-positioning/src/inputudpsocket.cc +++ b/owlps-positioning/src/inputudpsocket.cc @@ -107,8 +107,9 @@ const Request& InputUDPSocket::get_next_request() request.nb_info = ntohs(request.nb_info) ; // Mobile MAC - const char *const mac_mobile = - owl_mac_bytes_to_string(request.mobile_mac_addr_bytes) ; + string mac_mobile( + owl_mac_bytes_to_string(request.mobile_mac_addr_bytes)) ; + PosUtil::to_upper(mac_mobile) ; const Mobile &mobile = Stock::find_create_mobile(mac_mobile) ; current_request->set_mobile(&mobile) ; @@ -136,8 +137,9 @@ const Request& InputUDPSocket::get_next_request() current_request->clear() ; return *current_request ; } - const char *const mac_ap = - owl_mac_bytes_to_string(request_info.ap_mac_addr_bytes) ; + string mac_ap( + owl_mac_bytes_to_string(request_info.ap_mac_addr_bytes)) ; + PosUtil::to_upper(mac_ap) ; const AccessPoint &ap = Stock::find_create_ap(mac_ap) ; measurements[mac_ap].set_ap(&ap) ; measurements[mac_ap].add_ss(static_cast diff --git a/owlps-positioning/src/wifidevice.hh b/owlps-positioning/src/wifidevice.hh index 3ee0b41..6777fb5 100644 --- a/owlps-positioning/src/wifidevice.hh +++ b/owlps-positioning/src/wifidevice.hh @@ -1,6 +1,8 @@ #ifndef _OWLPS_POSITIONING_WIFIDEVICE_HH_ #define _OWLPS_POSITIONING_WIFIDEVICE_HH_ +#include "posutil.hh" + #include #include @@ -21,12 +23,10 @@ protected: float trx_power ; ///< Transmit power in dBm public: - WifiDevice(const std::string &_ip_addr = "", - const std::string &_mac_addr = "", - const float _antenna_gain = WIFIDEVICE_DEFAULT_ANTENNA_GAIN, - const float _trx_power = WIFIDEVICE_DEFAULT_TRX_POWER): - ip_addr(_ip_addr), mac_addr(_mac_addr), - antenna_gain(_antenna_gain), trx_power(_trx_power) {} + WifiDevice(const std::string &_ip_addr, + const std::string &_mac_addr, + const float _antenna_gain, + const float _trx_power) ; WifiDevice(const WifiDevice &source): ip_addr(source.ip_addr), mac_addr(source.mac_addr), @@ -63,6 +63,22 @@ public: +/* *** Constructors *** */ + + +inline WifiDevice:: +WifiDevice(const std::string &_ip_addr = "", + const std::string &_mac_addr = "", + const float _antenna_gain = WIFIDEVICE_DEFAULT_ANTENNA_GAIN, + const float _trx_power = WIFIDEVICE_DEFAULT_TRX_POWER): + ip_addr(_ip_addr), mac_addr(_mac_addr), + antenna_gain(_antenna_gain), trx_power(_trx_power) +{ + PosUtil::assert_uppercase(mac_addr) ; +} + + + /* *** Read accessors *** */ @@ -102,6 +118,7 @@ inline void WifiDevice::set_ip_addr(const std::string &_ip_addr) inline void WifiDevice::set_mac_addr(const std::string &_mac_addr) { + PosUtil::assert_uppercase(_mac_addr) ; mac_addr = _mac_addr ; }