/* * 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 "mobilesreadercsv.hh" #include "point3d.hh" #include "stock.hh" #include "posexcept.hh" using namespace std ; /* *** Constructors *** */ MobilesReaderCSV::MobilesReaderCSV(const string &file_name): file(file_name) { read_devices() ; } /* *** Operations *** */ void MobilesReaderCSV::read_devices() { while (file.next_line()) process_device_line() ; } void MobilesReaderCSV::process_device_line() { string mac ; if (! file.read_field(mac)) throw malformed_input_data("Cannot read mobile's MAC address!") ; PosUtil::to_upper(mac) ; float gain ; if (! file.read_field(gain)) throw malformed_input_data("Cannot read mobile's gain!") ; float power ; if (! file.read_field(power)) throw malformed_input_data("Cannot read mobile's power!") ; string ip("") ; Mobile device(ip, mac, gain, power) ; Stock::find_create_mobile(device) ; }