rcdiscover
discover.h
Go to the documentation of this file.
1
/*
2
* rcdiscover - the network discovery tool for Roboception devices
3
*
4
* Copyright (c) 2017 Roboception GmbH
5
* All rights reserved
6
*
7
* Author: Heiko Hirschmueller
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions are met:
11
*
12
* 1. Redistributions of source code must retain the above copyright notice,
13
* this list of conditions and the following disclaimer.
14
*
15
* 2. Redistributions in binary form must reproduce the above copyright notice,
16
* this list of conditions and the following disclaimer in the documentation
17
* and/or other materials provided with the distribution.
18
*
19
* 3. Neither the name of the copyright holder nor the names of its contributors
20
* may be used to endorse or promote products derived from this software without
21
* specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
27
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*/
35
36
#ifndef RCDISCOVER_DISCOVER
37
#define RCDISCOVER_DISCOVER
38
39
#include "
deviceinfo.h
"
40
41
#ifdef WIN32
42
#include "
socket_windows.h
"
43
#else
44
#include "
socket_linux.h
"
45
#endif
46
47
namespace
rcdiscover
48
{
49
50
class
Discover
51
{
52
public
:
53
#ifdef WIN32
54
typedef
SocketWindows
SocketType
;
55
#else
56
typedef
SocketLinux
SocketType
;
57
#endif
58
59
public
:
60
67
Discover
();
68
~Discover
();
69
74
void
broadcastRequest
();
75
88
bool
getResponse
(std::vector<DeviceInfo> &info,
int
timeout_per_socket=1000);
89
90
private
:
91
std::vector<SocketType>
sockets_
;
92
std::vector<std::tuple<std::uint8_t, std::uint8_t>>
req_nums_
;
93
};
94
95
}
96
97
#endif
rcdiscover::Discover::broadcastRequest
void broadcastRequest()
Broadcasts a discovery command request.
Definition:
discover.cc:85
socket_windows.h
rcdiscover::Discover::Discover
Discover()
Initializes a socket ready for broadcasting requests.
Definition:
discover.cc:72
rcdiscover::Discover::getResponse
bool getResponse(std::vector< DeviceInfo > &info, int timeout_per_socket=1000)
Returns a discovery response.
Definition:
discover.cc:107
rcdiscover::SocketWindows
Definition:
socket_windows.h:46
rcdiscover
Definition:
deviceinfo.cc:40
deviceinfo.h
rcdiscover::Discover::sockets_
std::vector< SocketType > sockets_
Definition:
discover.h:91
rcdiscover::Discover
Definition:
discover.h:50
socket_linux.h
rcdiscover::Discover::req_nums_
std::vector< std::tuple< std::uint8_t, std::uint8_t > > req_nums_
Definition:
discover.h:92
rcdiscover::Discover::SocketType
SocketLinux SocketType
Definition:
discover.h:56
rcdiscover::Discover::~Discover
~Discover()
Definition:
discover.cc:82
rcdiscover::SocketLinux
Socket implementation for Linux.
Definition:
socket_linux.h:51
rcdiscover
Author(s): Heiko Hirschmueller
, Raphael Schaller
autogenerated on Thu Aug 1 2024 02:55:56