src
xdacallback.h
Go to the documentation of this file.
1
2
// Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without modification,
6
// are permitted provided that the following conditions are met:
7
//
8
// 1. Redistributions of source code must retain the above copyright notice,
9
// this list of conditions, and the following disclaimer.
10
//
11
// 2. Redistributions in binary form must reproduce the above copyright notice,
12
// this list of conditions, and the following disclaimer in the documentation
13
// and/or other materials provided with the distribution.
14
//
15
// 3. Neither the names of the copyright holders nor the names of their contributors
16
// may be used to endorse or promote products derived from this software without
17
// specific prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22
// THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
// SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
24
// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
26
// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
28
// SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
29
// OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
30
// ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
31
//
32
33
#ifndef XDACALLBACK_H
34
#define XDACALLBACK_H
35
36
#include <
ros/ros.h
>
37
#include <
xscontroller/xscallback.h
>
38
#include <mutex>
39
#include <condition_variable>
40
#include <list>
41
42
struct
XsDataPacket
;
43
struct
XsDevice
;
44
45
typedef
std::pair<ros::Time, XsDataPacket>
RosXsDataPacket
;
46
47
class
XdaCallback
:
public
XsCallback
48
{
49
public
:
50
XdaCallback
(
size_t
maxBufferSize = 5);
51
virtual
~XdaCallback
()
throw
();
52
53
RosXsDataPacket
next
(
const
std::chrono::milliseconds &timeout);
54
55
protected
:
56
void
onLiveDataAvailable
(
XsDevice
*,
const
XsDataPacket
*packet)
override
;
57
58
private
:
59
std::mutex
m_mutex
;
60
std::condition_variable
m_condition
;
61
std::list<RosXsDataPacket>
m_buffer
;
62
size_t
m_maxBufferSize
;
63
};
64
65
#endif
XdaCallback::m_buffer
std::list< RosXsDataPacket > m_buffer
Definition:
xdacallback.h:61
ros.h
XdaCallback::m_mutex
std::mutex m_mutex
Definition:
xdacallback.h:59
XsDataPacket
Contains an interpreted data message. The class provides easy access to the contained data through it...
Definition:
xsdatapacket.h:301
XdaCallback::~XdaCallback
virtual ~XdaCallback()
Definition:
xdacallback.cpp:43
RosXsDataPacket
std::pair< ros::Time, XsDataPacket > RosXsDataPacket
Definition:
xdacallback.h:43
XdaCallback::next
RosXsDataPacket next(const std::chrono::milliseconds &timeout)
Definition:
xdacallback.cpp:48
XdaCallback::m_condition
std::condition_variable m_condition
Definition:
xdacallback.h:60
XdaCallback::m_maxBufferSize
size_t m_maxBufferSize
Definition:
xdacallback.h:62
xscallback.h
XdaCallback
Definition:
xdacallback.h:47
XdaCallback::onLiveDataAvailable
void onLiveDataAvailable(XsDevice *, const XsDataPacket *packet) override
Definition:
xdacallback.cpp:65
XdaCallback::XdaCallback
XdaCallback(size_t maxBufferSize=5)
Definition:
xdacallback.cpp:38
XsDevice
Definition:
xsdevice_def.h:164
xsens_mti_driver
Author(s):
autogenerated on Sun Sep 3 2023 02:43:20