From 104ec18e352ef6f5729981d91702c553cd102ad3 Mon Sep 17 00:00:00 2001 From: Davide Mor <davide.mor@skywarder.eu> Date: Sat, 15 Oct 2022 16:22:19 +0200 Subject: [PATCH] Run formatter --- src/main.cpp | 215 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 125 insertions(+), 90 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 1aad2d2..17c9bc4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,103 +7,123 @@ #include <mavlink_lib/pyxis/mavlink.h> #pragma GCC diagnostic pop -#include <iostream> #include <fstream> +#include <iostream> #include <string> #include <unordered_map> -const mavlink_message_info_t& get_message_info_for(uint8_t msgid) { +const mavlink_message_info_t &get_message_info_for(uint8_t msgid) +{ static const mavlink_message_info_t infos[256] = MAVLINK_MESSAGE_INFO; return infos[msgid]; } -class CsvStream { +class CsvStream +{ public: - CsvStream(std::string path, const mavlink_message_info_t& info) : - os(), info(info) { + CsvStream(std::string path, const mavlink_message_info_t &info) + : os(), info(info) + { os.exceptions(std::ifstream::failbit); os.open(path, std::ios::binary); - + format_message_header(); } - void put(const mavlink_message_t &msg) { - format_message(msg); - } + void put(const mavlink_message_t &msg) { format_message(msg); } private: - void format_field(const mavlink_message_t &msg, int id) { + void format_field(const mavlink_message_t &msg, int id) + { const mavlink_field_info_t &field = info.fields[id]; - if(field.array_length != 0) { + if (field.array_length != 0) + { os << "<array not implemented>"; - } else { - switch(field.type) { - case MAVLINK_TYPE_CHAR: - os << _MAV_RETURN_char(&msg, field.wire_offset); - break; - - case MAVLINK_TYPE_UINT8_T: - os << static_cast<uint64_t>(_MAV_RETURN_uint8_t(&msg, field.wire_offset)); - break; - - case MAVLINK_TYPE_UINT16_T: - os << static_cast<uint64_t>(_MAV_RETURN_uint16_t(&msg, field.wire_offset)); - break; - - case MAVLINK_TYPE_UINT32_T: - os << static_cast<uint64_t>(_MAV_RETURN_uint32_t(&msg, field.wire_offset)); - break; - - case MAVLINK_TYPE_UINT64_T: - os << static_cast<uint64_t>(_MAV_RETURN_uint64_t(&msg, field.wire_offset)); - break; - - case MAVLINK_TYPE_INT8_T: - os << static_cast<int64_t>(_MAV_RETURN_uint8_t(&msg, field.wire_offset)); - break; - - case MAVLINK_TYPE_INT16_T: - os << static_cast<int64_t>(_MAV_RETURN_uint16_t(&msg, field.wire_offset)); - break; - - case MAVLINK_TYPE_INT32_T: - os << static_cast<int64_t>(_MAV_RETURN_uint32_t(&msg, field.wire_offset)); - break; - - case MAVLINK_TYPE_INT64_T: - os << static_cast<int64_t>(_MAV_RETURN_uint64_t(&msg, field.wire_offset)); - break; - - case MAVLINK_TYPE_FLOAT: - os << _MAV_RETURN_float(&msg, field.wire_offset); - break; - - case MAVLINK_TYPE_DOUBLE: - os << _MAV_RETURN_double(&msg, field.wire_offset); - break; + } + else + { + switch (field.type) + { + case MAVLINK_TYPE_CHAR: + os << _MAV_RETURN_char(&msg, field.wire_offset); + break; + + case MAVLINK_TYPE_UINT8_T: + os << static_cast<uint64_t>( + _MAV_RETURN_uint8_t(&msg, field.wire_offset)); + break; + + case MAVLINK_TYPE_UINT16_T: + os << static_cast<uint64_t>( + _MAV_RETURN_uint16_t(&msg, field.wire_offset)); + break; + + case MAVLINK_TYPE_UINT32_T: + os << static_cast<uint64_t>( + _MAV_RETURN_uint32_t(&msg, field.wire_offset)); + break; + + case MAVLINK_TYPE_UINT64_T: + os << static_cast<uint64_t>( + _MAV_RETURN_uint64_t(&msg, field.wire_offset)); + break; + + case MAVLINK_TYPE_INT8_T: + os << static_cast<int64_t>( + _MAV_RETURN_uint8_t(&msg, field.wire_offset)); + break; + + case MAVLINK_TYPE_INT16_T: + os << static_cast<int64_t>( + _MAV_RETURN_uint16_t(&msg, field.wire_offset)); + break; + + case MAVLINK_TYPE_INT32_T: + os << static_cast<int64_t>( + _MAV_RETURN_uint32_t(&msg, field.wire_offset)); + break; + + case MAVLINK_TYPE_INT64_T: + os << static_cast<int64_t>( + _MAV_RETURN_uint64_t(&msg, field.wire_offset)); + break; + + case MAVLINK_TYPE_FLOAT: + os << _MAV_RETURN_float(&msg, field.wire_offset); + break; + + case MAVLINK_TYPE_DOUBLE: + os << _MAV_RETURN_double(&msg, field.wire_offset); + break; } } } - void format_message(const mavlink_message_t &msg) { + void format_message(const mavlink_message_t &msg) + { bool first = true; - for(unsigned i = 0; i < info.num_fields; i++) { - if(!first) { + for (unsigned i = 0; i < info.num_fields; i++) + { + if (!first) + { os << ","; } - + format_field(msg, i); first = false; } - + os << std::endl; } - void format_message_header() { + void format_message_header() + { bool first = true; - for(unsigned i = 0; i < info.num_fields; i++) { - if(!first) { + for (unsigned i = 0; i < info.num_fields; i++) + { + if (!first) + { os << ","; } @@ -115,15 +135,19 @@ private: } std::ofstream os; - const mavlink_message_info_t& info; + const mavlink_message_info_t &info; }; -class Decoder { +class Decoder +{ public: - Decoder(std::string input, std::string output) : - input(input), output(output) {} + Decoder(std::string input, std::string output) + : input(input), output(output) + { + } - void decode() { + void decode() + { std::ifstream is; is.exceptions(std::ifstream::failbit); is.open(input, std::ios::binary); @@ -132,15 +156,20 @@ public: mavlink_message_t msg; mavlink_status_t status; - while(is.peek() != EOF) { - if(mavlink_parse_char(MAVLINK_COMM_0, is.get(), &msg, &status)) { + while (is.peek() != EOF) + { + if (mavlink_parse_char(MAVLINK_COMM_0, is.get(), &msg, &status)) + { uint8_t msgid = msg.msgid; - const mavlink_message_info_t &info = get_message_info_for(msgid); + const mavlink_message_info_t &info = + get_message_info_for(msgid); auto it = streams.find(msgid); - if(it == streams.end()) { + if (it == streams.end()) + { std::string filename = get_filename_for(info); - it = streams.insert({msgid, CsvStream(filename, info)}).first; + it = streams.insert({msgid, CsvStream(filename, info)}) + .first; } it->second.put(msg); @@ -149,7 +178,8 @@ public: } private: - std::string get_filename_for(const mavlink_message_info_t &info) { + std::string get_filename_for(const mavlink_message_info_t &info) + { return output + "/" + info.name + ".csv"; } @@ -157,29 +187,34 @@ private: std::string output; }; -void print_usage() { - std::cout << -"Skyward mavlink decoder 2.0\n" -"\n" -"USAGE:\n" -" ./mavdecoder <FILENAME>\n" -"\n" -"OPTIONS:\n" -" FILENAME Filename of a mavlink encoded file\n" -"\n" - << std::flush; +void print_usage() +{ + std::cout << "Skyward mavlink decoder 2.0\n" + "\n" + "USAGE:\n" + " ./mavdecoder <FILENAME>\n" + "\n" + "OPTIONS:\n" + " FILENAME Filename of a mavlink encoded file\n" + "\n" + << std::flush; } -int main(int argc, char *argv[]) { - if(argc != 2) { +int main(int argc, char *argv[]) +{ + if (argc != 2) + { print_usage(); return -1; } - try { + try + { Decoder decoder(argv[1], "out"); decoder.decode(); - } catch(std::exception &ex) { + } + catch (std::exception &ex) + { std::cout << "An exception occurred: " << ex.what() << std::endl; return -1; } -- GitLab