DESERT 3.5.1
Loading...
Searching...
No Matches
uwPosBasedRtROV.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 UW_POS_BASED_RT_ROV_H
40#define UW_POS_BASED_RT_ROV_H
41
42#define DROP_NEXT_HOP_NOT_FOUND \
43 "NNF"
44#define DROP_IP_NOT_SET \
45 "INS"
46
47#define pi (4 * atan(1.0))
48
49#include <module.h>
50#include <utility>
51#include "uwip-module.h"
52#include "uwPosBasedRt-hdr.h"
53#include "node-core.h"
54#include "uwsmposition.h"
55#include <map>
56#include <list>
57#include <tclcl.h>
58
59class UwPosBasedRtROV : public Module
60{
61public:
66
70 virtual ~UwPosBasedRtROV();
71
72protected:
83 virtual int command(int, const char *const *);
84
90 virtual void recv(Packet* p);
91
97 virtual void initPkt(Packet* p);
98
99
105 virtual uint8_t findNextHop(const Packet* p);
106
112 virtual void setMaxTxRange(double newRange);
113
114private:
115
122 virtual double nodesDistance(Position& p1, Position& p2);
123
124 uint8_t ipAddr;
125
126 double maxTxRange;
132 typedef std::pair<Position,uint8_t> pair_posIP;
133 std::list<pair_posIP> list_posIP;
136 int debug_;
138};
139
140#endif //UW_POS_BASED_RT_H
virtual void initPkt(Packet *p)
Initialize field of hdr_uwpos_based_rt
double maxTxRange
Maximum transmission range, in meters, for this node.
std::pair< Position, uint8_t > pair_posIP
UWSMPosition * ROV_pos
Pointer to ROV position.
virtual uint8_t findNextHop(const Packet *p)
Find next hop of a packet passed as input.
virtual double nodesDistance(Position &p1, Position &p2)
Compute absoulute distance between 2 nodes.
virtual int command(int, const char *const *)
TCL command interpreter.
virtual void setMaxTxRange(double newRange)
Set maximum transmission range.
int debug_
Flag to enable or disable dirrefent levels of debug.
virtual ~UwPosBasedRtROV()
Destructor of UwPosBasedRtROV class.
UwPosBasedRtROV()
Constructor of UwPosBasedRtROV class.
std::list< pair_posIP > list_posIP
List with position of all the other nodes with its IP.
virtual void recv(Packet *p)
Performs the reception of packets from upper and lower layers.
Provides the header description for UwPosBasedRt packets.
Provides the UWIP packets header description. Definition of the class that define the network layer.
Provides the definition of the class UWSMPosition.