59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
#include "accesspointsreadercsv.hh"
|
|
#include "point3d.hh"
|
|
#include "stock.hh"
|
|
#include "posexcept.hh"
|
|
|
|
using namespace std ;
|
|
|
|
|
|
|
|
/* *** Constructors *** */
|
|
|
|
|
|
AccessPointsReaderCSV::AccessPointsReaderCSV(const string &file_name):
|
|
file(file_name)
|
|
{
|
|
read_devices() ;
|
|
}
|
|
|
|
|
|
|
|
/* *** Operations *** */
|
|
|
|
|
|
void AccessPointsReaderCSV::read_devices()
|
|
{
|
|
while (file.next_line())
|
|
process_device_line() ;
|
|
}
|
|
|
|
|
|
void AccessPointsReaderCSV::process_device_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))
|
|
throw malformed_input_data("Cannot read access point coordinates!") ;
|
|
|
|
unsigned long frequency ;
|
|
if (! file.read_field(frequency))
|
|
throw malformed_input_data("Cannot read access point frequency!") ;
|
|
|
|
float gain ;
|
|
if (! file.read_field(gain))
|
|
throw malformed_input_data("Cannot read access point gain!") ;
|
|
|
|
float power ;
|
|
if (! file.read_field(power))
|
|
throw malformed_input_data("Cannot read access point power!") ;
|
|
|
|
string ip("") ;
|
|
|
|
AccessPoint device(coord, ip, mac, gain, power, frequency) ;
|
|
Stock::find_create_ap(device) ;
|
|
}
|