73 lines
1.8 KiB
C++
73 lines
1.8 KiB
C++
/*
|
|
* This file is part of the Owl Positioning System (OwlPS) project.
|
|
* It is subject to the copyright notice and license terms in the
|
|
* COPYRIGHT.t2t file found in the top-level directory of this
|
|
* distribution and at
|
|
* http://code.lm7.fr/p/owlps/source/tree/master/COPYRIGHT.t2t
|
|
* No part of the OwlPS Project, including this file, may be copied,
|
|
* modified, propagated, or distributed except according to the terms
|
|
* contained in the COPYRIGHT.t2t file; the COPYRIGHT.t2t file must be
|
|
* distributed along with this file, either separately or by replacing
|
|
* this notice by the COPYRIGHT.t2t file's contents.
|
|
*/
|
|
|
|
|
|
#include "capturepointsreadercsv.hh"
|
|
#include "point3d.hh"
|
|
#include "stock.hh"
|
|
#include "posexcept.hh"
|
|
|
|
using namespace std ;
|
|
|
|
|
|
|
|
/* *** Constructors *** */
|
|
|
|
|
|
CapturePointsReaderCSV::CapturePointsReaderCSV(const string &file_name):
|
|
file(file_name)
|
|
{
|
|
read_devices() ;
|
|
}
|
|
|
|
|
|
|
|
/* *** Operations *** */
|
|
|
|
|
|
void CapturePointsReaderCSV::read_devices()
|
|
{
|
|
while (file.next_line())
|
|
process_device_line() ;
|
|
}
|
|
|
|
|
|
void CapturePointsReaderCSV::process_device_line()
|
|
{
|
|
string mac ;
|
|
if (! file.read_field(mac))
|
|
throw malformed_input_data("Cannot read capture point MAC address!") ;
|
|
PosUtil::to_upper(mac) ;
|
|
|
|
Point3D coord ;
|
|
if (! file.read_point3d(coord))
|
|
throw malformed_input_data("Cannot read capture point coordinates!") ;
|
|
|
|
unsigned long frequency ;
|
|
if (! file.read_field(frequency))
|
|
throw malformed_input_data("Cannot read capture point frequency!") ;
|
|
|
|
float gain ;
|
|
if (! file.read_field(gain))
|
|
throw malformed_input_data("Cannot read capture point gain!") ;
|
|
|
|
float power ;
|
|
if (! file.read_field(power))
|
|
throw malformed_input_data("Cannot read capture point power!") ;
|
|
|
|
string ip("") ;
|
|
|
|
CapturePoint device(coord, ip, mac, gain, power, frequency) ;
|
|
Stock::find_create_cp(device) ;
|
|
}
|