Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
include
rosflight
mavrosflight
write_buffer.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2017 Daniel Koch and James Jackson, BYU MAGICC Lab.
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 are met:
7
*
8
* * Redistributions of source code must retain the above copyright notice, this
9
* list of conditions and the following disclaimer.
10
*
11
* * 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
* * Neither the name of the copyright holder nor the names of its
16
* contributors may be used to endorse or promote products derived from
17
* this software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
30
*/
31
37
#ifndef MAVROSFLIGHT_WRITE_BUFFER_H
38
#define MAVROSFLIGHT_WRITE_BUFFER_H
39
40
#include <
rosflight/mavrosflight/mavlink_bridge.h
>
41
42
#include <cstdint>
43
44
namespace
mavrosflight
45
{
49
struct
WriteBuffer
50
{
51
uint8_t
data
[
MAVLINK_MAX_PACKET_LEN
];
52
size_t
len
;
53
size_t
pos
;
54
55
WriteBuffer
() : len(0), pos(0) {}
56
57
WriteBuffer
(
const
uint8_t* buf, uint16_t len) : len(len), pos(0)
58
{
59
assert(len <=
MAVLINK_MAX_PACKET_LEN
);
60
memcpy(data, buf, len);
61
}
62
63
uint8_t*
dpos
() {
return
data +
pos
; }
64
65
size_t
nbytes
() {
return
len -
pos
; }
66
};
67
68
}
// namespace mavrosflight
69
70
#endif // MAVROSFLIGHT_WRITE_BUFFER_H
mavrosflight::WriteBuffer::WriteBuffer
WriteBuffer()
Definition:
write_buffer.h:55
mavrosflight
Definition:
default_logger.h:46
mavlink_bridge.h
mavrosflight::WriteBuffer::len
size_t len
Definition:
write_buffer.h:52
MAVLINK_MAX_PACKET_LEN
#define MAVLINK_MAX_PACKET_LEN
Maximum packet length.
Definition:
mavlink_types.h:28
mavrosflight::WriteBuffer::WriteBuffer
WriteBuffer(const uint8_t *buf, uint16_t len)
Definition:
write_buffer.h:57
mavrosflight::WriteBuffer::nbytes
size_t nbytes()
Definition:
write_buffer.h:65
mavrosflight::WriteBuffer::dpos
uint8_t * dpos()
Definition:
write_buffer.h:63
mavrosflight::WriteBuffer
Struct for buffering the contents of a mavlink message.
Definition:
write_buffer.h:49
mavrosflight::WriteBuffer::pos
size_t pos
Definition:
write_buffer.h:53
mavrosflight::WriteBuffer::data
uint8_t data[MAVLINK_MAX_PACKET_LEN]
Definition:
write_buffer.h:51
rosflight
Author(s): Daniel Koch
, James Jackson
autogenerated on Thu Apr 15 2021 05:09:27