115 lines
2.5 KiB
C++
115 lines
2.5 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.
|
|
*/
|
|
|
|
|
|
#ifndef _OWLPS_POSITIONING_MOBILE_HH_
|
|
#define _OWLPS_POSITIONING_MOBILE_HH_
|
|
|
|
class Request ;
|
|
|
|
#include "wifidevice.hh"
|
|
#include "resultlist.hh"
|
|
|
|
#include <ostream>
|
|
|
|
#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_
|