Skyward boardcore
Loading...
Searching...
No Matches
MavlinkStatus.h
Go to the documentation of this file.
1/* Copyright (c) 2019 Skyward Experimental Rocketry
2 * Author: Alvise de'Faveri Tron
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23#pragma once
24
25#include <mavlink_lib/mavlink_types.h>
26
27#include <ostream>
28#include <string>
29
30namespace Boardcore
31{
32
34{
35 uint64_t timestamp;
36 uint16_t nSendQueue;
37 uint16_t maxSendQueue;
38 uint16_t nSendErrors;
39 uint16_t nDroppedPackets;
40 mavlink_status_t mavStats;
41
42 static std::string header()
43 {
44 return "timestamp,n_send_queue,max_send_queue,n_send_errors,n_dropped_"
45 "packets,mav_stats.buffer_overrun,mav_stats.msg_received,mav_"
46 "stats.parse_error,mav_stats.parse_state,mav_stats.packet_idx,"
47 "mav_stats.current_rx_seq,mav_stats.current_tx_seq,mav_stats."
48 "packet_rx_success_count,mav_stats.packet_rx_drop_count\n";
49 }
50
51 void print(std::ostream& os) const
52 {
53 os << timestamp << "," << nSendQueue << "," << maxSendQueue << ","
54 << nSendErrors << "," << nDroppedPackets << ","
55 << (int)mavStats.msg_received << "," << (int)mavStats.buffer_overrun
56 << "," << (int)mavStats.parse_error << ","
57 << (int)mavStats.parse_state << "," << (int)mavStats.packet_idx
58 << "," << (int)mavStats.current_rx_seq << ","
59 << (int)mavStats.current_tx_seq << ","
60 << mavStats.packet_rx_success_count << ","
61 << mavStats.packet_rx_drop_count << "\n";
62 }
63};
64
65} // namespace Boardcore
This file includes all the types the logdecoder script will decode.