DESERT 4.0.0
uwahoi-phy.h
Go to the documentation of this file.
1//
2// Copyright (c) 2017 Regents of the SIGNET lab, University of Padova.
3// All rights reserved.
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions
7// are met:
8// 1. Redistributions of source code must retain the above copyright
9// notice, this list of conditions and the following disclaimer.
10// 2. Redistributions in binary form must reproduce the above copyright
11// notice, this list of conditions and the following disclaimer in the
12// documentation and/or other materials provided with the distribution.
13// 3. Neither the name of the University of Padova (SIGNET lab) nor the
14// names of its contributors may be used to endorse or promote products
15// derived from this software without specific prior written permission.
16//
17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28//
29
39#ifndef UWAHOIPHY_H
40#define UWAHOIPHY_H
41
42#include "uwphysical.h"
43#include <iostream>
44#include <map>
45#include <math.h>
46
47typedef ::std::map<double, double> PdrLut;
48typedef PdrLut::iterator PdrLutIt;
49
51{
52
53public:
57 UwAhoiPhy();
58
62 virtual ~UwAhoiPhy();
63
74 virtual int command(int, const char *const *);
75
76protected:
83 virtual void endRx(Packet *p);
84
95 virtual double getPER(double snr, Packet *);
96
97 virtual void initializeLUT();
98
99private:
106 virtual double getDistance(Packet *);
107
113 virtual double matchDistancePDR(double distance);
114
120 virtual double matchSIR_PDR(double sir);
121
129 virtual double linearInterpolator(
130 double x, double x1, double y1, double x2, double y2);
131
132 string pdr_file_name_; // LUT file name
133 string sir_file_name_; // LUT file name
134 char pdr_token_separator_; // LUT token separator
135 PdrLut range2pdr_; // LUT pdr vs distance
136 PdrLut sir2pdr_; // LUT pdr vs sir
138};
139
140#endif /* UwAhoiPhy_H */
Definition uwphysical.h:100
Definition uwahoi-phy.h:51
virtual int command(int, const char *const *)
Definition uwahoi-phy.cpp:82
virtual double matchSIR_PDR(double sir)
Definition uwahoi-phy.cpp:313
virtual double matchDistancePDR(double distance)
Definition uwahoi-phy.cpp:289
virtual void endRx(Packet *p)
Definition uwahoi-phy.cpp:175
PdrLut sir2pdr_
Definition uwahoi-phy.h:136
virtual double getPER(double snr, Packet *)
Definition uwahoi-phy.cpp:264
string pdr_file_name_
Definition uwahoi-phy.h:132
string sir_file_name_
Definition uwahoi-phy.h:133
UwAhoiPhy()
Definition uwahoi-phy.cpp:65
virtual double linearInterpolator(double x, double x1, double y1, double x2, double y2)
Definition uwahoi-phy.cpp:338
virtual double getDistance(Packet *)
Definition uwahoi-phy.cpp:275
char pdr_token_separator_
Definition uwahoi-phy.h:134
bool initLUT_
Definition uwahoi-phy.h:137
PdrLut range2pdr_
Definition uwahoi-phy.h:135
virtual ~UwAhoiPhy()
Definition uwahoi-phy.cpp:77
virtual void initializeLUT()
Definition uwahoi-phy.cpp:120
PdrLut::iterator PdrLutIt
Definition uwahoi-phy.h:48
::std::map< double, double > PdrLut
Definition uwahoi-phy.h:47
Definition of UwPhysical class.