66 lines
1.4 KiB
C++
66 lines
1.4 KiB
C++
/*
|
|
* This file is part of the Owl Positioning System (OwlPS).
|
|
* OwlPS is a project of the University of Franche-Comté
|
|
* (Université de Franche-Comté), France.
|
|
*/
|
|
|
|
|
|
#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) ;
|
|
}
|