/* * 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 * https://code.lm7.fr/mcy/owlps/src/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) ; }