DESERT 4.0.0
uwsc-clmsg.h
Go to the documentation of this file.
1//
2// Copyright (c) 2024 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
39#ifndef UWSC_CLMSG_H
40#define UWSC_CLMSG_H
41
42#include <clmessage.h>
43#include <node-core.h>
44
45#define CLMSG_MC2CTR_VERBOSITY 3
46#define CLMSG_CTR2MC_VERBOSITY 3
47#define CLMSG_TRACK2MC_VERBOSITY 3
49extern ClMessage_t CLMSG_MC2CTR_SETPOS;
50extern ClMessage_t CLMSG_MC2CTR_SETSTATUS;
51extern ClMessage_t CLMSG_CTR2MC_GETPOS;
52extern ClMessage_t CLMSG_TRACK2MC_TRACKPOS;
53extern ClMessage_t CLMSG_TRACK2MC_GETSTATUS;
54
55class ClSAP;
56
61class ClMsgCtr2McPosition : public ClMessage
62{
63public:
68 ClMsgCtr2McPosition(int dest_id);
69
73 virtual ~ClMsgCtr2McPosition() = default;
74
80
85 void setRovPosition(Position *position);
86
91 Position *getRovPosition() const;
92
93private:
94 Position *rov_position;
95};
96
101class ClMsgMc2CtrPosition : public ClMessage
102{
103public:
108 ClMsgMc2CtrPosition(int dest_id);
109
113 virtual ~ClMsgMc2CtrPosition() = default;
114
120
125 void setRovDestination(Position *destination);
126
131 Position *getRovDestination() const;
132
133private:
134 Position *rov_destination;
135};
136
141class ClMsgMc2CtrStatus : public ClMessage
142{
143public:
148 ClMsgMc2CtrStatus(int dest_id);
149
153 virtual ~ClMsgMc2CtrStatus() = default;
154
160
165 void setRovStatus(bool detect);
166
171 bool getRovStatus() const;
172
173private:
176};
177
182class ClMsgTrack2McPosition : public ClMessage
183{
184public:
189 ClMsgTrack2McPosition(int dest_id);
190
194 virtual ~ClMsgTrack2McPosition() = default;
195
201
206 void setTrackPosition(Position *position);
207
212 Position *getTrackPosition() const;
213
214private:
215 Position *track_position;
217};
218
223class ClMsgTrack2McStatus : public ClMessage
224{
225public:
230 ClMsgTrack2McStatus(int dest_id);
231
235 virtual ~ClMsgTrack2McStatus() = default;
236
242
247 void setMineStatus(bool remove);
248
253 bool getMineStatus() const;
254
255private:
258};
259
260#endif /* UWSC_CLMSG_H */
Definition uwsc-clmsg.h:62
virtual ~ClMsgCtr2McPosition()=default
ClMsgCtr2McPosition * copy()
Definition uwsc-clmsg.cc:47
Position * rov_position
Definition uwsc-clmsg.h:94
void setRovPosition(Position *position)
Definition uwsc-clmsg.cc:53
Position * getRovPosition() const
Definition uwsc-clmsg.cc:59
Definition uwsc-clmsg.h:102
virtual ~ClMsgMc2CtrPosition()=default
Position * getRovDestination() const
Definition uwsc-clmsg.cc:85
void setRovDestination(Position *destination)
Definition uwsc-clmsg.cc:79
Position * rov_destination
Definition uwsc-clmsg.h:134
ClMsgMc2CtrPosition * copy()
Definition uwsc-clmsg.cc:73
Definition uwsc-clmsg.h:142
virtual ~ClMsgMc2CtrStatus()=default
bool rov_status
Definition uwsc-clmsg.h:174
ClMsgMc2CtrStatus * copy()
Definition uwsc-clmsg.cc:100
bool getRovStatus() const
Definition uwsc-clmsg.cc:112
void setRovStatus(bool detect)
Definition uwsc-clmsg.cc:106
Definition uwsc-clmsg.h:183
Position * track_position
Definition uwsc-clmsg.h:215
ClMsgTrack2McPosition * copy()
Definition uwsc-clmsg.cc:127
virtual ~ClMsgTrack2McPosition()=default
void setTrackPosition(Position *position)
Definition uwsc-clmsg.cc:133
Position * getTrackPosition() const
Definition uwsc-clmsg.cc:139
Definition uwsc-clmsg.h:224
bool getMineStatus() const
Definition uwsc-clmsg.cc:166
virtual ~ClMsgTrack2McStatus()=default
void setMineStatus(bool remove)
Definition uwsc-clmsg.cc:160
ClMsgTrack2McStatus * copy()
Definition uwsc-clmsg.cc:154
bool mine_status
Definition uwsc-clmsg.h:256
ClMessage_t CLMSG_MC2CTR_SETPOS
Definition initlib.cc:51
ClMessage_t CLMSG_TRACK2MC_TRACKPOS
Definition initlib.cc:54
ClMessage_t CLMSG_CTR2MC_GETPOS
Definition initlib.cc:53
ClMessage_t CLMSG_TRACK2MC_GETSTATUS
Definition initlib.cc:55
ClMessage_t CLMSG_MC2CTR_SETSTATUS
Definition initlib.cc:52