/* * 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. */ #ifndef _OWLPS_POSITIONING_MOBILE_HH_ #define _OWLPS_POSITIONING_MOBILE_HH_ class Request ; #include "wifidevice.hh" #include "resultlist.hh" #include #define MOBILE_DEFAULT_ANTENNA_GAIN 2 /// Represents a mobile [Wi-Fi device](@ref WifiDevice) that can be /// localised class Mobile: public WifiDevice { private: /// Last request received from this mobile Request *last_request ; /** @name Write accessors */ //@{ /// Updates last_request from last_results void update_last_request(void) ; //@} protected: /// Last results computed for this mobile ResultList last_results ; public: Mobile(const std::string &_ip_addr = "", const std::string &_mac_addr = "", const float _antenna_gain = MOBILE_DEFAULT_ANTENNA_GAIN, const float _trx_power = WIFIDEVICE_DEFAULT_TRX_POWER): WifiDevice(_ip_addr, _mac_addr, _antenna_gain, _trx_power), last_request(nullptr) {} Mobile(const WifiDevice &wd): WifiDevice(wd), last_request(nullptr) {} Mobile(const Mobile &m) ; ~Mobile(void) ; /** @name Read accessors */ //@{ const ResultList& get_last_results(void) const ; //@} /** @name Write accessors */ //@{ void set_last_results(const ResultList &_last_results) ; //@} /** @name Operators */ //@{ Mobile& operator=(const Mobile &m) ; bool operator==(const Mobile &m) const ; bool operator!=(const Mobile &m) const ; //@} /// Displays a Mobile friend std::ostream &operator<<(std::ostream &os, const Mobile &m) ; } ; /* *** Read accessors *** */ inline const ResultList& Mobile::get_last_results() const { return last_results ; } /* *** Write accessors *** */ inline void Mobile::set_last_results(const ResultList &_last_results) { last_results = _last_results ; update_last_request() ; } /* *** Operators *** */ inline bool Mobile::operator!=(const Mobile &m) const { return !(*this == m) ; } #endif // _OWLPS_POSITIONING_MOBILE_HH_