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 <stdint.h>
43
44
namespace
mavrosflight
45
{
46
50
struct
WriteBuffer
51
{
52
uint8_t
data
[
MAVLINK_MAX_PACKET_LEN
];
53
size_t
len
;
54
size_t
pos
;
55
56
WriteBuffer
() : len(0), pos(0) {}
57
58
WriteBuffer
(
const
uint8_t * buf, uint16_t len) : len(len), pos(0)
59
{
60
assert(len <=
MAVLINK_MAX_PACKET_LEN
);
61
memcpy(data, buf, len);
62
}
63
64
uint8_t *
dpos
() {
return
data +
pos
; }
65
66
size_t
nbytes
() {
return
len -
pos
; }
67
};
68
69
}
// namespace mavrosflight
70
71
#endif // MAVROSFLIGHT_WRITE_BUFFER_H
mavrosflight::WriteBuffer::WriteBuffer
WriteBuffer()
Definition:
write_buffer.h:56
mavrosflight
Definition:
mavlink_comm.h:56
mavlink_bridge.h
mavrosflight::WriteBuffer::len
size_t len
Definition:
write_buffer.h:53
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:58
mavrosflight::WriteBuffer::nbytes
size_t nbytes()
Definition:
write_buffer.h:66
mavrosflight::WriteBuffer::dpos
uint8_t * dpos()
Definition:
write_buffer.h:64
mavrosflight::WriteBuffer
Struct for buffering the contents of a mavlink message.
Definition:
write_buffer.h:50
mavrosflight::WriteBuffer::pos
size_t pos
Definition:
write_buffer.h:54
mavrosflight::WriteBuffer::data
uint8_t data[MAVLINK_MAX_PACKET_LEN]
Definition:
write_buffer.h:52
rosflight
Author(s): Daniel Koch
, James Jackson
autogenerated on Wed Jul 3 2019 20:00:13