diff --git a/ardupilotmega/ardupilotmega.h b/ardupilotmega/ardupilotmega.h index 8f2284d..8baca78 100644 --- a/ardupilotmega/ardupilotmega.h +++ b/ardupilotmega/ardupilotmega.h @@ -24,7 +24,7 @@ extern "C" { #endif #ifndef MAVLINK_MESSAGE_CRCS -#define MAVLINK_MESSAGE_CRCS {{0, 50, 9, 0, 0, 0}, {1, 124, 31, 0, 0, 0}, {2, 137, 12, 0, 0, 0}, {4, 237, 14, 3, 12, 13}, {5, 217, 28, 1, 0, 0}, {6, 104, 3, 0, 0, 0}, {7, 119, 32, 0, 0, 0}, {11, 89, 6, 1, 4, 0}, {20, 214, 20, 3, 2, 3}, {21, 159, 2, 3, 0, 1}, {22, 220, 25, 0, 0, 0}, {23, 168, 23, 3, 4, 5}, {24, 24, 30, 0, 0, 0}, {25, 23, 101, 0, 0, 0}, {26, 170, 22, 0, 0, 0}, {27, 144, 26, 0, 0, 0}, {28, 67, 16, 0, 0, 0}, {29, 115, 14, 0, 0, 0}, {30, 39, 28, 0, 0, 0}, {31, 246, 32, 0, 0, 0}, {32, 185, 28, 0, 0, 0}, {33, 104, 28, 0, 0, 0}, {34, 237, 22, 0, 0, 0}, {35, 244, 22, 0, 0, 0}, {36, 222, 21, 0, 0, 0}, {37, 212, 6, 3, 4, 5}, {38, 9, 6, 3, 4, 5}, {39, 254, 37, 3, 32, 33}, {40, 230, 4, 3, 2, 3}, {41, 28, 4, 3, 2, 3}, {42, 28, 2, 0, 0, 0}, {43, 132, 2, 3, 0, 1}, {44, 221, 4, 3, 2, 3}, {45, 232, 2, 3, 0, 1}, {46, 11, 2, 0, 0, 0}, {47, 153, 3, 3, 0, 1}, {48, 41, 13, 1, 12, 0}, {49, 39, 12, 0, 0, 0}, {50, 78, 37, 3, 18, 19}, {51, 196, 4, 3, 2, 3}, {54, 15, 27, 3, 24, 25}, {55, 3, 25, 0, 0, 0}, {61, 167, 72, 0, 0, 0}, {62, 183, 26, 0, 0, 0}, {63, 119, 181, 0, 0, 0}, {64, 191, 225, 0, 0, 0}, {65, 118, 42, 0, 0, 0}, {66, 148, 6, 3, 2, 3}, {67, 21, 4, 0, 0, 0}, {69, 243, 11, 0, 0, 0}, {70, 124, 18, 3, 16, 17}, {73, 38, 37, 3, 32, 33}, {74, 20, 20, 0, 0, 0}, {75, 158, 35, 3, 30, 31}, {76, 152, 33, 3, 30, 31}, {77, 143, 3, 3, 8, 9}, {81, 106, 22, 0, 0, 0}, {82, 49, 39, 3, 36, 37}, {83, 22, 37, 0, 0, 0}, {84, 143, 53, 3, 50, 51}, {85, 140, 51, 0, 0, 0}, {86, 5, 53, 3, 50, 51}, {87, 150, 51, 0, 0, 0}, {89, 231, 28, 0, 0, 0}, {90, 183, 56, 0, 0, 0}, {91, 63, 42, 0, 0, 0}, {92, 54, 33, 0, 0, 0}, {93, 47, 81, 0, 0, 0}, {100, 175, 26, 0, 0, 0}, {101, 102, 32, 0, 0, 0}, {102, 158, 32, 0, 0, 0}, {103, 208, 20, 0, 0, 0}, {104, 56, 32, 0, 0, 0}, {105, 93, 62, 0, 0, 0}, {106, 138, 44, 0, 0, 0}, {107, 108, 64, 0, 0, 0}, {108, 32, 84, 0, 0, 0}, {109, 185, 9, 0, 0, 0}, {110, 84, 254, 3, 1, 2}, {111, 34, 16, 0, 0, 0}, {112, 174, 12, 0, 0, 0}, {113, 124, 36, 0, 0, 0}, {114, 237, 44, 0, 0, 0}, {115, 4, 64, 0, 0, 0}, {116, 76, 22, 0, 0, 0}, {117, 128, 6, 3, 4, 5}, {118, 56, 14, 0, 0, 0}, {119, 116, 12, 3, 10, 11}, {120, 134, 97, 0, 0, 0}, {121, 237, 2, 3, 0, 1}, {122, 203, 2, 3, 0, 1}, {123, 250, 113, 3, 0, 1}, {124, 87, 35, 0, 0, 0}, {125, 203, 6, 0, 0, 0}, {126, 220, 79, 0, 0, 0}, {127, 25, 35, 0, 0, 0}, {128, 226, 35, 0, 0, 0}, {129, 46, 22, 0, 0, 0}, {130, 29, 13, 0, 0, 0}, {131, 223, 255, 0, 0, 0}, {132, 85, 14, 0, 0, 0}, {133, 6, 18, 0, 0, 0}, {134, 229, 43, 0, 0, 0}, {135, 203, 8, 0, 0, 0}, {136, 1, 22, 0, 0, 0}, {137, 195, 14, 0, 0, 0}, {138, 109, 36, 0, 0, 0}, {139, 168, 43, 3, 41, 42}, {140, 181, 41, 0, 0, 0}, {141, 47, 32, 0, 0, 0}, {142, 72, 243, 0, 0, 0}, {143, 131, 14, 0, 0, 0}, {144, 127, 93, 0, 0, 0}, {146, 103, 100, 0, 0, 0}, {147, 154, 36, 0, 0, 0}, {148, 178, 60, 0, 0, 0}, {149, 200, 30, 0, 0, 0}, {150, 134, 42, 0, 0, 0}, {151, 219, 8, 3, 6, 7}, {152, 208, 4, 0, 0, 0}, {153, 188, 12, 0, 0, 0}, {154, 84, 15, 3, 6, 7}, {155, 22, 13, 3, 4, 5}, {156, 19, 6, 3, 0, 1}, {157, 21, 15, 3, 12, 13}, {158, 134, 14, 3, 12, 13}, {160, 78, 12, 3, 8, 9}, {161, 68, 3, 3, 0, 1}, {162, 189, 8, 0, 0, 0}, {163, 127, 28, 0, 0, 0}, {164, 154, 44, 0, 0, 0}, {165, 21, 3, 0, 0, 0}, {166, 21, 9, 0, 0, 0}, {167, 144, 22, 0, 0, 0}, {168, 1, 12, 0, 0, 0}, {169, 234, 18, 0, 0, 0}, {170, 73, 34, 0, 0, 0}, {171, 181, 66, 0, 0, 0}, {172, 22, 98, 0, 0, 0}, {173, 83, 8, 0, 0, 0}, {174, 167, 48, 0, 0, 0}, {175, 138, 19, 3, 14, 15}, {176, 234, 3, 3, 0, 1}, {177, 240, 20, 0, 0, 0}, {178, 47, 24, 0, 0, 0}, {179, 189, 29, 1, 26, 0}, {180, 52, 45, 1, 42, 0}, {181, 174, 4, 0, 0, 0}, {182, 229, 40, 0, 0, 0}, {183, 85, 2, 3, 0, 1}, {184, 159, 206, 3, 4, 5}, {185, 186, 7, 3, 4, 5}, {186, 72, 29, 3, 0, 1}, {191, 92, 27, 0, 0, 0}, {192, 36, 44, 0, 0, 0}, {193, 71, 22, 0, 0, 0}, {194, 98, 25, 0, 0, 0}, {195, 120, 37, 0, 0, 0}, {200, 134, 42, 3, 40, 41}, {201, 205, 14, 3, 12, 13}, {214, 69, 8, 3, 6, 7}, {215, 101, 3, 0, 0, 0}, {216, 50, 3, 3, 0, 1}, {217, 202, 6, 0, 0, 0}, {218, 17, 7, 3, 0, 1}, {219, 162, 2, 0, 0, 0}, {226, 207, 8, 0, 0, 0}, {230, 163, 42, 0, 0, 0}, {231, 105, 40, 0, 0, 0}, {232, 151, 63, 0, 0, 0}, {233, 35, 182, 0, 0, 0}, {234, 150, 40, 0, 0, 0}, {235, 179, 42, 0, 0, 0}, {241, 90, 32, 0, 0, 0}, {242, 104, 52, 0, 0, 0}, {243, 85, 53, 1, 52, 0}, {244, 95, 6, 0, 0, 0}, {245, 130, 2, 0, 0, 0}, {246, 184, 38, 0, 0, 0}, {247, 81, 19, 0, 0, 0}, {248, 8, 254, 3, 3, 4}, {249, 204, 36, 0, 0, 0}, {250, 49, 30, 0, 0, 0}, {251, 170, 18, 0, 0, 0}, {252, 44, 18, 0, 0, 0}, {253, 83, 51, 0, 0, 0}, {254, 46, 9, 0, 0, 0}, {256, 71, 42, 3, 8, 9}, {257, 131, 9, 0, 0, 0}, {258, 187, 32, 3, 0, 1}, {259, 92, 235, 0, 0, 0}, {260, 146, 5, 0, 0, 0}, {261, 179, 27, 0, 0, 0}, {262, 12, 18, 0, 0, 0}, {263, 133, 255, 0, 0, 0}, {264, 49, 28, 0, 0, 0}, {265, 26, 16, 0, 0, 0}, {266, 193, 255, 3, 2, 3}, {267, 35, 255, 3, 2, 3}, {268, 14, 4, 3, 2, 3}, {269, 58, 246, 0, 0, 0}, {270, 232, 247, 3, 14, 15}, {299, 19, 96, 0, 0, 0}, {300, 217, 22, 0, 0, 0}, {310, 28, 17, 0, 0, 0}, {311, 95, 116, 0, 0, 0}, {320, 243, 20, 3, 2, 3}, {321, 88, 2, 3, 0, 1}, {322, 243, 149, 0, 0, 0}, {323, 78, 147, 3, 0, 1}, {324, 132, 146, 0, 0, 0}, {330, 23, 158, 0, 0, 0}, {331, 58, 230, 0, 0, 0}, {10001, 209, 20, 0, 0, 0}, {10002, 186, 41, 0, 0, 0}, {10003, 4, 1, 0, 0, 0}, {11000, 134, 51, 3, 4, 5}, {11001, 15, 135, 0, 0, 0}, {11002, 234, 179, 3, 4, 5}, {11003, 64, 5, 0, 0, 0}, {11010, 46, 49, 0, 0, 0}, {11011, 106, 44, 0, 0, 0}, {11020, 205, 16, 0, 0, 0}, {20006, 215, 20, 0, 0, 0}, {20007, 204, 6, 0, 0, 0}, {20008, 241, 201, 0, 0, 0}, {42000, 227, 1, 0, 0, 0}, {42001, 239, 46, 0, 0, 0}} +#define MAVLINK_MESSAGE_CRCS {{0, 50, 9, 0, 0, 0}, {1, 124, 31, 0, 0, 0}, {2, 137, 12, 0, 0, 0}, {4, 237, 14, 3, 12, 13}, {5, 217, 28, 1, 0, 0}, {6, 104, 3, 0, 0, 0}, {7, 119, 32, 0, 0, 0}, {11, 89, 6, 1, 4, 0}, {20, 214, 20, 3, 2, 3}, {21, 159, 2, 3, 0, 1}, {22, 220, 25, 0, 0, 0}, {23, 168, 23, 3, 4, 5}, {24, 24, 30, 0, 0, 0}, {25, 23, 101, 0, 0, 0}, {26, 170, 22, 0, 0, 0}, {27, 144, 26, 0, 0, 0}, {28, 67, 16, 0, 0, 0}, {29, 115, 14, 0, 0, 0}, {30, 39, 28, 0, 0, 0}, {31, 246, 32, 0, 0, 0}, {32, 185, 28, 0, 0, 0}, {33, 104, 28, 0, 0, 0}, {34, 237, 22, 0, 0, 0}, {35, 244, 22, 0, 0, 0}, {36, 222, 21, 0, 0, 0}, {37, 212, 6, 3, 4, 5}, {38, 9, 6, 3, 4, 5}, {39, 254, 37, 3, 32, 33}, {40, 230, 4, 3, 2, 3}, {41, 28, 4, 3, 2, 3}, {42, 28, 2, 0, 0, 0}, {43, 132, 2, 3, 0, 1}, {44, 221, 4, 3, 2, 3}, {45, 232, 2, 3, 0, 1}, {46, 11, 2, 0, 0, 0}, {47, 153, 3, 3, 0, 1}, {48, 41, 13, 1, 12, 0}, {49, 39, 12, 0, 0, 0}, {50, 78, 37, 3, 18, 19}, {51, 196, 4, 3, 2, 3}, {54, 15, 27, 3, 24, 25}, {55, 3, 25, 0, 0, 0}, {61, 167, 72, 0, 0, 0}, {62, 183, 26, 0, 0, 0}, {63, 119, 181, 0, 0, 0}, {64, 191, 225, 0, 0, 0}, {65, 118, 42, 0, 0, 0}, {66, 148, 6, 3, 2, 3}, {67, 21, 4, 0, 0, 0}, {69, 243, 11, 0, 0, 0}, {70, 124, 18, 3, 16, 17}, {73, 38, 37, 3, 32, 33}, {74, 20, 20, 0, 0, 0}, {75, 158, 35, 3, 30, 31}, {76, 152, 33, 3, 30, 31}, {77, 143, 3, 3, 8, 9}, {81, 106, 22, 0, 0, 0}, {82, 49, 39, 3, 36, 37}, {83, 22, 37, 0, 0, 0}, {84, 143, 53, 3, 50, 51}, {85, 140, 51, 0, 0, 0}, {86, 5, 53, 3, 50, 51}, {87, 150, 51, 0, 0, 0}, {89, 231, 28, 0, 0, 0}, {90, 183, 56, 0, 0, 0}, {91, 63, 42, 0, 0, 0}, {92, 54, 33, 0, 0, 0}, {93, 47, 81, 0, 0, 0}, {100, 175, 26, 0, 0, 0}, {101, 102, 32, 0, 0, 0}, {102, 158, 32, 0, 0, 0}, {103, 208, 20, 0, 0, 0}, {104, 56, 32, 0, 0, 0}, {105, 93, 62, 0, 0, 0}, {106, 138, 44, 0, 0, 0}, {107, 108, 64, 0, 0, 0}, {108, 32, 84, 0, 0, 0}, {109, 185, 9, 0, 0, 0}, {110, 84, 254, 3, 1, 2}, {111, 34, 16, 0, 0, 0}, {112, 174, 12, 0, 0, 0}, {113, 124, 36, 0, 0, 0}, {114, 237, 44, 0, 0, 0}, {115, 4, 64, 0, 0, 0}, {116, 76, 22, 0, 0, 0}, {117, 128, 6, 3, 4, 5}, {118, 56, 14, 0, 0, 0}, {119, 116, 12, 3, 10, 11}, {120, 134, 97, 0, 0, 0}, {121, 237, 2, 3, 0, 1}, {122, 203, 2, 3, 0, 1}, {123, 250, 113, 3, 0, 1}, {124, 87, 35, 0, 0, 0}, {125, 203, 6, 0, 0, 0}, {126, 220, 79, 0, 0, 0}, {127, 25, 35, 0, 0, 0}, {128, 226, 35, 0, 0, 0}, {129, 46, 22, 0, 0, 0}, {130, 29, 13, 0, 0, 0}, {131, 223, 255, 0, 0, 0}, {132, 85, 14, 0, 0, 0}, {133, 6, 18, 0, 0, 0}, {134, 229, 43, 0, 0, 0}, {135, 203, 8, 0, 0, 0}, {136, 1, 22, 0, 0, 0}, {137, 195, 14, 0, 0, 0}, {138, 109, 36, 0, 0, 0}, {139, 168, 43, 3, 41, 42}, {140, 181, 41, 0, 0, 0}, {141, 47, 32, 0, 0, 0}, {142, 72, 243, 0, 0, 0}, {143, 131, 14, 0, 0, 0}, {144, 127, 93, 0, 0, 0}, {146, 103, 100, 0, 0, 0}, {147, 154, 36, 0, 0, 0}, {148, 178, 60, 0, 0, 0}, {149, 200, 30, 0, 0, 0}, {150, 134, 42, 0, 0, 0}, {151, 219, 8, 3, 6, 7}, {152, 208, 4, 0, 0, 0}, {153, 188, 12, 0, 0, 0}, {154, 84, 15, 3, 6, 7}, {155, 22, 13, 3, 4, 5}, {156, 19, 6, 3, 0, 1}, {157, 21, 15, 3, 12, 13}, {158, 134, 14, 3, 12, 13}, {160, 78, 12, 3, 8, 9}, {161, 68, 3, 3, 0, 1}, {162, 189, 8, 0, 0, 0}, {163, 127, 28, 0, 0, 0}, {164, 154, 44, 0, 0, 0}, {165, 21, 3, 0, 0, 0}, {166, 21, 9, 0, 0, 0}, {167, 144, 22, 0, 0, 0}, {168, 1, 12, 0, 0, 0}, {169, 234, 18, 0, 0, 0}, {170, 73, 34, 0, 0, 0}, {171, 181, 66, 0, 0, 0}, {172, 22, 98, 0, 0, 0}, {173, 83, 8, 0, 0, 0}, {174, 167, 48, 0, 0, 0}, {175, 138, 19, 3, 14, 15}, {176, 234, 3, 3, 0, 1}, {177, 240, 20, 0, 0, 0}, {178, 47, 24, 0, 0, 0}, {179, 189, 29, 1, 26, 0}, {180, 52, 45, 1, 42, 0}, {181, 174, 4, 0, 0, 0}, {182, 229, 40, 0, 0, 0}, {183, 85, 2, 3, 0, 1}, {184, 159, 206, 3, 4, 5}, {185, 186, 7, 3, 4, 5}, {186, 72, 29, 3, 0, 1}, {191, 92, 27, 0, 0, 0}, {192, 36, 44, 0, 0, 0}, {193, 71, 22, 0, 0, 0}, {194, 98, 25, 0, 0, 0}, {195, 120, 37, 0, 0, 0}, {200, 134, 42, 3, 40, 41}, {201, 205, 14, 3, 12, 13}, {214, 69, 8, 3, 6, 7}, {215, 101, 3, 0, 0, 0}, {216, 50, 3, 3, 0, 1}, {217, 202, 6, 0, 0, 0}, {218, 17, 7, 3, 0, 1}, {219, 162, 2, 0, 0, 0}, {226, 207, 8, 0, 0, 0}, {230, 163, 42, 0, 0, 0}, {231, 105, 40, 0, 0, 0}, {232, 151, 63, 0, 0, 0}, {233, 35, 182, 0, 0, 0}, {234, 150, 40, 0, 0, 0}, {235, 179, 42, 0, 0, 0}, {241, 90, 32, 0, 0, 0}, {242, 104, 52, 0, 0, 0}, {243, 85, 53, 1, 52, 0}, {244, 95, 6, 0, 0, 0}, {245, 130, 2, 0, 0, 0}, {246, 184, 38, 0, 0, 0}, {247, 81, 19, 0, 0, 0}, {248, 8, 254, 3, 3, 4}, {249, 204, 36, 0, 0, 0}, {250, 49, 30, 0, 0, 0}, {251, 170, 18, 0, 0, 0}, {252, 44, 18, 0, 0, 0}, {253, 83, 51, 0, 0, 0}, {254, 46, 9, 0, 0, 0}, {256, 71, 42, 3, 8, 9}, {257, 131, 9, 0, 0, 0}, {258, 187, 32, 3, 0, 1}, {259, 92, 235, 0, 0, 0}, {260, 146, 5, 0, 0, 0}, {261, 179, 27, 0, 0, 0}, {262, 12, 18, 0, 0, 0}, {263, 133, 255, 0, 0, 0}, {264, 49, 28, 0, 0, 0}, {265, 26, 16, 0, 0, 0}, {266, 193, 255, 3, 2, 3}, {267, 35, 255, 3, 2, 3}, {268, 14, 4, 3, 2, 3}, {269, 58, 246, 0, 0, 0}, {270, 232, 247, 3, 14, 15}, {299, 19, 96, 0, 0, 0}, {300, 217, 22, 0, 0, 0}, {310, 28, 17, 0, 0, 0}, {311, 95, 116, 0, 0, 0}, {320, 243, 20, 3, 2, 3}, {321, 88, 2, 3, 0, 1}, {322, 243, 149, 0, 0, 0}, {323, 78, 147, 3, 0, 1}, {324, 132, 146, 0, 0, 0}, {330, 23, 158, 0, 0, 0}, {331, 58, 230, 0, 0, 0}, {10001, 209, 20, 0, 0, 0}, {10002, 186, 41, 0, 0, 0}, {10003, 4, 1, 0, 0, 0}, {11000, 134, 51, 3, 4, 5}, {11001, 15, 135, 0, 0, 0}, {11002, 234, 179, 3, 4, 5}, {11003, 64, 5, 0, 0, 0}, {11010, 46, 49, 0, 0, 0}, {11011, 106, 44, 0, 0, 0}, {11020, 205, 16, 0, 0, 0}, {20006, 215, 20, 0, 0, 0}, {20007, 204, 6, 0, 0, 0}, {20008, 241, 201, 0, 0, 0}, {20101, 87, 25, 0, 0, 0}, {20102, 128, 10, 0, 0, 0}, {20103, 187, 85, 0, 0, 0}, {20104, 212, 85, 0, 0, 0}, {20105, 92, 13, 0, 0, 0}, {20106, 92, 39, 0, 0, 0}, {20107, 128, 92, 0, 0, 0}, {20108, 50, 48, 0, 0, 0}, {20109, 177, 56, 0, 0, 0}, {42000, 227, 1, 0, 0, 0}, {42001, 239, 46, 0, 0, 0}} #endif #include "../protocol.h" @@ -949,6 +949,15 @@ typedef enum TRACKER_MODE #include "./mavlink_msg_atmo_comp_ext.h" #include "./mavlink_msg_wow_sensor.h" #include "./mavlink_msg_gps_rnx_data.h" +#include "./mavlink_msg_emb_atmo_com.h" +#include "./mavlink_msg_radar_altm.h" +#include "./mavlink_msg_ins1.h" +#include "./mavlink_msg_ins2.h" +#include "./mavlink_msg_tub_lnd.h" +#include "./mavlink_msg_servos.h" +#include "./mavlink_msg_pubit_result.h" +#include "./mavlink_msg_pbit_result.h" +#include "./mavlink_msg_ifbit_result.h" // base include #include "../common/common.h" @@ -959,8 +968,8 @@ typedef enum TRACKER_MODE #define MAVLINK_THIS_XML_IDX 0 #if MAVLINK_THIS_XML_IDX == MAVLINK_PRIMARY_XML_IDX -# define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, MAVLINK_MESSAGE_INFO_SET_MODE, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_WRITE_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_ITEM, MAVLINK_MESSAGE_INFO_MISSION_REQUEST, MAVLINK_MESSAGE_INFO_MISSION_SET_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_LIST, MAVLINK_MESSAGE_INFO_MISSION_COUNT, MAVLINK_MESSAGE_INFO_MISSION_CLEAR_ALL, MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED, MAVLINK_MESSAGE_INFO_MISSION_ACK, MAVLINK_MESSAGE_INFO_SET_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_PARAM_MAP_RC, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_INT, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION_COV, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT_COV, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_COV, MAVLINK_MESSAGE_INFO_RC_CHANNELS, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_DATA_STREAM, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, MAVLINK_MESSAGE_INFO_MISSION_ITEM_INT, MAVLINK_MESSAGE_INFO_VFR_HUD, MAVLINK_MESSAGE_INFO_COMMAND_INT, MAVLINK_MESSAGE_INFO_COMMAND_LONG, MAVLINK_MESSAGE_INFO_COMMAND_ACK, MAVLINK_MESSAGE_INFO_MANUAL_SETPOINT, MAVLINK_MESSAGE_INFO_SET_ATTITUDE_TARGET, MAVLINK_MESSAGE_INFO_ATTITUDE_TARGET, MAVLINK_MESSAGE_INFO_SET_POSITION_TARGET_LOCAL_NED, MAVLINK_MESSAGE_INFO_POSITION_TARGET_LOCAL_NED, MAVLINK_MESSAGE_INFO_SET_POSITION_TARGET_GLOBAL_INT, MAVLINK_MESSAGE_INFO_POSITION_TARGET_GLOBAL_INT, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_HIL_RC_INPUTS_RAW, MAVLINK_MESSAGE_INFO_HIL_ACTUATOR_CONTROLS, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_GLOBAL_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_SPEED_ESTIMATE, MAVLINK_MESSAGE_INFO_VICON_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_HIGHRES_IMU, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW_RAD, MAVLINK_MESSAGE_INFO_HIL_SENSOR, MAVLINK_MESSAGE_INFO_SIM_STATE, MAVLINK_MESSAGE_INFO_RADIO_STATUS, MAVLINK_MESSAGE_INFO_FILE_TRANSFER_PROTOCOL, MAVLINK_MESSAGE_INFO_TIMESYNC, MAVLINK_MESSAGE_INFO_CAMERA_TRIGGER, MAVLINK_MESSAGE_INFO_HIL_GPS, MAVLINK_MESSAGE_INFO_HIL_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_HIL_STATE_QUATERNION, MAVLINK_MESSAGE_INFO_SCALED_IMU2, MAVLINK_MESSAGE_INFO_LOG_REQUEST_LIST, MAVLINK_MESSAGE_INFO_LOG_ENTRY, MAVLINK_MESSAGE_INFO_LOG_REQUEST_DATA, MAVLINK_MESSAGE_INFO_LOG_DATA, MAVLINK_MESSAGE_INFO_LOG_ERASE, MAVLINK_MESSAGE_INFO_LOG_REQUEST_END, MAVLINK_MESSAGE_INFO_GPS_INJECT_DATA, MAVLINK_MESSAGE_INFO_GPS2_RAW, MAVLINK_MESSAGE_INFO_POWER_STATUS, MAVLINK_MESSAGE_INFO_SERIAL_CONTROL, MAVLINK_MESSAGE_INFO_GPS_RTK, MAVLINK_MESSAGE_INFO_GPS2_RTK, MAVLINK_MESSAGE_INFO_SCALED_IMU3, MAVLINK_MESSAGE_INFO_DATA_TRANSMISSION_HANDSHAKE, MAVLINK_MESSAGE_INFO_ENCAPSULATED_DATA, MAVLINK_MESSAGE_INFO_DISTANCE_SENSOR, MAVLINK_MESSAGE_INFO_TERRAIN_REQUEST, MAVLINK_MESSAGE_INFO_TERRAIN_DATA, MAVLINK_MESSAGE_INFO_TERRAIN_CHECK, MAVLINK_MESSAGE_INFO_TERRAIN_REPORT, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE2, MAVLINK_MESSAGE_INFO_ATT_POS_MOCAP, MAVLINK_MESSAGE_INFO_SET_ACTUATOR_CONTROL_TARGET, MAVLINK_MESSAGE_INFO_ACTUATOR_CONTROL_TARGET, MAVLINK_MESSAGE_INFO_ALTITUDE, MAVLINK_MESSAGE_INFO_RESOURCE_REQUEST, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE3, MAVLINK_MESSAGE_INFO_FOLLOW_TARGET, MAVLINK_MESSAGE_INFO_CONTROL_SYSTEM_STATE, MAVLINK_MESSAGE_INFO_BATTERY_STATUS, MAVLINK_MESSAGE_INFO_AUTOPILOT_VERSION, MAVLINK_MESSAGE_INFO_LANDING_TARGET, MAVLINK_MESSAGE_INFO_SENSOR_OFFSETS, MAVLINK_MESSAGE_INFO_SET_MAG_OFFSETS, MAVLINK_MESSAGE_INFO_MEMINFO, MAVLINK_MESSAGE_INFO_AP_ADC, MAVLINK_MESSAGE_INFO_DIGICAM_CONFIGURE, MAVLINK_MESSAGE_INFO_DIGICAM_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_CONFIGURE, MAVLINK_MESSAGE_INFO_MOUNT_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_STATUS, MAVLINK_MESSAGE_INFO_FENCE_POINT, MAVLINK_MESSAGE_INFO_FENCE_FETCH_POINT, MAVLINK_MESSAGE_INFO_FENCE_STATUS, MAVLINK_MESSAGE_INFO_AHRS, MAVLINK_MESSAGE_INFO_SIMSTATE, MAVLINK_MESSAGE_INFO_HWSTATUS, MAVLINK_MESSAGE_INFO_RADIO, MAVLINK_MESSAGE_INFO_LIMITS_STATUS, MAVLINK_MESSAGE_INFO_WIND, MAVLINK_MESSAGE_INFO_DATA16, MAVLINK_MESSAGE_INFO_DATA32, MAVLINK_MESSAGE_INFO_DATA64, MAVLINK_MESSAGE_INFO_DATA96, MAVLINK_MESSAGE_INFO_RANGEFINDER, MAVLINK_MESSAGE_INFO_AIRSPEED_AUTOCAL, MAVLINK_MESSAGE_INFO_RALLY_POINT, MAVLINK_MESSAGE_INFO_RALLY_FETCH_POINT, MAVLINK_MESSAGE_INFO_COMPASSMOT_STATUS, MAVLINK_MESSAGE_INFO_AHRS2, MAVLINK_MESSAGE_INFO_CAMERA_STATUS, MAVLINK_MESSAGE_INFO_CAMERA_FEEDBACK, MAVLINK_MESSAGE_INFO_BATTERY2, MAVLINK_MESSAGE_INFO_AHRS3, MAVLINK_MESSAGE_INFO_AUTOPILOT_VERSION_REQUEST, MAVLINK_MESSAGE_INFO_REMOTE_LOG_DATA_BLOCK, MAVLINK_MESSAGE_INFO_REMOTE_LOG_BLOCK_STATUS, MAVLINK_MESSAGE_INFO_LED_CONTROL, MAVLINK_MESSAGE_INFO_MAG_CAL_PROGRESS, MAVLINK_MESSAGE_INFO_MAG_CAL_REPORT, MAVLINK_MESSAGE_INFO_EKF_STATUS_REPORT, MAVLINK_MESSAGE_INFO_PID_TUNING, MAVLINK_MESSAGE_INFO_DEEPSTALL, MAVLINK_MESSAGE_INFO_GIMBAL_REPORT, MAVLINK_MESSAGE_INFO_GIMBAL_CONTROL, MAVLINK_MESSAGE_INFO_GIMBAL_TORQUE_CMD_REPORT, MAVLINK_MESSAGE_INFO_GOPRO_HEARTBEAT, MAVLINK_MESSAGE_INFO_GOPRO_GET_REQUEST, MAVLINK_MESSAGE_INFO_GOPRO_GET_RESPONSE, MAVLINK_MESSAGE_INFO_GOPRO_SET_REQUEST, MAVLINK_MESSAGE_INFO_GOPRO_SET_RESPONSE, MAVLINK_MESSAGE_INFO_RPM, MAVLINK_MESSAGE_INFO_ESTIMATOR_STATUS, MAVLINK_MESSAGE_INFO_WIND_COV, MAVLINK_MESSAGE_INFO_GPS_INPUT, MAVLINK_MESSAGE_INFO_GPS_RTCM_DATA, MAVLINK_MESSAGE_INFO_HIGH_LATENCY, MAVLINK_MESSAGE_INFO_HIGH_LATENCY2, MAVLINK_MESSAGE_INFO_VIBRATION, MAVLINK_MESSAGE_INFO_HOME_POSITION, MAVLINK_MESSAGE_INFO_SET_HOME_POSITION, MAVLINK_MESSAGE_INFO_MESSAGE_INTERVAL, MAVLINK_MESSAGE_INFO_EXTENDED_SYS_STATE, MAVLINK_MESSAGE_INFO_ADSB_VEHICLE, MAVLINK_MESSAGE_INFO_COLLISION, MAVLINK_MESSAGE_INFO_V2_EXTENSION, MAVLINK_MESSAGE_INFO_MEMORY_VECT, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG, MAVLINK_MESSAGE_INFO_SETUP_SIGNING, MAVLINK_MESSAGE_INFO_BUTTON_CHANGE, MAVLINK_MESSAGE_INFO_PLAY_TUNE, MAVLINK_MESSAGE_INFO_CAMERA_INFORMATION, MAVLINK_MESSAGE_INFO_CAMERA_SETTINGS, MAVLINK_MESSAGE_INFO_STORAGE_INFORMATION, MAVLINK_MESSAGE_INFO_CAMERA_CAPTURE_STATUS, MAVLINK_MESSAGE_INFO_CAMERA_IMAGE_CAPTURED, MAVLINK_MESSAGE_INFO_FLIGHT_INFORMATION, MAVLINK_MESSAGE_INFO_MOUNT_ORIENTATION, MAVLINK_MESSAGE_INFO_LOGGING_DATA, MAVLINK_MESSAGE_INFO_LOGGING_DATA_ACKED, MAVLINK_MESSAGE_INFO_LOGGING_ACK, MAVLINK_MESSAGE_INFO_VIDEO_STREAM_INFORMATION, MAVLINK_MESSAGE_INFO_SET_VIDEO_STREAM_SETTINGS, MAVLINK_MESSAGE_INFO_WIFI_CONFIG_AP, MAVLINK_MESSAGE_INFO_PROTOCOL_VERSION, MAVLINK_MESSAGE_INFO_UAVCAN_NODE_STATUS, MAVLINK_MESSAGE_INFO_UAVCAN_NODE_INFO, MAVLINK_MESSAGE_INFO_PARAM_EXT_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_EXT_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_EXT_VALUE, MAVLINK_MESSAGE_INFO_PARAM_EXT_SET, MAVLINK_MESSAGE_INFO_PARAM_EXT_ACK, MAVLINK_MESSAGE_INFO_OBSTACLE_DISTANCE, MAVLINK_MESSAGE_INFO_ODOMETRY, MAVLINK_MESSAGE_INFO_UAVIONIX_ADSB_OUT_CFG, MAVLINK_MESSAGE_INFO_UAVIONIX_ADSB_OUT_DYNAMIC, MAVLINK_MESSAGE_INFO_UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT, MAVLINK_MESSAGE_INFO_DEVICE_OP_READ, MAVLINK_MESSAGE_INFO_DEVICE_OP_READ_REPLY, MAVLINK_MESSAGE_INFO_DEVICE_OP_WRITE, MAVLINK_MESSAGE_INFO_DEVICE_OP_WRITE_REPLY, MAVLINK_MESSAGE_INFO_ADAP_TUNING, MAVLINK_MESSAGE_INFO_VISION_POSITION_DELTA, MAVLINK_MESSAGE_INFO_AOA_SSA, MAVLINK_MESSAGE_INFO_ATMO_COMP_EXT, MAVLINK_MESSAGE_INFO_WOW_SENSOR, MAVLINK_MESSAGE_INFO_GPS_RNX_DATA, MAVLINK_MESSAGE_INFO_ICAROUS_HEARTBEAT, MAVLINK_MESSAGE_INFO_ICAROUS_KINEMATIC_BANDS} -# define MAVLINK_MESSAGE_NAMES {{ "ACTUATOR_CONTROL_TARGET", 140 }, { "ADAP_TUNING", 11010 }, { "ADSB_VEHICLE", 246 }, { "AHRS", 163 }, { "AHRS2", 178 }, { "AHRS3", 182 }, { "AIRSPEED_AUTOCAL", 174 }, { "ALTITUDE", 141 }, { "AOA_SSA", 11020 }, { "AP_ADC", 153 }, { "ATMO_COMP_EXT", 20006 }, { "ATTITUDE", 30 }, { "ATTITUDE_QUATERNION", 31 }, { "ATTITUDE_QUATERNION_COV", 61 }, { "ATTITUDE_TARGET", 83 }, { "ATT_POS_MOCAP", 138 }, { "AUTH_KEY", 7 }, { "AUTOPILOT_VERSION", 148 }, { "AUTOPILOT_VERSION_REQUEST", 183 }, { "BATTERY2", 181 }, { "BATTERY_STATUS", 147 }, { "BUTTON_CHANGE", 257 }, { "CAMERA_CAPTURE_STATUS", 262 }, { "CAMERA_FEEDBACK", 180 }, { "CAMERA_IMAGE_CAPTURED", 263 }, { "CAMERA_INFORMATION", 259 }, { "CAMERA_SETTINGS", 260 }, { "CAMERA_STATUS", 179 }, { "CAMERA_TRIGGER", 112 }, { "CHANGE_OPERATOR_CONTROL", 5 }, { "CHANGE_OPERATOR_CONTROL_ACK", 6 }, { "COLLISION", 247 }, { "COMMAND_ACK", 77 }, { "COMMAND_INT", 75 }, { "COMMAND_LONG", 76 }, { "COMPASSMOT_STATUS", 177 }, { "CONTROL_SYSTEM_STATE", 146 }, { "DATA16", 169 }, { "DATA32", 170 }, { "DATA64", 171 }, { "DATA96", 172 }, { "DATA_STREAM", 67 }, { "DATA_TRANSMISSION_HANDSHAKE", 130 }, { "DEBUG", 254 }, { "DEBUG_VECT", 250 }, { "DEEPSTALL", 195 }, { "DEVICE_OP_READ", 11000 }, { "DEVICE_OP_READ_REPLY", 11001 }, { "DEVICE_OP_WRITE", 11002 }, { "DEVICE_OP_WRITE_REPLY", 11003 }, { "DIGICAM_CONFIGURE", 154 }, { "DIGICAM_CONTROL", 155 }, { "DISTANCE_SENSOR", 132 }, { "EKF_STATUS_REPORT", 193 }, { "ENCAPSULATED_DATA", 131 }, { "ESTIMATOR_STATUS", 230 }, { "EXTENDED_SYS_STATE", 245 }, { "FENCE_FETCH_POINT", 161 }, { "FENCE_POINT", 160 }, { "FENCE_STATUS", 162 }, { "FILE_TRANSFER_PROTOCOL", 110 }, { "FLIGHT_INFORMATION", 264 }, { "FOLLOW_TARGET", 144 }, { "GIMBAL_CONTROL", 201 }, { "GIMBAL_REPORT", 200 }, { "GIMBAL_TORQUE_CMD_REPORT", 214 }, { "GLOBAL_POSITION_INT", 33 }, { "GLOBAL_POSITION_INT_COV", 63 }, { "GLOBAL_VISION_POSITION_ESTIMATE", 101 }, { "GOPRO_GET_REQUEST", 216 }, { "GOPRO_GET_RESPONSE", 217 }, { "GOPRO_HEARTBEAT", 215 }, { "GOPRO_SET_REQUEST", 218 }, { "GOPRO_SET_RESPONSE", 219 }, { "GPS2_RAW", 124 }, { "GPS2_RTK", 128 }, { "GPS_GLOBAL_ORIGIN", 49 }, { "GPS_INJECT_DATA", 123 }, { "GPS_INPUT", 232 }, { "GPS_RAW_INT", 24 }, { "GPS_RNX_DATA", 20008 }, { "GPS_RTCM_DATA", 233 }, { "GPS_RTK", 127 }, { "GPS_STATUS", 25 }, { "HEARTBEAT", 0 }, { "HIGHRES_IMU", 105 }, { "HIGH_LATENCY", 234 }, { "HIGH_LATENCY2", 235 }, { "HIL_ACTUATOR_CONTROLS", 93 }, { "HIL_CONTROLS", 91 }, { "HIL_GPS", 113 }, { "HIL_OPTICAL_FLOW", 114 }, { "HIL_RC_INPUTS_RAW", 92 }, { "HIL_SENSOR", 107 }, { "HIL_STATE", 90 }, { "HIL_STATE_QUATERNION", 115 }, { "HOME_POSITION", 242 }, { "HWSTATUS", 165 }, { "ICAROUS_HEARTBEAT", 42000 }, { "ICAROUS_KINEMATIC_BANDS", 42001 }, { "LANDING_TARGET", 149 }, { "LED_CONTROL", 186 }, { "LIMITS_STATUS", 167 }, { "LOCAL_POSITION_NED", 32 }, { "LOCAL_POSITION_NED_COV", 64 }, { "LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET", 89 }, { "LOGGING_ACK", 268 }, { "LOGGING_DATA", 266 }, { "LOGGING_DATA_ACKED", 267 }, { "LOG_DATA", 120 }, { "LOG_ENTRY", 118 }, { "LOG_ERASE", 121 }, { "LOG_REQUEST_DATA", 119 }, { "LOG_REQUEST_END", 122 }, { "LOG_REQUEST_LIST", 117 }, { "MAG_CAL_PROGRESS", 191 }, { "MAG_CAL_REPORT", 192 }, { "MANUAL_CONTROL", 69 }, { "MANUAL_SETPOINT", 81 }, { "MEMINFO", 152 }, { "MEMORY_VECT", 249 }, { "MESSAGE_INTERVAL", 244 }, { "MISSION_ACK", 47 }, { "MISSION_CLEAR_ALL", 45 }, { "MISSION_COUNT", 44 }, { "MISSION_CURRENT", 42 }, { "MISSION_ITEM", 39 }, { "MISSION_ITEM_INT", 73 }, { "MISSION_ITEM_REACHED", 46 }, { "MISSION_REQUEST", 40 }, { "MISSION_REQUEST_INT", 51 }, { "MISSION_REQUEST_LIST", 43 }, { "MISSION_REQUEST_PARTIAL_LIST", 37 }, { "MISSION_SET_CURRENT", 41 }, { "MISSION_WRITE_PARTIAL_LIST", 38 }, { "MOUNT_CONFIGURE", 156 }, { "MOUNT_CONTROL", 157 }, { "MOUNT_ORIENTATION", 265 }, { "MOUNT_STATUS", 158 }, { "NAMED_VALUE_FLOAT", 251 }, { "NAMED_VALUE_INT", 252 }, { "NAV_CONTROLLER_OUTPUT", 62 }, { "OBSTACLE_DISTANCE", 330 }, { "ODOMETRY", 331 }, { "OPTICAL_FLOW", 100 }, { "OPTICAL_FLOW_RAD", 106 }, { "PARAM_EXT_ACK", 324 }, { "PARAM_EXT_REQUEST_LIST", 321 }, { "PARAM_EXT_REQUEST_READ", 320 }, { "PARAM_EXT_SET", 323 }, { "PARAM_EXT_VALUE", 322 }, { "PARAM_MAP_RC", 50 }, { "PARAM_REQUEST_LIST", 21 }, { "PARAM_REQUEST_READ", 20 }, { "PARAM_SET", 23 }, { "PARAM_VALUE", 22 }, { "PID_TUNING", 194 }, { "PING", 4 }, { "PLAY_TUNE", 258 }, { "POSITION_TARGET_GLOBAL_INT", 87 }, { "POSITION_TARGET_LOCAL_NED", 85 }, { "POWER_STATUS", 125 }, { "PROTOCOL_VERSION", 300 }, { "RADIO", 166 }, { "RADIO_STATUS", 109 }, { "RALLY_FETCH_POINT", 176 }, { "RALLY_POINT", 175 }, { "RANGEFINDER", 173 }, { "RAW_IMU", 27 }, { "RAW_PRESSURE", 28 }, { "RC_CHANNELS", 65 }, { "RC_CHANNELS_OVERRIDE", 70 }, { "RC_CHANNELS_RAW", 35 }, { "RC_CHANNELS_SCALED", 34 }, { "REMOTE_LOG_BLOCK_STATUS", 185 }, { "REMOTE_LOG_DATA_BLOCK", 184 }, { "REQUEST_DATA_STREAM", 66 }, { "RESOURCE_REQUEST", 142 }, { "RPM", 226 }, { "SAFETY_ALLOWED_AREA", 55 }, { "SAFETY_SET_ALLOWED_AREA", 54 }, { "SCALED_IMU", 26 }, { "SCALED_IMU2", 116 }, { "SCALED_IMU3", 129 }, { "SCALED_PRESSURE", 29 }, { "SCALED_PRESSURE2", 137 }, { "SCALED_PRESSURE3", 143 }, { "SENSOR_OFFSETS", 150 }, { "SERIAL_CONTROL", 126 }, { "SERVO_OUTPUT_RAW", 36 }, { "SETUP_SIGNING", 256 }, { "SET_ACTUATOR_CONTROL_TARGET", 139 }, { "SET_ATTITUDE_TARGET", 82 }, { "SET_GPS_GLOBAL_ORIGIN", 48 }, { "SET_HOME_POSITION", 243 }, { "SET_MAG_OFFSETS", 151 }, { "SET_MODE", 11 }, { "SET_POSITION_TARGET_GLOBAL_INT", 86 }, { "SET_POSITION_TARGET_LOCAL_NED", 84 }, { "SET_VIDEO_STREAM_SETTINGS", 270 }, { "SIMSTATE", 164 }, { "SIM_STATE", 108 }, { "STATUSTEXT", 253 }, { "STORAGE_INFORMATION", 261 }, { "SYSTEM_TIME", 2 }, { "SYS_STATUS", 1 }, { "TERRAIN_CHECK", 135 }, { "TERRAIN_DATA", 134 }, { "TERRAIN_REPORT", 136 }, { "TERRAIN_REQUEST", 133 }, { "TIMESYNC", 111 }, { "UAVCAN_NODE_INFO", 311 }, { "UAVCAN_NODE_STATUS", 310 }, { "UAVIONIX_ADSB_OUT_CFG", 10001 }, { "UAVIONIX_ADSB_OUT_DYNAMIC", 10002 }, { "UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT", 10003 }, { "V2_EXTENSION", 248 }, { "VFR_HUD", 74 }, { "VIBRATION", 241 }, { "VICON_POSITION_ESTIMATE", 104 }, { "VIDEO_STREAM_INFORMATION", 269 }, { "VISION_POSITION_DELTA", 11011 }, { "VISION_POSITION_ESTIMATE", 102 }, { "VISION_SPEED_ESTIMATE", 103 }, { "WIFI_CONFIG_AP", 299 }, { "WIND", 168 }, { "WIND_COV", 231 }, { "WOW_SENSOR", 20007 }} +# define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, MAVLINK_MESSAGE_INFO_SET_MODE, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_WRITE_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_ITEM, MAVLINK_MESSAGE_INFO_MISSION_REQUEST, MAVLINK_MESSAGE_INFO_MISSION_SET_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_LIST, MAVLINK_MESSAGE_INFO_MISSION_COUNT, MAVLINK_MESSAGE_INFO_MISSION_CLEAR_ALL, MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED, MAVLINK_MESSAGE_INFO_MISSION_ACK, MAVLINK_MESSAGE_INFO_SET_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_PARAM_MAP_RC, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_INT, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION_COV, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT_COV, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_COV, MAVLINK_MESSAGE_INFO_RC_CHANNELS, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_DATA_STREAM, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, MAVLINK_MESSAGE_INFO_MISSION_ITEM_INT, MAVLINK_MESSAGE_INFO_VFR_HUD, MAVLINK_MESSAGE_INFO_COMMAND_INT, MAVLINK_MESSAGE_INFO_COMMAND_LONG, MAVLINK_MESSAGE_INFO_COMMAND_ACK, MAVLINK_MESSAGE_INFO_MANUAL_SETPOINT, MAVLINK_MESSAGE_INFO_SET_ATTITUDE_TARGET, MAVLINK_MESSAGE_INFO_ATTITUDE_TARGET, MAVLINK_MESSAGE_INFO_SET_POSITION_TARGET_LOCAL_NED, MAVLINK_MESSAGE_INFO_POSITION_TARGET_LOCAL_NED, MAVLINK_MESSAGE_INFO_SET_POSITION_TARGET_GLOBAL_INT, MAVLINK_MESSAGE_INFO_POSITION_TARGET_GLOBAL_INT, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_HIL_RC_INPUTS_RAW, MAVLINK_MESSAGE_INFO_HIL_ACTUATOR_CONTROLS, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_GLOBAL_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_SPEED_ESTIMATE, MAVLINK_MESSAGE_INFO_VICON_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_HIGHRES_IMU, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW_RAD, MAVLINK_MESSAGE_INFO_HIL_SENSOR, MAVLINK_MESSAGE_INFO_SIM_STATE, MAVLINK_MESSAGE_INFO_RADIO_STATUS, MAVLINK_MESSAGE_INFO_FILE_TRANSFER_PROTOCOL, MAVLINK_MESSAGE_INFO_TIMESYNC, MAVLINK_MESSAGE_INFO_CAMERA_TRIGGER, MAVLINK_MESSAGE_INFO_HIL_GPS, MAVLINK_MESSAGE_INFO_HIL_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_HIL_STATE_QUATERNION, MAVLINK_MESSAGE_INFO_SCALED_IMU2, MAVLINK_MESSAGE_INFO_LOG_REQUEST_LIST, MAVLINK_MESSAGE_INFO_LOG_ENTRY, MAVLINK_MESSAGE_INFO_LOG_REQUEST_DATA, MAVLINK_MESSAGE_INFO_LOG_DATA, MAVLINK_MESSAGE_INFO_LOG_ERASE, MAVLINK_MESSAGE_INFO_LOG_REQUEST_END, MAVLINK_MESSAGE_INFO_GPS_INJECT_DATA, MAVLINK_MESSAGE_INFO_GPS2_RAW, MAVLINK_MESSAGE_INFO_POWER_STATUS, MAVLINK_MESSAGE_INFO_SERIAL_CONTROL, MAVLINK_MESSAGE_INFO_GPS_RTK, MAVLINK_MESSAGE_INFO_GPS2_RTK, MAVLINK_MESSAGE_INFO_SCALED_IMU3, MAVLINK_MESSAGE_INFO_DATA_TRANSMISSION_HANDSHAKE, MAVLINK_MESSAGE_INFO_ENCAPSULATED_DATA, MAVLINK_MESSAGE_INFO_DISTANCE_SENSOR, MAVLINK_MESSAGE_INFO_TERRAIN_REQUEST, MAVLINK_MESSAGE_INFO_TERRAIN_DATA, MAVLINK_MESSAGE_INFO_TERRAIN_CHECK, MAVLINK_MESSAGE_INFO_TERRAIN_REPORT, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE2, MAVLINK_MESSAGE_INFO_ATT_POS_MOCAP, MAVLINK_MESSAGE_INFO_SET_ACTUATOR_CONTROL_TARGET, MAVLINK_MESSAGE_INFO_ACTUATOR_CONTROL_TARGET, MAVLINK_MESSAGE_INFO_ALTITUDE, MAVLINK_MESSAGE_INFO_RESOURCE_REQUEST, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE3, MAVLINK_MESSAGE_INFO_FOLLOW_TARGET, MAVLINK_MESSAGE_INFO_CONTROL_SYSTEM_STATE, MAVLINK_MESSAGE_INFO_BATTERY_STATUS, MAVLINK_MESSAGE_INFO_AUTOPILOT_VERSION, MAVLINK_MESSAGE_INFO_LANDING_TARGET, MAVLINK_MESSAGE_INFO_SENSOR_OFFSETS, MAVLINK_MESSAGE_INFO_SET_MAG_OFFSETS, MAVLINK_MESSAGE_INFO_MEMINFO, MAVLINK_MESSAGE_INFO_AP_ADC, MAVLINK_MESSAGE_INFO_DIGICAM_CONFIGURE, MAVLINK_MESSAGE_INFO_DIGICAM_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_CONFIGURE, MAVLINK_MESSAGE_INFO_MOUNT_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_STATUS, MAVLINK_MESSAGE_INFO_FENCE_POINT, MAVLINK_MESSAGE_INFO_FENCE_FETCH_POINT, MAVLINK_MESSAGE_INFO_FENCE_STATUS, MAVLINK_MESSAGE_INFO_AHRS, MAVLINK_MESSAGE_INFO_SIMSTATE, MAVLINK_MESSAGE_INFO_HWSTATUS, MAVLINK_MESSAGE_INFO_RADIO, MAVLINK_MESSAGE_INFO_LIMITS_STATUS, MAVLINK_MESSAGE_INFO_WIND, MAVLINK_MESSAGE_INFO_DATA16, MAVLINK_MESSAGE_INFO_DATA32, MAVLINK_MESSAGE_INFO_DATA64, MAVLINK_MESSAGE_INFO_DATA96, MAVLINK_MESSAGE_INFO_RANGEFINDER, MAVLINK_MESSAGE_INFO_AIRSPEED_AUTOCAL, MAVLINK_MESSAGE_INFO_RALLY_POINT, MAVLINK_MESSAGE_INFO_RALLY_FETCH_POINT, MAVLINK_MESSAGE_INFO_COMPASSMOT_STATUS, MAVLINK_MESSAGE_INFO_AHRS2, MAVLINK_MESSAGE_INFO_CAMERA_STATUS, MAVLINK_MESSAGE_INFO_CAMERA_FEEDBACK, MAVLINK_MESSAGE_INFO_BATTERY2, MAVLINK_MESSAGE_INFO_AHRS3, MAVLINK_MESSAGE_INFO_AUTOPILOT_VERSION_REQUEST, MAVLINK_MESSAGE_INFO_REMOTE_LOG_DATA_BLOCK, MAVLINK_MESSAGE_INFO_REMOTE_LOG_BLOCK_STATUS, MAVLINK_MESSAGE_INFO_LED_CONTROL, MAVLINK_MESSAGE_INFO_MAG_CAL_PROGRESS, MAVLINK_MESSAGE_INFO_MAG_CAL_REPORT, MAVLINK_MESSAGE_INFO_EKF_STATUS_REPORT, MAVLINK_MESSAGE_INFO_PID_TUNING, MAVLINK_MESSAGE_INFO_DEEPSTALL, MAVLINK_MESSAGE_INFO_GIMBAL_REPORT, MAVLINK_MESSAGE_INFO_GIMBAL_CONTROL, MAVLINK_MESSAGE_INFO_GIMBAL_TORQUE_CMD_REPORT, MAVLINK_MESSAGE_INFO_GOPRO_HEARTBEAT, MAVLINK_MESSAGE_INFO_GOPRO_GET_REQUEST, MAVLINK_MESSAGE_INFO_GOPRO_GET_RESPONSE, MAVLINK_MESSAGE_INFO_GOPRO_SET_REQUEST, MAVLINK_MESSAGE_INFO_GOPRO_SET_RESPONSE, MAVLINK_MESSAGE_INFO_RPM, MAVLINK_MESSAGE_INFO_ESTIMATOR_STATUS, MAVLINK_MESSAGE_INFO_WIND_COV, MAVLINK_MESSAGE_INFO_GPS_INPUT, MAVLINK_MESSAGE_INFO_GPS_RTCM_DATA, MAVLINK_MESSAGE_INFO_HIGH_LATENCY, MAVLINK_MESSAGE_INFO_HIGH_LATENCY2, MAVLINK_MESSAGE_INFO_VIBRATION, MAVLINK_MESSAGE_INFO_HOME_POSITION, MAVLINK_MESSAGE_INFO_SET_HOME_POSITION, MAVLINK_MESSAGE_INFO_MESSAGE_INTERVAL, MAVLINK_MESSAGE_INFO_EXTENDED_SYS_STATE, MAVLINK_MESSAGE_INFO_ADSB_VEHICLE, MAVLINK_MESSAGE_INFO_COLLISION, MAVLINK_MESSAGE_INFO_V2_EXTENSION, MAVLINK_MESSAGE_INFO_MEMORY_VECT, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG, MAVLINK_MESSAGE_INFO_SETUP_SIGNING, MAVLINK_MESSAGE_INFO_BUTTON_CHANGE, MAVLINK_MESSAGE_INFO_PLAY_TUNE, MAVLINK_MESSAGE_INFO_CAMERA_INFORMATION, MAVLINK_MESSAGE_INFO_CAMERA_SETTINGS, MAVLINK_MESSAGE_INFO_STORAGE_INFORMATION, MAVLINK_MESSAGE_INFO_CAMERA_CAPTURE_STATUS, MAVLINK_MESSAGE_INFO_CAMERA_IMAGE_CAPTURED, MAVLINK_MESSAGE_INFO_FLIGHT_INFORMATION, MAVLINK_MESSAGE_INFO_MOUNT_ORIENTATION, MAVLINK_MESSAGE_INFO_LOGGING_DATA, MAVLINK_MESSAGE_INFO_LOGGING_DATA_ACKED, MAVLINK_MESSAGE_INFO_LOGGING_ACK, MAVLINK_MESSAGE_INFO_VIDEO_STREAM_INFORMATION, MAVLINK_MESSAGE_INFO_SET_VIDEO_STREAM_SETTINGS, MAVLINK_MESSAGE_INFO_WIFI_CONFIG_AP, MAVLINK_MESSAGE_INFO_PROTOCOL_VERSION, MAVLINK_MESSAGE_INFO_UAVCAN_NODE_STATUS, MAVLINK_MESSAGE_INFO_UAVCAN_NODE_INFO, MAVLINK_MESSAGE_INFO_PARAM_EXT_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_EXT_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_EXT_VALUE, MAVLINK_MESSAGE_INFO_PARAM_EXT_SET, MAVLINK_MESSAGE_INFO_PARAM_EXT_ACK, MAVLINK_MESSAGE_INFO_OBSTACLE_DISTANCE, MAVLINK_MESSAGE_INFO_ODOMETRY, MAVLINK_MESSAGE_INFO_UAVIONIX_ADSB_OUT_CFG, MAVLINK_MESSAGE_INFO_UAVIONIX_ADSB_OUT_DYNAMIC, MAVLINK_MESSAGE_INFO_UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT, MAVLINK_MESSAGE_INFO_DEVICE_OP_READ, MAVLINK_MESSAGE_INFO_DEVICE_OP_READ_REPLY, MAVLINK_MESSAGE_INFO_DEVICE_OP_WRITE, MAVLINK_MESSAGE_INFO_DEVICE_OP_WRITE_REPLY, MAVLINK_MESSAGE_INFO_ADAP_TUNING, MAVLINK_MESSAGE_INFO_VISION_POSITION_DELTA, MAVLINK_MESSAGE_INFO_AOA_SSA, MAVLINK_MESSAGE_INFO_ATMO_COMP_EXT, MAVLINK_MESSAGE_INFO_WOW_SENSOR, MAVLINK_MESSAGE_INFO_GPS_RNX_DATA, MAVLINK_MESSAGE_INFO_EMB_ATMO_COM, MAVLINK_MESSAGE_INFO_RADAR_ALTM, MAVLINK_MESSAGE_INFO_INS1, MAVLINK_MESSAGE_INFO_INS2, MAVLINK_MESSAGE_INFO_TUB_LND, MAVLINK_MESSAGE_INFO_SERVOS, MAVLINK_MESSAGE_INFO_PUBIT_RESULT, MAVLINK_MESSAGE_INFO_PBIT_RESULT, MAVLINK_MESSAGE_INFO_IFBIT_RESULT, MAVLINK_MESSAGE_INFO_ICAROUS_HEARTBEAT, MAVLINK_MESSAGE_INFO_ICAROUS_KINEMATIC_BANDS} +# define MAVLINK_MESSAGE_NAMES {{ "ACTUATOR_CONTROL_TARGET", 140 }, { "ADAP_TUNING", 11010 }, { "ADSB_VEHICLE", 246 }, { "AHRS", 163 }, { "AHRS2", 178 }, { "AHRS3", 182 }, { "AIRSPEED_AUTOCAL", 174 }, { "ALTITUDE", 141 }, { "AOA_SSA", 11020 }, { "AP_ADC", 153 }, { "ATMO_COMP_EXT", 20006 }, { "ATTITUDE", 30 }, { "ATTITUDE_QUATERNION", 31 }, { "ATTITUDE_QUATERNION_COV", 61 }, { "ATTITUDE_TARGET", 83 }, { "ATT_POS_MOCAP", 138 }, { "AUTH_KEY", 7 }, { "AUTOPILOT_VERSION", 148 }, { "AUTOPILOT_VERSION_REQUEST", 183 }, { "BATTERY2", 181 }, { "BATTERY_STATUS", 147 }, { "BUTTON_CHANGE", 257 }, { "CAMERA_CAPTURE_STATUS", 262 }, { "CAMERA_FEEDBACK", 180 }, { "CAMERA_IMAGE_CAPTURED", 263 }, { "CAMERA_INFORMATION", 259 }, { "CAMERA_SETTINGS", 260 }, { "CAMERA_STATUS", 179 }, { "CAMERA_TRIGGER", 112 }, { "CHANGE_OPERATOR_CONTROL", 5 }, { "CHANGE_OPERATOR_CONTROL_ACK", 6 }, { "COLLISION", 247 }, { "COMMAND_ACK", 77 }, { "COMMAND_INT", 75 }, { "COMMAND_LONG", 76 }, { "COMPASSMOT_STATUS", 177 }, { "CONTROL_SYSTEM_STATE", 146 }, { "DATA16", 169 }, { "DATA32", 170 }, { "DATA64", 171 }, { "DATA96", 172 }, { "DATA_STREAM", 67 }, { "DATA_TRANSMISSION_HANDSHAKE", 130 }, { "DEBUG", 254 }, { "DEBUG_VECT", 250 }, { "DEEPSTALL", 195 }, { "DEVICE_OP_READ", 11000 }, { "DEVICE_OP_READ_REPLY", 11001 }, { "DEVICE_OP_WRITE", 11002 }, { "DEVICE_OP_WRITE_REPLY", 11003 }, { "DIGICAM_CONFIGURE", 154 }, { "DIGICAM_CONTROL", 155 }, { "DISTANCE_SENSOR", 132 }, { "EKF_STATUS_REPORT", 193 }, { "EMB_ATMO_COM", 20101 }, { "ENCAPSULATED_DATA", 131 }, { "ESTIMATOR_STATUS", 230 }, { "EXTENDED_SYS_STATE", 245 }, { "FENCE_FETCH_POINT", 161 }, { "FENCE_POINT", 160 }, { "FENCE_STATUS", 162 }, { "FILE_TRANSFER_PROTOCOL", 110 }, { "FLIGHT_INFORMATION", 264 }, { "FOLLOW_TARGET", 144 }, { "GIMBAL_CONTROL", 201 }, { "GIMBAL_REPORT", 200 }, { "GIMBAL_TORQUE_CMD_REPORT", 214 }, { "GLOBAL_POSITION_INT", 33 }, { "GLOBAL_POSITION_INT_COV", 63 }, { "GLOBAL_VISION_POSITION_ESTIMATE", 101 }, { "GOPRO_GET_REQUEST", 216 }, { "GOPRO_GET_RESPONSE", 217 }, { "GOPRO_HEARTBEAT", 215 }, { "GOPRO_SET_REQUEST", 218 }, { "GOPRO_SET_RESPONSE", 219 }, { "GPS2_RAW", 124 }, { "GPS2_RTK", 128 }, { "GPS_GLOBAL_ORIGIN", 49 }, { "GPS_INJECT_DATA", 123 }, { "GPS_INPUT", 232 }, { "GPS_RAW_INT", 24 }, { "GPS_RNX_DATA", 20008 }, { "GPS_RTCM_DATA", 233 }, { "GPS_RTK", 127 }, { "GPS_STATUS", 25 }, { "HEARTBEAT", 0 }, { "HIGHRES_IMU", 105 }, { "HIGH_LATENCY", 234 }, { "HIGH_LATENCY2", 235 }, { "HIL_ACTUATOR_CONTROLS", 93 }, { "HIL_CONTROLS", 91 }, { "HIL_GPS", 113 }, { "HIL_OPTICAL_FLOW", 114 }, { "HIL_RC_INPUTS_RAW", 92 }, { "HIL_SENSOR", 107 }, { "HIL_STATE", 90 }, { "HIL_STATE_QUATERNION", 115 }, { "HOME_POSITION", 242 }, { "HWSTATUS", 165 }, { "ICAROUS_HEARTBEAT", 42000 }, { "ICAROUS_KINEMATIC_BANDS", 42001 }, { "IFBIT_RESULT", 20109 }, { "INS1", 20103 }, { "INS2", 20104 }, { "LANDING_TARGET", 149 }, { "LED_CONTROL", 186 }, { "LIMITS_STATUS", 167 }, { "LOCAL_POSITION_NED", 32 }, { "LOCAL_POSITION_NED_COV", 64 }, { "LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET", 89 }, { "LOGGING_ACK", 268 }, { "LOGGING_DATA", 266 }, { "LOGGING_DATA_ACKED", 267 }, { "LOG_DATA", 120 }, { "LOG_ENTRY", 118 }, { "LOG_ERASE", 121 }, { "LOG_REQUEST_DATA", 119 }, { "LOG_REQUEST_END", 122 }, { "LOG_REQUEST_LIST", 117 }, { "MAG_CAL_PROGRESS", 191 }, { "MAG_CAL_REPORT", 192 }, { "MANUAL_CONTROL", 69 }, { "MANUAL_SETPOINT", 81 }, { "MEMINFO", 152 }, { "MEMORY_VECT", 249 }, { "MESSAGE_INTERVAL", 244 }, { "MISSION_ACK", 47 }, { "MISSION_CLEAR_ALL", 45 }, { "MISSION_COUNT", 44 }, { "MISSION_CURRENT", 42 }, { "MISSION_ITEM", 39 }, { "MISSION_ITEM_INT", 73 }, { "MISSION_ITEM_REACHED", 46 }, { "MISSION_REQUEST", 40 }, { "MISSION_REQUEST_INT", 51 }, { "MISSION_REQUEST_LIST", 43 }, { "MISSION_REQUEST_PARTIAL_LIST", 37 }, { "MISSION_SET_CURRENT", 41 }, { "MISSION_WRITE_PARTIAL_LIST", 38 }, { "MOUNT_CONFIGURE", 156 }, { "MOUNT_CONTROL", 157 }, { "MOUNT_ORIENTATION", 265 }, { "MOUNT_STATUS", 158 }, { "NAMED_VALUE_FLOAT", 251 }, { "NAMED_VALUE_INT", 252 }, { "NAV_CONTROLLER_OUTPUT", 62 }, { "OBSTACLE_DISTANCE", 330 }, { "ODOMETRY", 331 }, { "OPTICAL_FLOW", 100 }, { "OPTICAL_FLOW_RAD", 106 }, { "PARAM_EXT_ACK", 324 }, { "PARAM_EXT_REQUEST_LIST", 321 }, { "PARAM_EXT_REQUEST_READ", 320 }, { "PARAM_EXT_SET", 323 }, { "PARAM_EXT_VALUE", 322 }, { "PARAM_MAP_RC", 50 }, { "PARAM_REQUEST_LIST", 21 }, { "PARAM_REQUEST_READ", 20 }, { "PARAM_SET", 23 }, { "PARAM_VALUE", 22 }, { "PBIT_RESULT", 20108 }, { "PID_TUNING", 194 }, { "PING", 4 }, { "PLAY_TUNE", 258 }, { "POSITION_TARGET_GLOBAL_INT", 87 }, { "POSITION_TARGET_LOCAL_NED", 85 }, { "POWER_STATUS", 125 }, { "PROTOCOL_VERSION", 300 }, { "PUBIT_RESULT", 20107 }, { "RADAR_ALTM", 20102 }, { "RADIO", 166 }, { "RADIO_STATUS", 109 }, { "RALLY_FETCH_POINT", 176 }, { "RALLY_POINT", 175 }, { "RANGEFINDER", 173 }, { "RAW_IMU", 27 }, { "RAW_PRESSURE", 28 }, { "RC_CHANNELS", 65 }, { "RC_CHANNELS_OVERRIDE", 70 }, { "RC_CHANNELS_RAW", 35 }, { "RC_CHANNELS_SCALED", 34 }, { "REMOTE_LOG_BLOCK_STATUS", 185 }, { "REMOTE_LOG_DATA_BLOCK", 184 }, { "REQUEST_DATA_STREAM", 66 }, { "RESOURCE_REQUEST", 142 }, { "RPM", 226 }, { "SAFETY_ALLOWED_AREA", 55 }, { "SAFETY_SET_ALLOWED_AREA", 54 }, { "SCALED_IMU", 26 }, { "SCALED_IMU2", 116 }, { "SCALED_IMU3", 129 }, { "SCALED_PRESSURE", 29 }, { "SCALED_PRESSURE2", 137 }, { "SCALED_PRESSURE3", 143 }, { "SENSOR_OFFSETS", 150 }, { "SERIAL_CONTROL", 126 }, { "SERVOS", 20106 }, { "SERVO_OUTPUT_RAW", 36 }, { "SETUP_SIGNING", 256 }, { "SET_ACTUATOR_CONTROL_TARGET", 139 }, { "SET_ATTITUDE_TARGET", 82 }, { "SET_GPS_GLOBAL_ORIGIN", 48 }, { "SET_HOME_POSITION", 243 }, { "SET_MAG_OFFSETS", 151 }, { "SET_MODE", 11 }, { "SET_POSITION_TARGET_GLOBAL_INT", 86 }, { "SET_POSITION_TARGET_LOCAL_NED", 84 }, { "SET_VIDEO_STREAM_SETTINGS", 270 }, { "SIMSTATE", 164 }, { "SIM_STATE", 108 }, { "STATUSTEXT", 253 }, { "STORAGE_INFORMATION", 261 }, { "SYSTEM_TIME", 2 }, { "SYS_STATUS", 1 }, { "TERRAIN_CHECK", 135 }, { "TERRAIN_DATA", 134 }, { "TERRAIN_REPORT", 136 }, { "TERRAIN_REQUEST", 133 }, { "TIMESYNC", 111 }, { "TUB_LND", 20105 }, { "UAVCAN_NODE_INFO", 311 }, { "UAVCAN_NODE_STATUS", 310 }, { "UAVIONIX_ADSB_OUT_CFG", 10001 }, { "UAVIONIX_ADSB_OUT_DYNAMIC", 10002 }, { "UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT", 10003 }, { "V2_EXTENSION", 248 }, { "VFR_HUD", 74 }, { "VIBRATION", 241 }, { "VICON_POSITION_ESTIMATE", 104 }, { "VIDEO_STREAM_INFORMATION", 269 }, { "VISION_POSITION_DELTA", 11011 }, { "VISION_POSITION_ESTIMATE", 102 }, { "VISION_SPEED_ESTIMATE", 103 }, { "WIFI_CONFIG_AP", 299 }, { "WIND", 168 }, { "WIND_COV", 231 }, { "WOW_SENSOR", 20007 }} # if MAVLINK_COMMAND_24BIT # include "../mavlink_get_info.h" # endif diff --git a/ardupilotmega/mavlink_msg_emb_atmo_com.h b/ardupilotmega/mavlink_msg_emb_atmo_com.h new file mode 100644 index 0000000..81d624e --- /dev/null +++ b/ardupilotmega/mavlink_msg_emb_atmo_com.h @@ -0,0 +1,363 @@ +#pragma once +// MESSAGE EMB_ATMO_COM PACKING + +#define MAVLINK_MSG_ID_EMB_ATMO_COM 20101 + +MAVPACKED( +typedef struct __mavlink_emb_atmo_com_t { + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + float Airspeed; /*< Magnitude of air velocity [m/s]*/ + float beta; /*< Sideslip angle [deg]*/ + float alpha; /*< Angle of attack [deg]*/ + float ps; /*< Static pressure [Pa]*/ + float qbar; /*< Dynamic pressure [Pa]*/ + uint8_t seq; /*< sequeue index*/ +}) mavlink_emb_atmo_com_t; + +#define MAVLINK_MSG_ID_EMB_ATMO_COM_LEN 25 +#define MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN 25 +#define MAVLINK_MSG_ID_20101_LEN 25 +#define MAVLINK_MSG_ID_20101_MIN_LEN 25 + +#define MAVLINK_MSG_ID_EMB_ATMO_COM_CRC 87 +#define MAVLINK_MSG_ID_20101_CRC 87 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_EMB_ATMO_COM { \ + 20101, \ + "EMB_ATMO_COM", \ + 7, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_emb_atmo_com_t, time_boot_ms) }, \ + { "Airspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_emb_atmo_com_t, Airspeed) }, \ + { "beta", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_emb_atmo_com_t, beta) }, \ + { "alpha", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_emb_atmo_com_t, alpha) }, \ + { "ps", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_emb_atmo_com_t, ps) }, \ + { "qbar", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_emb_atmo_com_t, qbar) }, \ + { "seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 24, offsetof(mavlink_emb_atmo_com_t, seq) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_EMB_ATMO_COM { \ + "EMB_ATMO_COM", \ + 7, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_emb_atmo_com_t, time_boot_ms) }, \ + { "Airspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_emb_atmo_com_t, Airspeed) }, \ + { "beta", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_emb_atmo_com_t, beta) }, \ + { "alpha", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_emb_atmo_com_t, alpha) }, \ + { "ps", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_emb_atmo_com_t, ps) }, \ + { "qbar", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_emb_atmo_com_t, qbar) }, \ + { "seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 24, offsetof(mavlink_emb_atmo_com_t, seq) }, \ + } \ +} +#endif + +/** + * @brief Pack a emb_atmo_com message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param Airspeed Magnitude of air velocity [m/s] + * @param beta Sideslip angle [deg] + * @param alpha Angle of attack [deg] + * @param ps Static pressure [Pa] + * @param qbar Dynamic pressure [Pa] + * @param seq sequeue index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_emb_atmo_com_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, float Airspeed, float beta, float alpha, float ps, float qbar, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_EMB_ATMO_COM_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_float(buf, 4, Airspeed); + _mav_put_float(buf, 8, beta); + _mav_put_float(buf, 12, alpha); + _mav_put_float(buf, 16, ps); + _mav_put_float(buf, 20, qbar); + _mav_put_uint8_t(buf, 24, seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN); +#else + mavlink_emb_atmo_com_t packet; + packet.time_boot_ms = time_boot_ms; + packet.Airspeed = Airspeed; + packet.beta = beta; + packet.alpha = alpha; + packet.ps = ps; + packet.qbar = qbar; + packet.seq = seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_EMB_ATMO_COM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_CRC); +} + +/** + * @brief Pack a emb_atmo_com message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param Airspeed Magnitude of air velocity [m/s] + * @param beta Sideslip angle [deg] + * @param alpha Angle of attack [deg] + * @param ps Static pressure [Pa] + * @param qbar Dynamic pressure [Pa] + * @param seq sequeue index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_emb_atmo_com_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,float Airspeed,float beta,float alpha,float ps,float qbar,uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_EMB_ATMO_COM_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_float(buf, 4, Airspeed); + _mav_put_float(buf, 8, beta); + _mav_put_float(buf, 12, alpha); + _mav_put_float(buf, 16, ps); + _mav_put_float(buf, 20, qbar); + _mav_put_uint8_t(buf, 24, seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN); +#else + mavlink_emb_atmo_com_t packet; + packet.time_boot_ms = time_boot_ms; + packet.Airspeed = Airspeed; + packet.beta = beta; + packet.alpha = alpha; + packet.ps = ps; + packet.qbar = qbar; + packet.seq = seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_EMB_ATMO_COM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_CRC); +} + +/** + * @brief Encode a emb_atmo_com struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param emb_atmo_com C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_emb_atmo_com_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_emb_atmo_com_t* emb_atmo_com) +{ + return mavlink_msg_emb_atmo_com_pack(system_id, component_id, msg, emb_atmo_com->time_boot_ms, emb_atmo_com->Airspeed, emb_atmo_com->beta, emb_atmo_com->alpha, emb_atmo_com->ps, emb_atmo_com->qbar, emb_atmo_com->seq); +} + +/** + * @brief Encode a emb_atmo_com struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param emb_atmo_com C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_emb_atmo_com_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_emb_atmo_com_t* emb_atmo_com) +{ + return mavlink_msg_emb_atmo_com_pack_chan(system_id, component_id, chan, msg, emb_atmo_com->time_boot_ms, emb_atmo_com->Airspeed, emb_atmo_com->beta, emb_atmo_com->alpha, emb_atmo_com->ps, emb_atmo_com->qbar, emb_atmo_com->seq); +} + +/** + * @brief Send a emb_atmo_com message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param Airspeed Magnitude of air velocity [m/s] + * @param beta Sideslip angle [deg] + * @param alpha Angle of attack [deg] + * @param ps Static pressure [Pa] + * @param qbar Dynamic pressure [Pa] + * @param seq sequeue index + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_emb_atmo_com_send(mavlink_channel_t chan, uint32_t time_boot_ms, float Airspeed, float beta, float alpha, float ps, float qbar, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_EMB_ATMO_COM_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_float(buf, 4, Airspeed); + _mav_put_float(buf, 8, beta); + _mav_put_float(buf, 12, alpha); + _mav_put_float(buf, 16, ps); + _mav_put_float(buf, 20, qbar); + _mav_put_uint8_t(buf, 24, seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EMB_ATMO_COM, buf, MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_CRC); +#else + mavlink_emb_atmo_com_t packet; + packet.time_boot_ms = time_boot_ms; + packet.Airspeed = Airspeed; + packet.beta = beta; + packet.alpha = alpha; + packet.ps = ps; + packet.qbar = qbar; + packet.seq = seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EMB_ATMO_COM, (const char *)&packet, MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_CRC); +#endif +} + +/** + * @brief Send a emb_atmo_com message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_emb_atmo_com_send_struct(mavlink_channel_t chan, const mavlink_emb_atmo_com_t* emb_atmo_com) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_emb_atmo_com_send(chan, emb_atmo_com->time_boot_ms, emb_atmo_com->Airspeed, emb_atmo_com->beta, emb_atmo_com->alpha, emb_atmo_com->ps, emb_atmo_com->qbar, emb_atmo_com->seq); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EMB_ATMO_COM, (const char *)emb_atmo_com, MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_EMB_ATMO_COM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_emb_atmo_com_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, float Airspeed, float beta, float alpha, float ps, float qbar, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_float(buf, 4, Airspeed); + _mav_put_float(buf, 8, beta); + _mav_put_float(buf, 12, alpha); + _mav_put_float(buf, 16, ps); + _mav_put_float(buf, 20, qbar); + _mav_put_uint8_t(buf, 24, seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EMB_ATMO_COM, buf, MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_CRC); +#else + mavlink_emb_atmo_com_t *packet = (mavlink_emb_atmo_com_t *)msgbuf; + packet->time_boot_ms = time_boot_ms; + packet->Airspeed = Airspeed; + packet->beta = beta; + packet->alpha = alpha; + packet->ps = ps; + packet->qbar = qbar; + packet->seq = seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EMB_ATMO_COM, (const char *)packet, MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN, MAVLINK_MSG_ID_EMB_ATMO_COM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE EMB_ATMO_COM UNPACKING + + +/** + * @brief Get field time_boot_ms from emb_atmo_com message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_emb_atmo_com_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field Airspeed from emb_atmo_com message + * + * @return Magnitude of air velocity [m/s] + */ +static inline float mavlink_msg_emb_atmo_com_get_Airspeed(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 4); +} + +/** + * @brief Get field beta from emb_atmo_com message + * + * @return Sideslip angle [deg] + */ +static inline float mavlink_msg_emb_atmo_com_get_beta(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 8); +} + +/** + * @brief Get field alpha from emb_atmo_com message + * + * @return Angle of attack [deg] + */ +static inline float mavlink_msg_emb_atmo_com_get_alpha(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 12); +} + +/** + * @brief Get field ps from emb_atmo_com message + * + * @return Static pressure [Pa] + */ +static inline float mavlink_msg_emb_atmo_com_get_ps(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 16); +} + +/** + * @brief Get field qbar from emb_atmo_com message + * + * @return Dynamic pressure [Pa] + */ +static inline float mavlink_msg_emb_atmo_com_get_qbar(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 20); +} + +/** + * @brief Get field seq from emb_atmo_com message + * + * @return sequeue index + */ +static inline uint8_t mavlink_msg_emb_atmo_com_get_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 24); +} + +/** + * @brief Decode a emb_atmo_com message into a struct + * + * @param msg The message to decode + * @param emb_atmo_com C-struct to decode the message contents into + */ +static inline void mavlink_msg_emb_atmo_com_decode(const mavlink_message_t* msg, mavlink_emb_atmo_com_t* emb_atmo_com) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + emb_atmo_com->time_boot_ms = mavlink_msg_emb_atmo_com_get_time_boot_ms(msg); + emb_atmo_com->Airspeed = mavlink_msg_emb_atmo_com_get_Airspeed(msg); + emb_atmo_com->beta = mavlink_msg_emb_atmo_com_get_beta(msg); + emb_atmo_com->alpha = mavlink_msg_emb_atmo_com_get_alpha(msg); + emb_atmo_com->ps = mavlink_msg_emb_atmo_com_get_ps(msg); + emb_atmo_com->qbar = mavlink_msg_emb_atmo_com_get_qbar(msg); + emb_atmo_com->seq = mavlink_msg_emb_atmo_com_get_seq(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_EMB_ATMO_COM_LEN? msg->len : MAVLINK_MSG_ID_EMB_ATMO_COM_LEN; + memset(emb_atmo_com, 0, MAVLINK_MSG_ID_EMB_ATMO_COM_LEN); + memcpy(emb_atmo_com, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/mavlink_msg_ifbit_result.h b/ardupilotmega/mavlink_msg_ifbit_result.h new file mode 100644 index 0000000..32353e2 --- /dev/null +++ b/ardupilotmega/mavlink_msg_ifbit_result.h @@ -0,0 +1,538 @@ +#pragma once +// MESSAGE IFBIT_RESULT PACKING + +#define MAVLINK_MSG_ID_IFBIT_RESULT 20109 + +MAVPACKED( +typedef struct __mavlink_ifbit_result_t { + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + uint32_t CPM1; /*< CPM1*/ + uint32_t CPM2; /*< CPM2*/ + uint32_t CPM3; /*< CPM3*/ + uint32_t BIM1; /*< BIM1*/ + uint32_t BIM1_RS422; /*< BIM1_RS422*/ + uint32_t BIM1_POWER; /*< BIM1_POWER*/ + uint32_t BIM1_CFL; /*< BIM1_CFL*/ + uint32_t BIM1_GZZT; /*< BIM1_GZZT*/ + uint32_t BIM2; /*< BIM2*/ + uint32_t BIM2_RS422; /*< BIM2_RS422*/ + uint32_t BIM2_POWER; /*< BIM2_POWER*/ + uint32_t BIM2_CFL; /*< BIM2_CFL*/ + uint32_t BIM2_GZZT; /*< BIM2_GZZT*/ +}) mavlink_ifbit_result_t; + +#define MAVLINK_MSG_ID_IFBIT_RESULT_LEN 56 +#define MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN 56 +#define MAVLINK_MSG_ID_20109_LEN 56 +#define MAVLINK_MSG_ID_20109_MIN_LEN 56 + +#define MAVLINK_MSG_ID_IFBIT_RESULT_CRC 177 +#define MAVLINK_MSG_ID_20109_CRC 177 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_IFBIT_RESULT { \ + 20109, \ + "IFBIT_RESULT", \ + 14, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_ifbit_result_t, time_boot_ms) }, \ + { "CPM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_ifbit_result_t, CPM1) }, \ + { "CPM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_ifbit_result_t, CPM2) }, \ + { "CPM3", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_ifbit_result_t, CPM3) }, \ + { "BIM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 16, offsetof(mavlink_ifbit_result_t, BIM1) }, \ + { "BIM1_RS422", NULL, MAVLINK_TYPE_UINT32_T, 0, 20, offsetof(mavlink_ifbit_result_t, BIM1_RS422) }, \ + { "BIM1_POWER", NULL, MAVLINK_TYPE_UINT32_T, 0, 24, offsetof(mavlink_ifbit_result_t, BIM1_POWER) }, \ + { "BIM1_CFL", NULL, MAVLINK_TYPE_UINT32_T, 0, 28, offsetof(mavlink_ifbit_result_t, BIM1_CFL) }, \ + { "BIM1_GZZT", NULL, MAVLINK_TYPE_UINT32_T, 0, 32, offsetof(mavlink_ifbit_result_t, BIM1_GZZT) }, \ + { "BIM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 36, offsetof(mavlink_ifbit_result_t, BIM2) }, \ + { "BIM2_RS422", NULL, MAVLINK_TYPE_UINT32_T, 0, 40, offsetof(mavlink_ifbit_result_t, BIM2_RS422) }, \ + { "BIM2_POWER", NULL, MAVLINK_TYPE_UINT32_T, 0, 44, offsetof(mavlink_ifbit_result_t, BIM2_POWER) }, \ + { "BIM2_CFL", NULL, MAVLINK_TYPE_UINT32_T, 0, 48, offsetof(mavlink_ifbit_result_t, BIM2_CFL) }, \ + { "BIM2_GZZT", NULL, MAVLINK_TYPE_UINT32_T, 0, 52, offsetof(mavlink_ifbit_result_t, BIM2_GZZT) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_IFBIT_RESULT { \ + "IFBIT_RESULT", \ + 14, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_ifbit_result_t, time_boot_ms) }, \ + { "CPM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_ifbit_result_t, CPM1) }, \ + { "CPM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_ifbit_result_t, CPM2) }, \ + { "CPM3", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_ifbit_result_t, CPM3) }, \ + { "BIM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 16, offsetof(mavlink_ifbit_result_t, BIM1) }, \ + { "BIM1_RS422", NULL, MAVLINK_TYPE_UINT32_T, 0, 20, offsetof(mavlink_ifbit_result_t, BIM1_RS422) }, \ + { "BIM1_POWER", NULL, MAVLINK_TYPE_UINT32_T, 0, 24, offsetof(mavlink_ifbit_result_t, BIM1_POWER) }, \ + { "BIM1_CFL", NULL, MAVLINK_TYPE_UINT32_T, 0, 28, offsetof(mavlink_ifbit_result_t, BIM1_CFL) }, \ + { "BIM1_GZZT", NULL, MAVLINK_TYPE_UINT32_T, 0, 32, offsetof(mavlink_ifbit_result_t, BIM1_GZZT) }, \ + { "BIM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 36, offsetof(mavlink_ifbit_result_t, BIM2) }, \ + { "BIM2_RS422", NULL, MAVLINK_TYPE_UINT32_T, 0, 40, offsetof(mavlink_ifbit_result_t, BIM2_RS422) }, \ + { "BIM2_POWER", NULL, MAVLINK_TYPE_UINT32_T, 0, 44, offsetof(mavlink_ifbit_result_t, BIM2_POWER) }, \ + { "BIM2_CFL", NULL, MAVLINK_TYPE_UINT32_T, 0, 48, offsetof(mavlink_ifbit_result_t, BIM2_CFL) }, \ + { "BIM2_GZZT", NULL, MAVLINK_TYPE_UINT32_T, 0, 52, offsetof(mavlink_ifbit_result_t, BIM2_GZZT) }, \ + } \ +} +#endif + +/** + * @brief Pack a ifbit_result message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param BIM1 BIM1 + * @param BIM1_RS422 BIM1_RS422 + * @param BIM1_POWER BIM1_POWER + * @param BIM1_CFL BIM1_CFL + * @param BIM1_GZZT BIM1_GZZT + * @param BIM2 BIM2 + * @param BIM2_RS422 BIM2_RS422 + * @param BIM2_POWER BIM2_POWER + * @param BIM2_CFL BIM2_CFL + * @param BIM2_GZZT BIM2_GZZT + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ifbit_result_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t BIM1, uint32_t BIM1_RS422, uint32_t BIM1_POWER, uint32_t BIM1_CFL, uint32_t BIM1_GZZT, uint32_t BIM2, uint32_t BIM2_RS422, uint32_t BIM2_POWER, uint32_t BIM2_CFL, uint32_t BIM2_GZZT) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_IFBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, BIM1); + _mav_put_uint32_t(buf, 20, BIM1_RS422); + _mav_put_uint32_t(buf, 24, BIM1_POWER); + _mav_put_uint32_t(buf, 28, BIM1_CFL); + _mav_put_uint32_t(buf, 32, BIM1_GZZT); + _mav_put_uint32_t(buf, 36, BIM2); + _mav_put_uint32_t(buf, 40, BIM2_RS422); + _mav_put_uint32_t(buf, 44, BIM2_POWER); + _mav_put_uint32_t(buf, 48, BIM2_CFL); + _mav_put_uint32_t(buf, 52, BIM2_GZZT); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_IFBIT_RESULT_LEN); +#else + mavlink_ifbit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.BIM1 = BIM1; + packet.BIM1_RS422 = BIM1_RS422; + packet.BIM1_POWER = BIM1_POWER; + packet.BIM1_CFL = BIM1_CFL; + packet.BIM1_GZZT = BIM1_GZZT; + packet.BIM2 = BIM2; + packet.BIM2_RS422 = BIM2_RS422; + packet.BIM2_POWER = BIM2_POWER; + packet.BIM2_CFL = BIM2_CFL; + packet.BIM2_GZZT = BIM2_GZZT; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_IFBIT_RESULT_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_IFBIT_RESULT; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_CRC); +} + +/** + * @brief Pack a ifbit_result message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param BIM1 BIM1 + * @param BIM1_RS422 BIM1_RS422 + * @param BIM1_POWER BIM1_POWER + * @param BIM1_CFL BIM1_CFL + * @param BIM1_GZZT BIM1_GZZT + * @param BIM2 BIM2 + * @param BIM2_RS422 BIM2_RS422 + * @param BIM2_POWER BIM2_POWER + * @param BIM2_CFL BIM2_CFL + * @param BIM2_GZZT BIM2_GZZT + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ifbit_result_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,uint32_t CPM1,uint32_t CPM2,uint32_t CPM3,uint32_t BIM1,uint32_t BIM1_RS422,uint32_t BIM1_POWER,uint32_t BIM1_CFL,uint32_t BIM1_GZZT,uint32_t BIM2,uint32_t BIM2_RS422,uint32_t BIM2_POWER,uint32_t BIM2_CFL,uint32_t BIM2_GZZT) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_IFBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, BIM1); + _mav_put_uint32_t(buf, 20, BIM1_RS422); + _mav_put_uint32_t(buf, 24, BIM1_POWER); + _mav_put_uint32_t(buf, 28, BIM1_CFL); + _mav_put_uint32_t(buf, 32, BIM1_GZZT); + _mav_put_uint32_t(buf, 36, BIM2); + _mav_put_uint32_t(buf, 40, BIM2_RS422); + _mav_put_uint32_t(buf, 44, BIM2_POWER); + _mav_put_uint32_t(buf, 48, BIM2_CFL); + _mav_put_uint32_t(buf, 52, BIM2_GZZT); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_IFBIT_RESULT_LEN); +#else + mavlink_ifbit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.BIM1 = BIM1; + packet.BIM1_RS422 = BIM1_RS422; + packet.BIM1_POWER = BIM1_POWER; + packet.BIM1_CFL = BIM1_CFL; + packet.BIM1_GZZT = BIM1_GZZT; + packet.BIM2 = BIM2; + packet.BIM2_RS422 = BIM2_RS422; + packet.BIM2_POWER = BIM2_POWER; + packet.BIM2_CFL = BIM2_CFL; + packet.BIM2_GZZT = BIM2_GZZT; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_IFBIT_RESULT_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_IFBIT_RESULT; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_CRC); +} + +/** + * @brief Encode a ifbit_result struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param ifbit_result C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ifbit_result_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ifbit_result_t* ifbit_result) +{ + return mavlink_msg_ifbit_result_pack(system_id, component_id, msg, ifbit_result->time_boot_ms, ifbit_result->CPM1, ifbit_result->CPM2, ifbit_result->CPM3, ifbit_result->BIM1, ifbit_result->BIM1_RS422, ifbit_result->BIM1_POWER, ifbit_result->BIM1_CFL, ifbit_result->BIM1_GZZT, ifbit_result->BIM2, ifbit_result->BIM2_RS422, ifbit_result->BIM2_POWER, ifbit_result->BIM2_CFL, ifbit_result->BIM2_GZZT); +} + +/** + * @brief Encode a ifbit_result struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ifbit_result C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ifbit_result_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ifbit_result_t* ifbit_result) +{ + return mavlink_msg_ifbit_result_pack_chan(system_id, component_id, chan, msg, ifbit_result->time_boot_ms, ifbit_result->CPM1, ifbit_result->CPM2, ifbit_result->CPM3, ifbit_result->BIM1, ifbit_result->BIM1_RS422, ifbit_result->BIM1_POWER, ifbit_result->BIM1_CFL, ifbit_result->BIM1_GZZT, ifbit_result->BIM2, ifbit_result->BIM2_RS422, ifbit_result->BIM2_POWER, ifbit_result->BIM2_CFL, ifbit_result->BIM2_GZZT); +} + +/** + * @brief Send a ifbit_result message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param BIM1 BIM1 + * @param BIM1_RS422 BIM1_RS422 + * @param BIM1_POWER BIM1_POWER + * @param BIM1_CFL BIM1_CFL + * @param BIM1_GZZT BIM1_GZZT + * @param BIM2 BIM2 + * @param BIM2_RS422 BIM2_RS422 + * @param BIM2_POWER BIM2_POWER + * @param BIM2_CFL BIM2_CFL + * @param BIM2_GZZT BIM2_GZZT + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_ifbit_result_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t BIM1, uint32_t BIM1_RS422, uint32_t BIM1_POWER, uint32_t BIM1_CFL, uint32_t BIM1_GZZT, uint32_t BIM2, uint32_t BIM2_RS422, uint32_t BIM2_POWER, uint32_t BIM2_CFL, uint32_t BIM2_GZZT) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_IFBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, BIM1); + _mav_put_uint32_t(buf, 20, BIM1_RS422); + _mav_put_uint32_t(buf, 24, BIM1_POWER); + _mav_put_uint32_t(buf, 28, BIM1_CFL); + _mav_put_uint32_t(buf, 32, BIM1_GZZT); + _mav_put_uint32_t(buf, 36, BIM2); + _mav_put_uint32_t(buf, 40, BIM2_RS422); + _mav_put_uint32_t(buf, 44, BIM2_POWER); + _mav_put_uint32_t(buf, 48, BIM2_CFL); + _mav_put_uint32_t(buf, 52, BIM2_GZZT); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IFBIT_RESULT, buf, MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_CRC); +#else + mavlink_ifbit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.BIM1 = BIM1; + packet.BIM1_RS422 = BIM1_RS422; + packet.BIM1_POWER = BIM1_POWER; + packet.BIM1_CFL = BIM1_CFL; + packet.BIM1_GZZT = BIM1_GZZT; + packet.BIM2 = BIM2; + packet.BIM2_RS422 = BIM2_RS422; + packet.BIM2_POWER = BIM2_POWER; + packet.BIM2_CFL = BIM2_CFL; + packet.BIM2_GZZT = BIM2_GZZT; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IFBIT_RESULT, (const char *)&packet, MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_CRC); +#endif +} + +/** + * @brief Send a ifbit_result message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_ifbit_result_send_struct(mavlink_channel_t chan, const mavlink_ifbit_result_t* ifbit_result) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_ifbit_result_send(chan, ifbit_result->time_boot_ms, ifbit_result->CPM1, ifbit_result->CPM2, ifbit_result->CPM3, ifbit_result->BIM1, ifbit_result->BIM1_RS422, ifbit_result->BIM1_POWER, ifbit_result->BIM1_CFL, ifbit_result->BIM1_GZZT, ifbit_result->BIM2, ifbit_result->BIM2_RS422, ifbit_result->BIM2_POWER, ifbit_result->BIM2_CFL, ifbit_result->BIM2_GZZT); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IFBIT_RESULT, (const char *)ifbit_result, MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_CRC); +#endif +} + +#if MAVLINK_MSG_ID_IFBIT_RESULT_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_ifbit_result_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t BIM1, uint32_t BIM1_RS422, uint32_t BIM1_POWER, uint32_t BIM1_CFL, uint32_t BIM1_GZZT, uint32_t BIM2, uint32_t BIM2_RS422, uint32_t BIM2_POWER, uint32_t BIM2_CFL, uint32_t BIM2_GZZT) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, BIM1); + _mav_put_uint32_t(buf, 20, BIM1_RS422); + _mav_put_uint32_t(buf, 24, BIM1_POWER); + _mav_put_uint32_t(buf, 28, BIM1_CFL); + _mav_put_uint32_t(buf, 32, BIM1_GZZT); + _mav_put_uint32_t(buf, 36, BIM2); + _mav_put_uint32_t(buf, 40, BIM2_RS422); + _mav_put_uint32_t(buf, 44, BIM2_POWER); + _mav_put_uint32_t(buf, 48, BIM2_CFL); + _mav_put_uint32_t(buf, 52, BIM2_GZZT); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IFBIT_RESULT, buf, MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_CRC); +#else + mavlink_ifbit_result_t *packet = (mavlink_ifbit_result_t *)msgbuf; + packet->time_boot_ms = time_boot_ms; + packet->CPM1 = CPM1; + packet->CPM2 = CPM2; + packet->CPM3 = CPM3; + packet->BIM1 = BIM1; + packet->BIM1_RS422 = BIM1_RS422; + packet->BIM1_POWER = BIM1_POWER; + packet->BIM1_CFL = BIM1_CFL; + packet->BIM1_GZZT = BIM1_GZZT; + packet->BIM2 = BIM2; + packet->BIM2_RS422 = BIM2_RS422; + packet->BIM2_POWER = BIM2_POWER; + packet->BIM2_CFL = BIM2_CFL; + packet->BIM2_GZZT = BIM2_GZZT; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IFBIT_RESULT, (const char *)packet, MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_LEN, MAVLINK_MSG_ID_IFBIT_RESULT_CRC); +#endif +} +#endif + +#endif + +// MESSAGE IFBIT_RESULT UNPACKING + + +/** + * @brief Get field time_boot_ms from ifbit_result message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_ifbit_result_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field CPM1 from ifbit_result message + * + * @return CPM1 + */ +static inline uint32_t mavlink_msg_ifbit_result_get_CPM1(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 4); +} + +/** + * @brief Get field CPM2 from ifbit_result message + * + * @return CPM2 + */ +static inline uint32_t mavlink_msg_ifbit_result_get_CPM2(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 8); +} + +/** + * @brief Get field CPM3 from ifbit_result message + * + * @return CPM3 + */ +static inline uint32_t mavlink_msg_ifbit_result_get_CPM3(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 12); +} + +/** + * @brief Get field BIM1 from ifbit_result message + * + * @return BIM1 + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM1(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 16); +} + +/** + * @brief Get field BIM1_RS422 from ifbit_result message + * + * @return BIM1_RS422 + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM1_RS422(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 20); +} + +/** + * @brief Get field BIM1_POWER from ifbit_result message + * + * @return BIM1_POWER + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM1_POWER(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 24); +} + +/** + * @brief Get field BIM1_CFL from ifbit_result message + * + * @return BIM1_CFL + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM1_CFL(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 28); +} + +/** + * @brief Get field BIM1_GZZT from ifbit_result message + * + * @return BIM1_GZZT + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM1_GZZT(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 32); +} + +/** + * @brief Get field BIM2 from ifbit_result message + * + * @return BIM2 + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM2(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 36); +} + +/** + * @brief Get field BIM2_RS422 from ifbit_result message + * + * @return BIM2_RS422 + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM2_RS422(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 40); +} + +/** + * @brief Get field BIM2_POWER from ifbit_result message + * + * @return BIM2_POWER + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM2_POWER(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 44); +} + +/** + * @brief Get field BIM2_CFL from ifbit_result message + * + * @return BIM2_CFL + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM2_CFL(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 48); +} + +/** + * @brief Get field BIM2_GZZT from ifbit_result message + * + * @return BIM2_GZZT + */ +static inline uint32_t mavlink_msg_ifbit_result_get_BIM2_GZZT(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 52); +} + +/** + * @brief Decode a ifbit_result message into a struct + * + * @param msg The message to decode + * @param ifbit_result C-struct to decode the message contents into + */ +static inline void mavlink_msg_ifbit_result_decode(const mavlink_message_t* msg, mavlink_ifbit_result_t* ifbit_result) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + ifbit_result->time_boot_ms = mavlink_msg_ifbit_result_get_time_boot_ms(msg); + ifbit_result->CPM1 = mavlink_msg_ifbit_result_get_CPM1(msg); + ifbit_result->CPM2 = mavlink_msg_ifbit_result_get_CPM2(msg); + ifbit_result->CPM3 = mavlink_msg_ifbit_result_get_CPM3(msg); + ifbit_result->BIM1 = mavlink_msg_ifbit_result_get_BIM1(msg); + ifbit_result->BIM1_RS422 = mavlink_msg_ifbit_result_get_BIM1_RS422(msg); + ifbit_result->BIM1_POWER = mavlink_msg_ifbit_result_get_BIM1_POWER(msg); + ifbit_result->BIM1_CFL = mavlink_msg_ifbit_result_get_BIM1_CFL(msg); + ifbit_result->BIM1_GZZT = mavlink_msg_ifbit_result_get_BIM1_GZZT(msg); + ifbit_result->BIM2 = mavlink_msg_ifbit_result_get_BIM2(msg); + ifbit_result->BIM2_RS422 = mavlink_msg_ifbit_result_get_BIM2_RS422(msg); + ifbit_result->BIM2_POWER = mavlink_msg_ifbit_result_get_BIM2_POWER(msg); + ifbit_result->BIM2_CFL = mavlink_msg_ifbit_result_get_BIM2_CFL(msg); + ifbit_result->BIM2_GZZT = mavlink_msg_ifbit_result_get_BIM2_GZZT(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_IFBIT_RESULT_LEN? msg->len : MAVLINK_MSG_ID_IFBIT_RESULT_LEN; + memset(ifbit_result, 0, MAVLINK_MSG_ID_IFBIT_RESULT_LEN); + memcpy(ifbit_result, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/mavlink_msg_ins1.h b/ardupilotmega/mavlink_msg_ins1.h new file mode 100644 index 0000000..915d45d --- /dev/null +++ b/ardupilotmega/mavlink_msg_ins1.h @@ -0,0 +1,738 @@ +#pragma once +// MESSAGE INS1 PACKING + +#define MAVLINK_MSG_ID_INS1 20103 + +MAVPACKED( +typedef struct __mavlink_ins1_t { + double lon; /*< lon(deg)*/ + double lat; /*< lat(deg)*/ + double time; /*< time(s)*/ + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + float pitch; /*< pitch(deg)*/ + float roll; /*< roll(deg)*/ + float yaw; /*< yaw(deg)*/ + float alt; /*< alt(m)*/ + float v_north; /*< v_north(m/s)*/ + float v_up; /*< v_up(m/s)*/ + float v_east; /*< v_east(m/s)*/ + float gx; /*< gx(deg/s)*/ + float gy; /*< gy(deg/s)*/ + float gz; /*< gz(deg/s)*/ + float ax; /*< ax(deg/s)*/ + float ay; /*< ay(deg/s)*/ + float az; /*< az(deg/s)*/ + uint8_t sys_status; /*< sys_status*/ + uint8_t com_status; /*< com_status*/ + uint8_t gps_status; /*< gps_status*/ + uint8_t BIT; /*< BIT*/ + uint8_t seq; /*< sequeue index*/ +}) mavlink_ins1_t; + +#define MAVLINK_MSG_ID_INS1_LEN 85 +#define MAVLINK_MSG_ID_INS1_MIN_LEN 85 +#define MAVLINK_MSG_ID_20103_LEN 85 +#define MAVLINK_MSG_ID_20103_MIN_LEN 85 + +#define MAVLINK_MSG_ID_INS1_CRC 187 +#define MAVLINK_MSG_ID_20103_CRC 187 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_INS1 { \ + 20103, \ + "INS1", \ + 22, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 24, offsetof(mavlink_ins1_t, time_boot_ms) }, \ + { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ins1_t, pitch) }, \ + { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ins1_t, roll) }, \ + { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ins1_t, yaw) }, \ + { "lon", NULL, MAVLINK_TYPE_DOUBLE, 0, 0, offsetof(mavlink_ins1_t, lon) }, \ + { "lat", NULL, MAVLINK_TYPE_DOUBLE, 0, 8, offsetof(mavlink_ins1_t, lat) }, \ + { "alt", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ins1_t, alt) }, \ + { "v_north", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ins1_t, v_north) }, \ + { "v_up", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ins1_t, v_up) }, \ + { "v_east", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_ins1_t, v_east) }, \ + { "gx", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_ins1_t, gx) }, \ + { "gy", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_ins1_t, gy) }, \ + { "gz", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_ins1_t, gz) }, \ + { "ax", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_ins1_t, ax) }, \ + { "ay", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_ins1_t, ay) }, \ + { "az", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_ins1_t, az) }, \ + { "time", NULL, MAVLINK_TYPE_DOUBLE, 0, 16, offsetof(mavlink_ins1_t, time) }, \ + { "sys_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 80, offsetof(mavlink_ins1_t, sys_status) }, \ + { "com_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 81, offsetof(mavlink_ins1_t, com_status) }, \ + { "gps_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 82, offsetof(mavlink_ins1_t, gps_status) }, \ + { "BIT", NULL, MAVLINK_TYPE_UINT8_T, 0, 83, offsetof(mavlink_ins1_t, BIT) }, \ + { "seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 84, offsetof(mavlink_ins1_t, seq) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_INS1 { \ + "INS1", \ + 22, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 24, offsetof(mavlink_ins1_t, time_boot_ms) }, \ + { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ins1_t, pitch) }, \ + { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ins1_t, roll) }, \ + { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ins1_t, yaw) }, \ + { "lon", NULL, MAVLINK_TYPE_DOUBLE, 0, 0, offsetof(mavlink_ins1_t, lon) }, \ + { "lat", NULL, MAVLINK_TYPE_DOUBLE, 0, 8, offsetof(mavlink_ins1_t, lat) }, \ + { "alt", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ins1_t, alt) }, \ + { "v_north", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ins1_t, v_north) }, \ + { "v_up", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ins1_t, v_up) }, \ + { "v_east", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_ins1_t, v_east) }, \ + { "gx", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_ins1_t, gx) }, \ + { "gy", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_ins1_t, gy) }, \ + { "gz", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_ins1_t, gz) }, \ + { "ax", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_ins1_t, ax) }, \ + { "ay", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_ins1_t, ay) }, \ + { "az", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_ins1_t, az) }, \ + { "time", NULL, MAVLINK_TYPE_DOUBLE, 0, 16, offsetof(mavlink_ins1_t, time) }, \ + { "sys_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 80, offsetof(mavlink_ins1_t, sys_status) }, \ + { "com_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 81, offsetof(mavlink_ins1_t, com_status) }, \ + { "gps_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 82, offsetof(mavlink_ins1_t, gps_status) }, \ + { "BIT", NULL, MAVLINK_TYPE_UINT8_T, 0, 83, offsetof(mavlink_ins1_t, BIT) }, \ + { "seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 84, offsetof(mavlink_ins1_t, seq) }, \ + } \ +} +#endif + +/** + * @brief Pack a ins1 message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param pitch pitch(deg) + * @param roll roll(deg) + * @param yaw yaw(deg) + * @param lon lon(deg) + * @param lat lat(deg) + * @param alt alt(m) + * @param v_north v_north(m/s) + * @param v_up v_up(m/s) + * @param v_east v_east(m/s) + * @param gx gx(deg/s) + * @param gy gy(deg/s) + * @param gz gz(deg/s) + * @param ax ax(deg/s) + * @param ay ay(deg/s) + * @param az az(deg/s) + * @param time time(s) + * @param sys_status sys_status + * @param com_status com_status + * @param gps_status gps_status + * @param BIT BIT + * @param seq sequeue index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ins1_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, float pitch, float roll, float yaw, double lon, double lat, float alt, float v_north, float v_up, float v_east, float gx, float gy, float gz, float ax, float ay, float az, double time, uint8_t sys_status, uint8_t com_status, uint8_t gps_status, uint8_t BIT, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_INS1_LEN]; + _mav_put_double(buf, 0, lon); + _mav_put_double(buf, 8, lat); + _mav_put_double(buf, 16, time); + _mav_put_uint32_t(buf, 24, time_boot_ms); + _mav_put_float(buf, 28, pitch); + _mav_put_float(buf, 32, roll); + _mav_put_float(buf, 36, yaw); + _mav_put_float(buf, 40, alt); + _mav_put_float(buf, 44, v_north); + _mav_put_float(buf, 48, v_up); + _mav_put_float(buf, 52, v_east); + _mav_put_float(buf, 56, gx); + _mav_put_float(buf, 60, gy); + _mav_put_float(buf, 64, gz); + _mav_put_float(buf, 68, ax); + _mav_put_float(buf, 72, ay); + _mav_put_float(buf, 76, az); + _mav_put_uint8_t(buf, 80, sys_status); + _mav_put_uint8_t(buf, 81, com_status); + _mav_put_uint8_t(buf, 82, gps_status); + _mav_put_uint8_t(buf, 83, BIT); + _mav_put_uint8_t(buf, 84, seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_INS1_LEN); +#else + mavlink_ins1_t packet; + packet.lon = lon; + packet.lat = lat; + packet.time = time; + packet.time_boot_ms = time_boot_ms; + packet.pitch = pitch; + packet.roll = roll; + packet.yaw = yaw; + packet.alt = alt; + packet.v_north = v_north; + packet.v_up = v_up; + packet.v_east = v_east; + packet.gx = gx; + packet.gy = gy; + packet.gz = gz; + packet.ax = ax; + packet.ay = ay; + packet.az = az; + packet.sys_status = sys_status; + packet.com_status = com_status; + packet.gps_status = gps_status; + packet.BIT = BIT; + packet.seq = seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_INS1_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_INS1; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_INS1_MIN_LEN, MAVLINK_MSG_ID_INS1_LEN, MAVLINK_MSG_ID_INS1_CRC); +} + +/** + * @brief Pack a ins1 message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param pitch pitch(deg) + * @param roll roll(deg) + * @param yaw yaw(deg) + * @param lon lon(deg) + * @param lat lat(deg) + * @param alt alt(m) + * @param v_north v_north(m/s) + * @param v_up v_up(m/s) + * @param v_east v_east(m/s) + * @param gx gx(deg/s) + * @param gy gy(deg/s) + * @param gz gz(deg/s) + * @param ax ax(deg/s) + * @param ay ay(deg/s) + * @param az az(deg/s) + * @param time time(s) + * @param sys_status sys_status + * @param com_status com_status + * @param gps_status gps_status + * @param BIT BIT + * @param seq sequeue index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ins1_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,float pitch,float roll,float yaw,double lon,double lat,float alt,float v_north,float v_up,float v_east,float gx,float gy,float gz,float ax,float ay,float az,double time,uint8_t sys_status,uint8_t com_status,uint8_t gps_status,uint8_t BIT,uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_INS1_LEN]; + _mav_put_double(buf, 0, lon); + _mav_put_double(buf, 8, lat); + _mav_put_double(buf, 16, time); + _mav_put_uint32_t(buf, 24, time_boot_ms); + _mav_put_float(buf, 28, pitch); + _mav_put_float(buf, 32, roll); + _mav_put_float(buf, 36, yaw); + _mav_put_float(buf, 40, alt); + _mav_put_float(buf, 44, v_north); + _mav_put_float(buf, 48, v_up); + _mav_put_float(buf, 52, v_east); + _mav_put_float(buf, 56, gx); + _mav_put_float(buf, 60, gy); + _mav_put_float(buf, 64, gz); + _mav_put_float(buf, 68, ax); + _mav_put_float(buf, 72, ay); + _mav_put_float(buf, 76, az); + _mav_put_uint8_t(buf, 80, sys_status); + _mav_put_uint8_t(buf, 81, com_status); + _mav_put_uint8_t(buf, 82, gps_status); + _mav_put_uint8_t(buf, 83, BIT); + _mav_put_uint8_t(buf, 84, seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_INS1_LEN); +#else + mavlink_ins1_t packet; + packet.lon = lon; + packet.lat = lat; + packet.time = time; + packet.time_boot_ms = time_boot_ms; + packet.pitch = pitch; + packet.roll = roll; + packet.yaw = yaw; + packet.alt = alt; + packet.v_north = v_north; + packet.v_up = v_up; + packet.v_east = v_east; + packet.gx = gx; + packet.gy = gy; + packet.gz = gz; + packet.ax = ax; + packet.ay = ay; + packet.az = az; + packet.sys_status = sys_status; + packet.com_status = com_status; + packet.gps_status = gps_status; + packet.BIT = BIT; + packet.seq = seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_INS1_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_INS1; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_INS1_MIN_LEN, MAVLINK_MSG_ID_INS1_LEN, MAVLINK_MSG_ID_INS1_CRC); +} + +/** + * @brief Encode a ins1 struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param ins1 C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ins1_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ins1_t* ins1) +{ + return mavlink_msg_ins1_pack(system_id, component_id, msg, ins1->time_boot_ms, ins1->pitch, ins1->roll, ins1->yaw, ins1->lon, ins1->lat, ins1->alt, ins1->v_north, ins1->v_up, ins1->v_east, ins1->gx, ins1->gy, ins1->gz, ins1->ax, ins1->ay, ins1->az, ins1->time, ins1->sys_status, ins1->com_status, ins1->gps_status, ins1->BIT, ins1->seq); +} + +/** + * @brief Encode a ins1 struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ins1 C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ins1_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ins1_t* ins1) +{ + return mavlink_msg_ins1_pack_chan(system_id, component_id, chan, msg, ins1->time_boot_ms, ins1->pitch, ins1->roll, ins1->yaw, ins1->lon, ins1->lat, ins1->alt, ins1->v_north, ins1->v_up, ins1->v_east, ins1->gx, ins1->gy, ins1->gz, ins1->ax, ins1->ay, ins1->az, ins1->time, ins1->sys_status, ins1->com_status, ins1->gps_status, ins1->BIT, ins1->seq); +} + +/** + * @brief Send a ins1 message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param pitch pitch(deg) + * @param roll roll(deg) + * @param yaw yaw(deg) + * @param lon lon(deg) + * @param lat lat(deg) + * @param alt alt(m) + * @param v_north v_north(m/s) + * @param v_up v_up(m/s) + * @param v_east v_east(m/s) + * @param gx gx(deg/s) + * @param gy gy(deg/s) + * @param gz gz(deg/s) + * @param ax ax(deg/s) + * @param ay ay(deg/s) + * @param az az(deg/s) + * @param time time(s) + * @param sys_status sys_status + * @param com_status com_status + * @param gps_status gps_status + * @param BIT BIT + * @param seq sequeue index + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_ins1_send(mavlink_channel_t chan, uint32_t time_boot_ms, float pitch, float roll, float yaw, double lon, double lat, float alt, float v_north, float v_up, float v_east, float gx, float gy, float gz, float ax, float ay, float az, double time, uint8_t sys_status, uint8_t com_status, uint8_t gps_status, uint8_t BIT, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_INS1_LEN]; + _mav_put_double(buf, 0, lon); + _mav_put_double(buf, 8, lat); + _mav_put_double(buf, 16, time); + _mav_put_uint32_t(buf, 24, time_boot_ms); + _mav_put_float(buf, 28, pitch); + _mav_put_float(buf, 32, roll); + _mav_put_float(buf, 36, yaw); + _mav_put_float(buf, 40, alt); + _mav_put_float(buf, 44, v_north); + _mav_put_float(buf, 48, v_up); + _mav_put_float(buf, 52, v_east); + _mav_put_float(buf, 56, gx); + _mav_put_float(buf, 60, gy); + _mav_put_float(buf, 64, gz); + _mav_put_float(buf, 68, ax); + _mav_put_float(buf, 72, ay); + _mav_put_float(buf, 76, az); + _mav_put_uint8_t(buf, 80, sys_status); + _mav_put_uint8_t(buf, 81, com_status); + _mav_put_uint8_t(buf, 82, gps_status); + _mav_put_uint8_t(buf, 83, BIT); + _mav_put_uint8_t(buf, 84, seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS1, buf, MAVLINK_MSG_ID_INS1_MIN_LEN, MAVLINK_MSG_ID_INS1_LEN, MAVLINK_MSG_ID_INS1_CRC); +#else + mavlink_ins1_t packet; + packet.lon = lon; + packet.lat = lat; + packet.time = time; + packet.time_boot_ms = time_boot_ms; + packet.pitch = pitch; + packet.roll = roll; + packet.yaw = yaw; + packet.alt = alt; + packet.v_north = v_north; + packet.v_up = v_up; + packet.v_east = v_east; + packet.gx = gx; + packet.gy = gy; + packet.gz = gz; + packet.ax = ax; + packet.ay = ay; + packet.az = az; + packet.sys_status = sys_status; + packet.com_status = com_status; + packet.gps_status = gps_status; + packet.BIT = BIT; + packet.seq = seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS1, (const char *)&packet, MAVLINK_MSG_ID_INS1_MIN_LEN, MAVLINK_MSG_ID_INS1_LEN, MAVLINK_MSG_ID_INS1_CRC); +#endif +} + +/** + * @brief Send a ins1 message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_ins1_send_struct(mavlink_channel_t chan, const mavlink_ins1_t* ins1) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_ins1_send(chan, ins1->time_boot_ms, ins1->pitch, ins1->roll, ins1->yaw, ins1->lon, ins1->lat, ins1->alt, ins1->v_north, ins1->v_up, ins1->v_east, ins1->gx, ins1->gy, ins1->gz, ins1->ax, ins1->ay, ins1->az, ins1->time, ins1->sys_status, ins1->com_status, ins1->gps_status, ins1->BIT, ins1->seq); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS1, (const char *)ins1, MAVLINK_MSG_ID_INS1_MIN_LEN, MAVLINK_MSG_ID_INS1_LEN, MAVLINK_MSG_ID_INS1_CRC); +#endif +} + +#if MAVLINK_MSG_ID_INS1_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_ins1_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, float pitch, float roll, float yaw, double lon, double lat, float alt, float v_north, float v_up, float v_east, float gx, float gy, float gz, float ax, float ay, float az, double time, uint8_t sys_status, uint8_t com_status, uint8_t gps_status, uint8_t BIT, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_double(buf, 0, lon); + _mav_put_double(buf, 8, lat); + _mav_put_double(buf, 16, time); + _mav_put_uint32_t(buf, 24, time_boot_ms); + _mav_put_float(buf, 28, pitch); + _mav_put_float(buf, 32, roll); + _mav_put_float(buf, 36, yaw); + _mav_put_float(buf, 40, alt); + _mav_put_float(buf, 44, v_north); + _mav_put_float(buf, 48, v_up); + _mav_put_float(buf, 52, v_east); + _mav_put_float(buf, 56, gx); + _mav_put_float(buf, 60, gy); + _mav_put_float(buf, 64, gz); + _mav_put_float(buf, 68, ax); + _mav_put_float(buf, 72, ay); + _mav_put_float(buf, 76, az); + _mav_put_uint8_t(buf, 80, sys_status); + _mav_put_uint8_t(buf, 81, com_status); + _mav_put_uint8_t(buf, 82, gps_status); + _mav_put_uint8_t(buf, 83, BIT); + _mav_put_uint8_t(buf, 84, seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS1, buf, MAVLINK_MSG_ID_INS1_MIN_LEN, MAVLINK_MSG_ID_INS1_LEN, MAVLINK_MSG_ID_INS1_CRC); +#else + mavlink_ins1_t *packet = (mavlink_ins1_t *)msgbuf; + packet->lon = lon; + packet->lat = lat; + packet->time = time; + packet->time_boot_ms = time_boot_ms; + packet->pitch = pitch; + packet->roll = roll; + packet->yaw = yaw; + packet->alt = alt; + packet->v_north = v_north; + packet->v_up = v_up; + packet->v_east = v_east; + packet->gx = gx; + packet->gy = gy; + packet->gz = gz; + packet->ax = ax; + packet->ay = ay; + packet->az = az; + packet->sys_status = sys_status; + packet->com_status = com_status; + packet->gps_status = gps_status; + packet->BIT = BIT; + packet->seq = seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS1, (const char *)packet, MAVLINK_MSG_ID_INS1_MIN_LEN, MAVLINK_MSG_ID_INS1_LEN, MAVLINK_MSG_ID_INS1_CRC); +#endif +} +#endif + +#endif + +// MESSAGE INS1 UNPACKING + + +/** + * @brief Get field time_boot_ms from ins1 message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_ins1_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 24); +} + +/** + * @brief Get field pitch from ins1 message + * + * @return pitch(deg) + */ +static inline float mavlink_msg_ins1_get_pitch(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field roll from ins1 message + * + * @return roll(deg) + */ +static inline float mavlink_msg_ins1_get_roll(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field yaw from ins1 message + * + * @return yaw(deg) + */ +static inline float mavlink_msg_ins1_get_yaw(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field lon from ins1 message + * + * @return lon(deg) + */ +static inline double mavlink_msg_ins1_get_lon(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 0); +} + +/** + * @brief Get field lat from ins1 message + * + * @return lat(deg) + */ +static inline double mavlink_msg_ins1_get_lat(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 8); +} + +/** + * @brief Get field alt from ins1 message + * + * @return alt(m) + */ +static inline float mavlink_msg_ins1_get_alt(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field v_north from ins1 message + * + * @return v_north(m/s) + */ +static inline float mavlink_msg_ins1_get_v_north(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field v_up from ins1 message + * + * @return v_up(m/s) + */ +static inline float mavlink_msg_ins1_get_v_up(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Get field v_east from ins1 message + * + * @return v_east(m/s) + */ +static inline float mavlink_msg_ins1_get_v_east(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 52); +} + +/** + * @brief Get field gx from ins1 message + * + * @return gx(deg/s) + */ +static inline float mavlink_msg_ins1_get_gx(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 56); +} + +/** + * @brief Get field gy from ins1 message + * + * @return gy(deg/s) + */ +static inline float mavlink_msg_ins1_get_gy(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 60); +} + +/** + * @brief Get field gz from ins1 message + * + * @return gz(deg/s) + */ +static inline float mavlink_msg_ins1_get_gz(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 64); +} + +/** + * @brief Get field ax from ins1 message + * + * @return ax(deg/s) + */ +static inline float mavlink_msg_ins1_get_ax(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 68); +} + +/** + * @brief Get field ay from ins1 message + * + * @return ay(deg/s) + */ +static inline float mavlink_msg_ins1_get_ay(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 72); +} + +/** + * @brief Get field az from ins1 message + * + * @return az(deg/s) + */ +static inline float mavlink_msg_ins1_get_az(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 76); +} + +/** + * @brief Get field time from ins1 message + * + * @return time(s) + */ +static inline double mavlink_msg_ins1_get_time(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 16); +} + +/** + * @brief Get field sys_status from ins1 message + * + * @return sys_status + */ +static inline uint8_t mavlink_msg_ins1_get_sys_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 80); +} + +/** + * @brief Get field com_status from ins1 message + * + * @return com_status + */ +static inline uint8_t mavlink_msg_ins1_get_com_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 81); +} + +/** + * @brief Get field gps_status from ins1 message + * + * @return gps_status + */ +static inline uint8_t mavlink_msg_ins1_get_gps_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 82); +} + +/** + * @brief Get field BIT from ins1 message + * + * @return BIT + */ +static inline uint8_t mavlink_msg_ins1_get_BIT(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 83); +} + +/** + * @brief Get field seq from ins1 message + * + * @return sequeue index + */ +static inline uint8_t mavlink_msg_ins1_get_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 84); +} + +/** + * @brief Decode a ins1 message into a struct + * + * @param msg The message to decode + * @param ins1 C-struct to decode the message contents into + */ +static inline void mavlink_msg_ins1_decode(const mavlink_message_t* msg, mavlink_ins1_t* ins1) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + ins1->lon = mavlink_msg_ins1_get_lon(msg); + ins1->lat = mavlink_msg_ins1_get_lat(msg); + ins1->time = mavlink_msg_ins1_get_time(msg); + ins1->time_boot_ms = mavlink_msg_ins1_get_time_boot_ms(msg); + ins1->pitch = mavlink_msg_ins1_get_pitch(msg); + ins1->roll = mavlink_msg_ins1_get_roll(msg); + ins1->yaw = mavlink_msg_ins1_get_yaw(msg); + ins1->alt = mavlink_msg_ins1_get_alt(msg); + ins1->v_north = mavlink_msg_ins1_get_v_north(msg); + ins1->v_up = mavlink_msg_ins1_get_v_up(msg); + ins1->v_east = mavlink_msg_ins1_get_v_east(msg); + ins1->gx = mavlink_msg_ins1_get_gx(msg); + ins1->gy = mavlink_msg_ins1_get_gy(msg); + ins1->gz = mavlink_msg_ins1_get_gz(msg); + ins1->ax = mavlink_msg_ins1_get_ax(msg); + ins1->ay = mavlink_msg_ins1_get_ay(msg); + ins1->az = mavlink_msg_ins1_get_az(msg); + ins1->sys_status = mavlink_msg_ins1_get_sys_status(msg); + ins1->com_status = mavlink_msg_ins1_get_com_status(msg); + ins1->gps_status = mavlink_msg_ins1_get_gps_status(msg); + ins1->BIT = mavlink_msg_ins1_get_BIT(msg); + ins1->seq = mavlink_msg_ins1_get_seq(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_INS1_LEN? msg->len : MAVLINK_MSG_ID_INS1_LEN; + memset(ins1, 0, MAVLINK_MSG_ID_INS1_LEN); + memcpy(ins1, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/mavlink_msg_ins2.h b/ardupilotmega/mavlink_msg_ins2.h new file mode 100644 index 0000000..87ec597 --- /dev/null +++ b/ardupilotmega/mavlink_msg_ins2.h @@ -0,0 +1,738 @@ +#pragma once +// MESSAGE INS2 PACKING + +#define MAVLINK_MSG_ID_INS2 20104 + +MAVPACKED( +typedef struct __mavlink_ins2_t { + double lon; /*< lon(deg)*/ + double lat; /*< lat(deg)*/ + double time; /*< time(s)*/ + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + float pitch; /*< pitch(deg)*/ + float roll; /*< roll(deg)*/ + float yaw; /*< yaw(deg)*/ + float alt; /*< alt(m)*/ + float v_north; /*< v_north(m/s)*/ + float v_up; /*< v_up(m/s)*/ + float v_east; /*< v_east(m/s)*/ + float gx; /*< gx(deg/s)*/ + float gy; /*< gy(deg/s)*/ + float gz; /*< gz(deg/s)*/ + float ax; /*< ax(deg/s)*/ + float ay; /*< ay(deg/s)*/ + float az; /*< az(deg/s)*/ + uint8_t sys_status; /*< sys_status*/ + uint8_t com_status; /*< com_status*/ + uint8_t gps_status; /*< gps_status*/ + uint8_t BIT; /*< BIT*/ + uint8_t seq; /*< sequeue index*/ +}) mavlink_ins2_t; + +#define MAVLINK_MSG_ID_INS2_LEN 85 +#define MAVLINK_MSG_ID_INS2_MIN_LEN 85 +#define MAVLINK_MSG_ID_20104_LEN 85 +#define MAVLINK_MSG_ID_20104_MIN_LEN 85 + +#define MAVLINK_MSG_ID_INS2_CRC 212 +#define MAVLINK_MSG_ID_20104_CRC 212 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_INS2 { \ + 20104, \ + "INS2", \ + 22, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 24, offsetof(mavlink_ins2_t, time_boot_ms) }, \ + { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ins2_t, pitch) }, \ + { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ins2_t, roll) }, \ + { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ins2_t, yaw) }, \ + { "lon", NULL, MAVLINK_TYPE_DOUBLE, 0, 0, offsetof(mavlink_ins2_t, lon) }, \ + { "lat", NULL, MAVLINK_TYPE_DOUBLE, 0, 8, offsetof(mavlink_ins2_t, lat) }, \ + { "alt", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ins2_t, alt) }, \ + { "v_north", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ins2_t, v_north) }, \ + { "v_up", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ins2_t, v_up) }, \ + { "v_east", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_ins2_t, v_east) }, \ + { "gx", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_ins2_t, gx) }, \ + { "gy", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_ins2_t, gy) }, \ + { "gz", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_ins2_t, gz) }, \ + { "ax", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_ins2_t, ax) }, \ + { "ay", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_ins2_t, ay) }, \ + { "az", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_ins2_t, az) }, \ + { "time", NULL, MAVLINK_TYPE_DOUBLE, 0, 16, offsetof(mavlink_ins2_t, time) }, \ + { "sys_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 80, offsetof(mavlink_ins2_t, sys_status) }, \ + { "com_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 81, offsetof(mavlink_ins2_t, com_status) }, \ + { "gps_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 82, offsetof(mavlink_ins2_t, gps_status) }, \ + { "BIT", NULL, MAVLINK_TYPE_UINT8_T, 0, 83, offsetof(mavlink_ins2_t, BIT) }, \ + { "seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 84, offsetof(mavlink_ins2_t, seq) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_INS2 { \ + "INS2", \ + 22, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 24, offsetof(mavlink_ins2_t, time_boot_ms) }, \ + { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ins2_t, pitch) }, \ + { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ins2_t, roll) }, \ + { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ins2_t, yaw) }, \ + { "lon", NULL, MAVLINK_TYPE_DOUBLE, 0, 0, offsetof(mavlink_ins2_t, lon) }, \ + { "lat", NULL, MAVLINK_TYPE_DOUBLE, 0, 8, offsetof(mavlink_ins2_t, lat) }, \ + { "alt", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ins2_t, alt) }, \ + { "v_north", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ins2_t, v_north) }, \ + { "v_up", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ins2_t, v_up) }, \ + { "v_east", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_ins2_t, v_east) }, \ + { "gx", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_ins2_t, gx) }, \ + { "gy", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_ins2_t, gy) }, \ + { "gz", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_ins2_t, gz) }, \ + { "ax", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_ins2_t, ax) }, \ + { "ay", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_ins2_t, ay) }, \ + { "az", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_ins2_t, az) }, \ + { "time", NULL, MAVLINK_TYPE_DOUBLE, 0, 16, offsetof(mavlink_ins2_t, time) }, \ + { "sys_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 80, offsetof(mavlink_ins2_t, sys_status) }, \ + { "com_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 81, offsetof(mavlink_ins2_t, com_status) }, \ + { "gps_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 82, offsetof(mavlink_ins2_t, gps_status) }, \ + { "BIT", NULL, MAVLINK_TYPE_UINT8_T, 0, 83, offsetof(mavlink_ins2_t, BIT) }, \ + { "seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 84, offsetof(mavlink_ins2_t, seq) }, \ + } \ +} +#endif + +/** + * @brief Pack a ins2 message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param pitch pitch(deg) + * @param roll roll(deg) + * @param yaw yaw(deg) + * @param lon lon(deg) + * @param lat lat(deg) + * @param alt alt(m) + * @param v_north v_north(m/s) + * @param v_up v_up(m/s) + * @param v_east v_east(m/s) + * @param gx gx(deg/s) + * @param gy gy(deg/s) + * @param gz gz(deg/s) + * @param ax ax(deg/s) + * @param ay ay(deg/s) + * @param az az(deg/s) + * @param time time(s) + * @param sys_status sys_status + * @param com_status com_status + * @param gps_status gps_status + * @param BIT BIT + * @param seq sequeue index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ins2_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, float pitch, float roll, float yaw, double lon, double lat, float alt, float v_north, float v_up, float v_east, float gx, float gy, float gz, float ax, float ay, float az, double time, uint8_t sys_status, uint8_t com_status, uint8_t gps_status, uint8_t BIT, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_INS2_LEN]; + _mav_put_double(buf, 0, lon); + _mav_put_double(buf, 8, lat); + _mav_put_double(buf, 16, time); + _mav_put_uint32_t(buf, 24, time_boot_ms); + _mav_put_float(buf, 28, pitch); + _mav_put_float(buf, 32, roll); + _mav_put_float(buf, 36, yaw); + _mav_put_float(buf, 40, alt); + _mav_put_float(buf, 44, v_north); + _mav_put_float(buf, 48, v_up); + _mav_put_float(buf, 52, v_east); + _mav_put_float(buf, 56, gx); + _mav_put_float(buf, 60, gy); + _mav_put_float(buf, 64, gz); + _mav_put_float(buf, 68, ax); + _mav_put_float(buf, 72, ay); + _mav_put_float(buf, 76, az); + _mav_put_uint8_t(buf, 80, sys_status); + _mav_put_uint8_t(buf, 81, com_status); + _mav_put_uint8_t(buf, 82, gps_status); + _mav_put_uint8_t(buf, 83, BIT); + _mav_put_uint8_t(buf, 84, seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_INS2_LEN); +#else + mavlink_ins2_t packet; + packet.lon = lon; + packet.lat = lat; + packet.time = time; + packet.time_boot_ms = time_boot_ms; + packet.pitch = pitch; + packet.roll = roll; + packet.yaw = yaw; + packet.alt = alt; + packet.v_north = v_north; + packet.v_up = v_up; + packet.v_east = v_east; + packet.gx = gx; + packet.gy = gy; + packet.gz = gz; + packet.ax = ax; + packet.ay = ay; + packet.az = az; + packet.sys_status = sys_status; + packet.com_status = com_status; + packet.gps_status = gps_status; + packet.BIT = BIT; + packet.seq = seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_INS2_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_INS2; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_INS2_MIN_LEN, MAVLINK_MSG_ID_INS2_LEN, MAVLINK_MSG_ID_INS2_CRC); +} + +/** + * @brief Pack a ins2 message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param pitch pitch(deg) + * @param roll roll(deg) + * @param yaw yaw(deg) + * @param lon lon(deg) + * @param lat lat(deg) + * @param alt alt(m) + * @param v_north v_north(m/s) + * @param v_up v_up(m/s) + * @param v_east v_east(m/s) + * @param gx gx(deg/s) + * @param gy gy(deg/s) + * @param gz gz(deg/s) + * @param ax ax(deg/s) + * @param ay ay(deg/s) + * @param az az(deg/s) + * @param time time(s) + * @param sys_status sys_status + * @param com_status com_status + * @param gps_status gps_status + * @param BIT BIT + * @param seq sequeue index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_ins2_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,float pitch,float roll,float yaw,double lon,double lat,float alt,float v_north,float v_up,float v_east,float gx,float gy,float gz,float ax,float ay,float az,double time,uint8_t sys_status,uint8_t com_status,uint8_t gps_status,uint8_t BIT,uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_INS2_LEN]; + _mav_put_double(buf, 0, lon); + _mav_put_double(buf, 8, lat); + _mav_put_double(buf, 16, time); + _mav_put_uint32_t(buf, 24, time_boot_ms); + _mav_put_float(buf, 28, pitch); + _mav_put_float(buf, 32, roll); + _mav_put_float(buf, 36, yaw); + _mav_put_float(buf, 40, alt); + _mav_put_float(buf, 44, v_north); + _mav_put_float(buf, 48, v_up); + _mav_put_float(buf, 52, v_east); + _mav_put_float(buf, 56, gx); + _mav_put_float(buf, 60, gy); + _mav_put_float(buf, 64, gz); + _mav_put_float(buf, 68, ax); + _mav_put_float(buf, 72, ay); + _mav_put_float(buf, 76, az); + _mav_put_uint8_t(buf, 80, sys_status); + _mav_put_uint8_t(buf, 81, com_status); + _mav_put_uint8_t(buf, 82, gps_status); + _mav_put_uint8_t(buf, 83, BIT); + _mav_put_uint8_t(buf, 84, seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_INS2_LEN); +#else + mavlink_ins2_t packet; + packet.lon = lon; + packet.lat = lat; + packet.time = time; + packet.time_boot_ms = time_boot_ms; + packet.pitch = pitch; + packet.roll = roll; + packet.yaw = yaw; + packet.alt = alt; + packet.v_north = v_north; + packet.v_up = v_up; + packet.v_east = v_east; + packet.gx = gx; + packet.gy = gy; + packet.gz = gz; + packet.ax = ax; + packet.ay = ay; + packet.az = az; + packet.sys_status = sys_status; + packet.com_status = com_status; + packet.gps_status = gps_status; + packet.BIT = BIT; + packet.seq = seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_INS2_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_INS2; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_INS2_MIN_LEN, MAVLINK_MSG_ID_INS2_LEN, MAVLINK_MSG_ID_INS2_CRC); +} + +/** + * @brief Encode a ins2 struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param ins2 C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ins2_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ins2_t* ins2) +{ + return mavlink_msg_ins2_pack(system_id, component_id, msg, ins2->time_boot_ms, ins2->pitch, ins2->roll, ins2->yaw, ins2->lon, ins2->lat, ins2->alt, ins2->v_north, ins2->v_up, ins2->v_east, ins2->gx, ins2->gy, ins2->gz, ins2->ax, ins2->ay, ins2->az, ins2->time, ins2->sys_status, ins2->com_status, ins2->gps_status, ins2->BIT, ins2->seq); +} + +/** + * @brief Encode a ins2 struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param ins2 C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_ins2_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ins2_t* ins2) +{ + return mavlink_msg_ins2_pack_chan(system_id, component_id, chan, msg, ins2->time_boot_ms, ins2->pitch, ins2->roll, ins2->yaw, ins2->lon, ins2->lat, ins2->alt, ins2->v_north, ins2->v_up, ins2->v_east, ins2->gx, ins2->gy, ins2->gz, ins2->ax, ins2->ay, ins2->az, ins2->time, ins2->sys_status, ins2->com_status, ins2->gps_status, ins2->BIT, ins2->seq); +} + +/** + * @brief Send a ins2 message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param pitch pitch(deg) + * @param roll roll(deg) + * @param yaw yaw(deg) + * @param lon lon(deg) + * @param lat lat(deg) + * @param alt alt(m) + * @param v_north v_north(m/s) + * @param v_up v_up(m/s) + * @param v_east v_east(m/s) + * @param gx gx(deg/s) + * @param gy gy(deg/s) + * @param gz gz(deg/s) + * @param ax ax(deg/s) + * @param ay ay(deg/s) + * @param az az(deg/s) + * @param time time(s) + * @param sys_status sys_status + * @param com_status com_status + * @param gps_status gps_status + * @param BIT BIT + * @param seq sequeue index + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_ins2_send(mavlink_channel_t chan, uint32_t time_boot_ms, float pitch, float roll, float yaw, double lon, double lat, float alt, float v_north, float v_up, float v_east, float gx, float gy, float gz, float ax, float ay, float az, double time, uint8_t sys_status, uint8_t com_status, uint8_t gps_status, uint8_t BIT, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_INS2_LEN]; + _mav_put_double(buf, 0, lon); + _mav_put_double(buf, 8, lat); + _mav_put_double(buf, 16, time); + _mav_put_uint32_t(buf, 24, time_boot_ms); + _mav_put_float(buf, 28, pitch); + _mav_put_float(buf, 32, roll); + _mav_put_float(buf, 36, yaw); + _mav_put_float(buf, 40, alt); + _mav_put_float(buf, 44, v_north); + _mav_put_float(buf, 48, v_up); + _mav_put_float(buf, 52, v_east); + _mav_put_float(buf, 56, gx); + _mav_put_float(buf, 60, gy); + _mav_put_float(buf, 64, gz); + _mav_put_float(buf, 68, ax); + _mav_put_float(buf, 72, ay); + _mav_put_float(buf, 76, az); + _mav_put_uint8_t(buf, 80, sys_status); + _mav_put_uint8_t(buf, 81, com_status); + _mav_put_uint8_t(buf, 82, gps_status); + _mav_put_uint8_t(buf, 83, BIT); + _mav_put_uint8_t(buf, 84, seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS2, buf, MAVLINK_MSG_ID_INS2_MIN_LEN, MAVLINK_MSG_ID_INS2_LEN, MAVLINK_MSG_ID_INS2_CRC); +#else + mavlink_ins2_t packet; + packet.lon = lon; + packet.lat = lat; + packet.time = time; + packet.time_boot_ms = time_boot_ms; + packet.pitch = pitch; + packet.roll = roll; + packet.yaw = yaw; + packet.alt = alt; + packet.v_north = v_north; + packet.v_up = v_up; + packet.v_east = v_east; + packet.gx = gx; + packet.gy = gy; + packet.gz = gz; + packet.ax = ax; + packet.ay = ay; + packet.az = az; + packet.sys_status = sys_status; + packet.com_status = com_status; + packet.gps_status = gps_status; + packet.BIT = BIT; + packet.seq = seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS2, (const char *)&packet, MAVLINK_MSG_ID_INS2_MIN_LEN, MAVLINK_MSG_ID_INS2_LEN, MAVLINK_MSG_ID_INS2_CRC); +#endif +} + +/** + * @brief Send a ins2 message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_ins2_send_struct(mavlink_channel_t chan, const mavlink_ins2_t* ins2) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_ins2_send(chan, ins2->time_boot_ms, ins2->pitch, ins2->roll, ins2->yaw, ins2->lon, ins2->lat, ins2->alt, ins2->v_north, ins2->v_up, ins2->v_east, ins2->gx, ins2->gy, ins2->gz, ins2->ax, ins2->ay, ins2->az, ins2->time, ins2->sys_status, ins2->com_status, ins2->gps_status, ins2->BIT, ins2->seq); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS2, (const char *)ins2, MAVLINK_MSG_ID_INS2_MIN_LEN, MAVLINK_MSG_ID_INS2_LEN, MAVLINK_MSG_ID_INS2_CRC); +#endif +} + +#if MAVLINK_MSG_ID_INS2_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_ins2_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, float pitch, float roll, float yaw, double lon, double lat, float alt, float v_north, float v_up, float v_east, float gx, float gy, float gz, float ax, float ay, float az, double time, uint8_t sys_status, uint8_t com_status, uint8_t gps_status, uint8_t BIT, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_double(buf, 0, lon); + _mav_put_double(buf, 8, lat); + _mav_put_double(buf, 16, time); + _mav_put_uint32_t(buf, 24, time_boot_ms); + _mav_put_float(buf, 28, pitch); + _mav_put_float(buf, 32, roll); + _mav_put_float(buf, 36, yaw); + _mav_put_float(buf, 40, alt); + _mav_put_float(buf, 44, v_north); + _mav_put_float(buf, 48, v_up); + _mav_put_float(buf, 52, v_east); + _mav_put_float(buf, 56, gx); + _mav_put_float(buf, 60, gy); + _mav_put_float(buf, 64, gz); + _mav_put_float(buf, 68, ax); + _mav_put_float(buf, 72, ay); + _mav_put_float(buf, 76, az); + _mav_put_uint8_t(buf, 80, sys_status); + _mav_put_uint8_t(buf, 81, com_status); + _mav_put_uint8_t(buf, 82, gps_status); + _mav_put_uint8_t(buf, 83, BIT); + _mav_put_uint8_t(buf, 84, seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS2, buf, MAVLINK_MSG_ID_INS2_MIN_LEN, MAVLINK_MSG_ID_INS2_LEN, MAVLINK_MSG_ID_INS2_CRC); +#else + mavlink_ins2_t *packet = (mavlink_ins2_t *)msgbuf; + packet->lon = lon; + packet->lat = lat; + packet->time = time; + packet->time_boot_ms = time_boot_ms; + packet->pitch = pitch; + packet->roll = roll; + packet->yaw = yaw; + packet->alt = alt; + packet->v_north = v_north; + packet->v_up = v_up; + packet->v_east = v_east; + packet->gx = gx; + packet->gy = gy; + packet->gz = gz; + packet->ax = ax; + packet->ay = ay; + packet->az = az; + packet->sys_status = sys_status; + packet->com_status = com_status; + packet->gps_status = gps_status; + packet->BIT = BIT; + packet->seq = seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_INS2, (const char *)packet, MAVLINK_MSG_ID_INS2_MIN_LEN, MAVLINK_MSG_ID_INS2_LEN, MAVLINK_MSG_ID_INS2_CRC); +#endif +} +#endif + +#endif + +// MESSAGE INS2 UNPACKING + + +/** + * @brief Get field time_boot_ms from ins2 message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_ins2_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 24); +} + +/** + * @brief Get field pitch from ins2 message + * + * @return pitch(deg) + */ +static inline float mavlink_msg_ins2_get_pitch(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 28); +} + +/** + * @brief Get field roll from ins2 message + * + * @return roll(deg) + */ +static inline float mavlink_msg_ins2_get_roll(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 32); +} + +/** + * @brief Get field yaw from ins2 message + * + * @return yaw(deg) + */ +static inline float mavlink_msg_ins2_get_yaw(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 36); +} + +/** + * @brief Get field lon from ins2 message + * + * @return lon(deg) + */ +static inline double mavlink_msg_ins2_get_lon(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 0); +} + +/** + * @brief Get field lat from ins2 message + * + * @return lat(deg) + */ +static inline double mavlink_msg_ins2_get_lat(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 8); +} + +/** + * @brief Get field alt from ins2 message + * + * @return alt(m) + */ +static inline float mavlink_msg_ins2_get_alt(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 40); +} + +/** + * @brief Get field v_north from ins2 message + * + * @return v_north(m/s) + */ +static inline float mavlink_msg_ins2_get_v_north(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 44); +} + +/** + * @brief Get field v_up from ins2 message + * + * @return v_up(m/s) + */ +static inline float mavlink_msg_ins2_get_v_up(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 48); +} + +/** + * @brief Get field v_east from ins2 message + * + * @return v_east(m/s) + */ +static inline float mavlink_msg_ins2_get_v_east(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 52); +} + +/** + * @brief Get field gx from ins2 message + * + * @return gx(deg/s) + */ +static inline float mavlink_msg_ins2_get_gx(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 56); +} + +/** + * @brief Get field gy from ins2 message + * + * @return gy(deg/s) + */ +static inline float mavlink_msg_ins2_get_gy(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 60); +} + +/** + * @brief Get field gz from ins2 message + * + * @return gz(deg/s) + */ +static inline float mavlink_msg_ins2_get_gz(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 64); +} + +/** + * @brief Get field ax from ins2 message + * + * @return ax(deg/s) + */ +static inline float mavlink_msg_ins2_get_ax(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 68); +} + +/** + * @brief Get field ay from ins2 message + * + * @return ay(deg/s) + */ +static inline float mavlink_msg_ins2_get_ay(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 72); +} + +/** + * @brief Get field az from ins2 message + * + * @return az(deg/s) + */ +static inline float mavlink_msg_ins2_get_az(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 76); +} + +/** + * @brief Get field time from ins2 message + * + * @return time(s) + */ +static inline double mavlink_msg_ins2_get_time(const mavlink_message_t* msg) +{ + return _MAV_RETURN_double(msg, 16); +} + +/** + * @brief Get field sys_status from ins2 message + * + * @return sys_status + */ +static inline uint8_t mavlink_msg_ins2_get_sys_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 80); +} + +/** + * @brief Get field com_status from ins2 message + * + * @return com_status + */ +static inline uint8_t mavlink_msg_ins2_get_com_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 81); +} + +/** + * @brief Get field gps_status from ins2 message + * + * @return gps_status + */ +static inline uint8_t mavlink_msg_ins2_get_gps_status(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 82); +} + +/** + * @brief Get field BIT from ins2 message + * + * @return BIT + */ +static inline uint8_t mavlink_msg_ins2_get_BIT(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 83); +} + +/** + * @brief Get field seq from ins2 message + * + * @return sequeue index + */ +static inline uint8_t mavlink_msg_ins2_get_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 84); +} + +/** + * @brief Decode a ins2 message into a struct + * + * @param msg The message to decode + * @param ins2 C-struct to decode the message contents into + */ +static inline void mavlink_msg_ins2_decode(const mavlink_message_t* msg, mavlink_ins2_t* ins2) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + ins2->lon = mavlink_msg_ins2_get_lon(msg); + ins2->lat = mavlink_msg_ins2_get_lat(msg); + ins2->time = mavlink_msg_ins2_get_time(msg); + ins2->time_boot_ms = mavlink_msg_ins2_get_time_boot_ms(msg); + ins2->pitch = mavlink_msg_ins2_get_pitch(msg); + ins2->roll = mavlink_msg_ins2_get_roll(msg); + ins2->yaw = mavlink_msg_ins2_get_yaw(msg); + ins2->alt = mavlink_msg_ins2_get_alt(msg); + ins2->v_north = mavlink_msg_ins2_get_v_north(msg); + ins2->v_up = mavlink_msg_ins2_get_v_up(msg); + ins2->v_east = mavlink_msg_ins2_get_v_east(msg); + ins2->gx = mavlink_msg_ins2_get_gx(msg); + ins2->gy = mavlink_msg_ins2_get_gy(msg); + ins2->gz = mavlink_msg_ins2_get_gz(msg); + ins2->ax = mavlink_msg_ins2_get_ax(msg); + ins2->ay = mavlink_msg_ins2_get_ay(msg); + ins2->az = mavlink_msg_ins2_get_az(msg); + ins2->sys_status = mavlink_msg_ins2_get_sys_status(msg); + ins2->com_status = mavlink_msg_ins2_get_com_status(msg); + ins2->gps_status = mavlink_msg_ins2_get_gps_status(msg); + ins2->BIT = mavlink_msg_ins2_get_BIT(msg); + ins2->seq = mavlink_msg_ins2_get_seq(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_INS2_LEN? msg->len : MAVLINK_MSG_ID_INS2_LEN; + memset(ins2, 0, MAVLINK_MSG_ID_INS2_LEN); + memcpy(ins2, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/mavlink_msg_pbit_result.h b/ardupilotmega/mavlink_msg_pbit_result.h new file mode 100644 index 0000000..1465d5d --- /dev/null +++ b/ardupilotmega/mavlink_msg_pbit_result.h @@ -0,0 +1,407 @@ +#pragma once +// MESSAGE PBIT_RESULT PACKING + +#define MAVLINK_MSG_ID_PBIT_RESULT 20108 + +MAVPACKED( +typedef struct __mavlink_pbit_result_t { + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + uint32_t CPM1; /*< CPM1*/ + uint32_t CPM2; /*< CPM2*/ + uint32_t CPM3; /*< CPM3*/ + uint32_t BIM1; /*< BIM1*/ + uint32_t BIM2; /*< BIM2*/ + uint32_t DSP[2]; /*< DSP*/ + uint32_t CFL[2]; /*< CFL*/ + uint32_t A659[2]; /*< A659*/ +}) mavlink_pbit_result_t; + +#define MAVLINK_MSG_ID_PBIT_RESULT_LEN 48 +#define MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN 48 +#define MAVLINK_MSG_ID_20108_LEN 48 +#define MAVLINK_MSG_ID_20108_MIN_LEN 48 + +#define MAVLINK_MSG_ID_PBIT_RESULT_CRC 50 +#define MAVLINK_MSG_ID_20108_CRC 50 + +#define MAVLINK_MSG_PBIT_RESULT_FIELD_DSP_LEN 2 +#define MAVLINK_MSG_PBIT_RESULT_FIELD_CFL_LEN 2 +#define MAVLINK_MSG_PBIT_RESULT_FIELD_A659_LEN 2 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_PBIT_RESULT { \ + 20108, \ + "PBIT_RESULT", \ + 9, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_pbit_result_t, time_boot_ms) }, \ + { "CPM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_pbit_result_t, CPM1) }, \ + { "CPM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_pbit_result_t, CPM2) }, \ + { "CPM3", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_pbit_result_t, CPM3) }, \ + { "BIM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 16, offsetof(mavlink_pbit_result_t, BIM1) }, \ + { "BIM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 20, offsetof(mavlink_pbit_result_t, BIM2) }, \ + { "DSP", NULL, MAVLINK_TYPE_UINT32_T, 2, 24, offsetof(mavlink_pbit_result_t, DSP) }, \ + { "CFL", NULL, MAVLINK_TYPE_UINT32_T, 2, 32, offsetof(mavlink_pbit_result_t, CFL) }, \ + { "A659", NULL, MAVLINK_TYPE_UINT32_T, 2, 40, offsetof(mavlink_pbit_result_t, A659) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_PBIT_RESULT { \ + "PBIT_RESULT", \ + 9, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_pbit_result_t, time_boot_ms) }, \ + { "CPM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_pbit_result_t, CPM1) }, \ + { "CPM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_pbit_result_t, CPM2) }, \ + { "CPM3", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_pbit_result_t, CPM3) }, \ + { "BIM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 16, offsetof(mavlink_pbit_result_t, BIM1) }, \ + { "BIM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 20, offsetof(mavlink_pbit_result_t, BIM2) }, \ + { "DSP", NULL, MAVLINK_TYPE_UINT32_T, 2, 24, offsetof(mavlink_pbit_result_t, DSP) }, \ + { "CFL", NULL, MAVLINK_TYPE_UINT32_T, 2, 32, offsetof(mavlink_pbit_result_t, CFL) }, \ + { "A659", NULL, MAVLINK_TYPE_UINT32_T, 2, 40, offsetof(mavlink_pbit_result_t, A659) }, \ + } \ +} +#endif + +/** + * @brief Pack a pbit_result message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param BIM1 BIM1 + * @param BIM2 BIM2 + * @param DSP DSP + * @param CFL CFL + * @param A659 A659 + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_pbit_result_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t BIM1, uint32_t BIM2, const uint32_t *DSP, const uint32_t *CFL, const uint32_t *A659) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, BIM1); + _mav_put_uint32_t(buf, 20, BIM2); + _mav_put_uint32_t_array(buf, 24, DSP, 2); + _mav_put_uint32_t_array(buf, 32, CFL, 2); + _mav_put_uint32_t_array(buf, 40, A659, 2); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PBIT_RESULT_LEN); +#else + mavlink_pbit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.BIM1 = BIM1; + packet.BIM2 = BIM2; + mav_array_memcpy(packet.DSP, DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet.CFL, CFL, sizeof(uint32_t)*2); + mav_array_memcpy(packet.A659, A659, sizeof(uint32_t)*2); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PBIT_RESULT_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PBIT_RESULT; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PBIT_RESULT_LEN, MAVLINK_MSG_ID_PBIT_RESULT_CRC); +} + +/** + * @brief Pack a pbit_result message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param BIM1 BIM1 + * @param BIM2 BIM2 + * @param DSP DSP + * @param CFL CFL + * @param A659 A659 + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_pbit_result_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,uint32_t CPM1,uint32_t CPM2,uint32_t CPM3,uint32_t BIM1,uint32_t BIM2,const uint32_t *DSP,const uint32_t *CFL,const uint32_t *A659) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, BIM1); + _mav_put_uint32_t(buf, 20, BIM2); + _mav_put_uint32_t_array(buf, 24, DSP, 2); + _mav_put_uint32_t_array(buf, 32, CFL, 2); + _mav_put_uint32_t_array(buf, 40, A659, 2); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PBIT_RESULT_LEN); +#else + mavlink_pbit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.BIM1 = BIM1; + packet.BIM2 = BIM2; + mav_array_memcpy(packet.DSP, DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet.CFL, CFL, sizeof(uint32_t)*2); + mav_array_memcpy(packet.A659, A659, sizeof(uint32_t)*2); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PBIT_RESULT_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PBIT_RESULT; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PBIT_RESULT_LEN, MAVLINK_MSG_ID_PBIT_RESULT_CRC); +} + +/** + * @brief Encode a pbit_result struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param pbit_result C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_pbit_result_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_pbit_result_t* pbit_result) +{ + return mavlink_msg_pbit_result_pack(system_id, component_id, msg, pbit_result->time_boot_ms, pbit_result->CPM1, pbit_result->CPM2, pbit_result->CPM3, pbit_result->BIM1, pbit_result->BIM2, pbit_result->DSP, pbit_result->CFL, pbit_result->A659); +} + +/** + * @brief Encode a pbit_result struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param pbit_result C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_pbit_result_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_pbit_result_t* pbit_result) +{ + return mavlink_msg_pbit_result_pack_chan(system_id, component_id, chan, msg, pbit_result->time_boot_ms, pbit_result->CPM1, pbit_result->CPM2, pbit_result->CPM3, pbit_result->BIM1, pbit_result->BIM2, pbit_result->DSP, pbit_result->CFL, pbit_result->A659); +} + +/** + * @brief Send a pbit_result message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param BIM1 BIM1 + * @param BIM2 BIM2 + * @param DSP DSP + * @param CFL CFL + * @param A659 A659 + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_pbit_result_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t BIM1, uint32_t BIM2, const uint32_t *DSP, const uint32_t *CFL, const uint32_t *A659) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, BIM1); + _mav_put_uint32_t(buf, 20, BIM2); + _mav_put_uint32_t_array(buf, 24, DSP, 2); + _mav_put_uint32_t_array(buf, 32, CFL, 2); + _mav_put_uint32_t_array(buf, 40, A659, 2); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PBIT_RESULT, buf, MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PBIT_RESULT_LEN, MAVLINK_MSG_ID_PBIT_RESULT_CRC); +#else + mavlink_pbit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.BIM1 = BIM1; + packet.BIM2 = BIM2; + mav_array_memcpy(packet.DSP, DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet.CFL, CFL, sizeof(uint32_t)*2); + mav_array_memcpy(packet.A659, A659, sizeof(uint32_t)*2); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PBIT_RESULT, (const char *)&packet, MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PBIT_RESULT_LEN, MAVLINK_MSG_ID_PBIT_RESULT_CRC); +#endif +} + +/** + * @brief Send a pbit_result message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_pbit_result_send_struct(mavlink_channel_t chan, const mavlink_pbit_result_t* pbit_result) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_pbit_result_send(chan, pbit_result->time_boot_ms, pbit_result->CPM1, pbit_result->CPM2, pbit_result->CPM3, pbit_result->BIM1, pbit_result->BIM2, pbit_result->DSP, pbit_result->CFL, pbit_result->A659); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PBIT_RESULT, (const char *)pbit_result, MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PBIT_RESULT_LEN, MAVLINK_MSG_ID_PBIT_RESULT_CRC); +#endif +} + +#if MAVLINK_MSG_ID_PBIT_RESULT_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_pbit_result_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t BIM1, uint32_t BIM2, const uint32_t *DSP, const uint32_t *CFL, const uint32_t *A659) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, BIM1); + _mav_put_uint32_t(buf, 20, BIM2); + _mav_put_uint32_t_array(buf, 24, DSP, 2); + _mav_put_uint32_t_array(buf, 32, CFL, 2); + _mav_put_uint32_t_array(buf, 40, A659, 2); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PBIT_RESULT, buf, MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PBIT_RESULT_LEN, MAVLINK_MSG_ID_PBIT_RESULT_CRC); +#else + mavlink_pbit_result_t *packet = (mavlink_pbit_result_t *)msgbuf; + packet->time_boot_ms = time_boot_ms; + packet->CPM1 = CPM1; + packet->CPM2 = CPM2; + packet->CPM3 = CPM3; + packet->BIM1 = BIM1; + packet->BIM2 = BIM2; + mav_array_memcpy(packet->DSP, DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet->CFL, CFL, sizeof(uint32_t)*2); + mav_array_memcpy(packet->A659, A659, sizeof(uint32_t)*2); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PBIT_RESULT, (const char *)packet, MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PBIT_RESULT_LEN, MAVLINK_MSG_ID_PBIT_RESULT_CRC); +#endif +} +#endif + +#endif + +// MESSAGE PBIT_RESULT UNPACKING + + +/** + * @brief Get field time_boot_ms from pbit_result message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_pbit_result_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field CPM1 from pbit_result message + * + * @return CPM1 + */ +static inline uint32_t mavlink_msg_pbit_result_get_CPM1(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 4); +} + +/** + * @brief Get field CPM2 from pbit_result message + * + * @return CPM2 + */ +static inline uint32_t mavlink_msg_pbit_result_get_CPM2(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 8); +} + +/** + * @brief Get field CPM3 from pbit_result message + * + * @return CPM3 + */ +static inline uint32_t mavlink_msg_pbit_result_get_CPM3(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 12); +} + +/** + * @brief Get field BIM1 from pbit_result message + * + * @return BIM1 + */ +static inline uint32_t mavlink_msg_pbit_result_get_BIM1(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 16); +} + +/** + * @brief Get field BIM2 from pbit_result message + * + * @return BIM2 + */ +static inline uint32_t mavlink_msg_pbit_result_get_BIM2(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 20); +} + +/** + * @brief Get field DSP from pbit_result message + * + * @return DSP + */ +static inline uint16_t mavlink_msg_pbit_result_get_DSP(const mavlink_message_t* msg, uint32_t *DSP) +{ + return _MAV_RETURN_uint32_t_array(msg, DSP, 2, 24); +} + +/** + * @brief Get field CFL from pbit_result message + * + * @return CFL + */ +static inline uint16_t mavlink_msg_pbit_result_get_CFL(const mavlink_message_t* msg, uint32_t *CFL) +{ + return _MAV_RETURN_uint32_t_array(msg, CFL, 2, 32); +} + +/** + * @brief Get field A659 from pbit_result message + * + * @return A659 + */ +static inline uint16_t mavlink_msg_pbit_result_get_A659(const mavlink_message_t* msg, uint32_t *A659) +{ + return _MAV_RETURN_uint32_t_array(msg, A659, 2, 40); +} + +/** + * @brief Decode a pbit_result message into a struct + * + * @param msg The message to decode + * @param pbit_result C-struct to decode the message contents into + */ +static inline void mavlink_msg_pbit_result_decode(const mavlink_message_t* msg, mavlink_pbit_result_t* pbit_result) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + pbit_result->time_boot_ms = mavlink_msg_pbit_result_get_time_boot_ms(msg); + pbit_result->CPM1 = mavlink_msg_pbit_result_get_CPM1(msg); + pbit_result->CPM2 = mavlink_msg_pbit_result_get_CPM2(msg); + pbit_result->CPM3 = mavlink_msg_pbit_result_get_CPM3(msg); + pbit_result->BIM1 = mavlink_msg_pbit_result_get_BIM1(msg); + pbit_result->BIM2 = mavlink_msg_pbit_result_get_BIM2(msg); + mavlink_msg_pbit_result_get_DSP(msg, pbit_result->DSP); + mavlink_msg_pbit_result_get_CFL(msg, pbit_result->CFL); + mavlink_msg_pbit_result_get_A659(msg, pbit_result->A659); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_PBIT_RESULT_LEN? msg->len : MAVLINK_MSG_ID_PBIT_RESULT_LEN; + memset(pbit_result, 0, MAVLINK_MSG_ID_PBIT_RESULT_LEN); + memcpy(pbit_result, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/mavlink_msg_pubit_result.h b/ardupilotmega/mavlink_msg_pubit_result.h new file mode 100644 index 0000000..1c77821 --- /dev/null +++ b/ardupilotmega/mavlink_msg_pubit_result.h @@ -0,0 +1,408 @@ +#pragma once +// MESSAGE PUBIT_RESULT PACKING + +#define MAVLINK_MSG_ID_PUBIT_RESULT 20107 + +MAVPACKED( +typedef struct __mavlink_pubit_result_t { + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + uint32_t CPM1; /*< CPM1*/ + uint32_t CPM2; /*< CPM2*/ + uint32_t CPM3; /*< CPM3*/ + uint32_t myCPU; /*< myCPU*/ + uint32_t DSP[2]; /*< DSP*/ + uint32_t RS422[2]; /*< RS422*/ + uint32_t DSP_power[2]; /*< DSP_power*/ + uint32_t DSP_powerstate[12]; /*< DSP_powerstate*/ +}) mavlink_pubit_result_t; + +#define MAVLINK_MSG_ID_PUBIT_RESULT_LEN 92 +#define MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN 92 +#define MAVLINK_MSG_ID_20107_LEN 92 +#define MAVLINK_MSG_ID_20107_MIN_LEN 92 + +#define MAVLINK_MSG_ID_PUBIT_RESULT_CRC 128 +#define MAVLINK_MSG_ID_20107_CRC 128 + +#define MAVLINK_MSG_PUBIT_RESULT_FIELD_DSP_LEN 2 +#define MAVLINK_MSG_PUBIT_RESULT_FIELD_RS422_LEN 2 +#define MAVLINK_MSG_PUBIT_RESULT_FIELD_DSP_POWER_LEN 2 +#define MAVLINK_MSG_PUBIT_RESULT_FIELD_DSP_POWERSTATE_LEN 12 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_PUBIT_RESULT { \ + 20107, \ + "PUBIT_RESULT", \ + 9, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_pubit_result_t, time_boot_ms) }, \ + { "CPM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_pubit_result_t, CPM1) }, \ + { "CPM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_pubit_result_t, CPM2) }, \ + { "CPM3", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_pubit_result_t, CPM3) }, \ + { "myCPU", NULL, MAVLINK_TYPE_UINT32_T, 0, 16, offsetof(mavlink_pubit_result_t, myCPU) }, \ + { "DSP", NULL, MAVLINK_TYPE_UINT32_T, 2, 20, offsetof(mavlink_pubit_result_t, DSP) }, \ + { "RS422", NULL, MAVLINK_TYPE_UINT32_T, 2, 28, offsetof(mavlink_pubit_result_t, RS422) }, \ + { "DSP_power", NULL, MAVLINK_TYPE_UINT32_T, 2, 36, offsetof(mavlink_pubit_result_t, DSP_power) }, \ + { "DSP_powerstate", NULL, MAVLINK_TYPE_UINT32_T, 12, 44, offsetof(mavlink_pubit_result_t, DSP_powerstate) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_PUBIT_RESULT { \ + "PUBIT_RESULT", \ + 9, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_pubit_result_t, time_boot_ms) }, \ + { "CPM1", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_pubit_result_t, CPM1) }, \ + { "CPM2", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_pubit_result_t, CPM2) }, \ + { "CPM3", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_pubit_result_t, CPM3) }, \ + { "myCPU", NULL, MAVLINK_TYPE_UINT32_T, 0, 16, offsetof(mavlink_pubit_result_t, myCPU) }, \ + { "DSP", NULL, MAVLINK_TYPE_UINT32_T, 2, 20, offsetof(mavlink_pubit_result_t, DSP) }, \ + { "RS422", NULL, MAVLINK_TYPE_UINT32_T, 2, 28, offsetof(mavlink_pubit_result_t, RS422) }, \ + { "DSP_power", NULL, MAVLINK_TYPE_UINT32_T, 2, 36, offsetof(mavlink_pubit_result_t, DSP_power) }, \ + { "DSP_powerstate", NULL, MAVLINK_TYPE_UINT32_T, 12, 44, offsetof(mavlink_pubit_result_t, DSP_powerstate) }, \ + } \ +} +#endif + +/** + * @brief Pack a pubit_result message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param myCPU myCPU + * @param DSP DSP + * @param RS422 RS422 + * @param DSP_power DSP_power + * @param DSP_powerstate DSP_powerstate + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_pubit_result_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t myCPU, const uint32_t *DSP, const uint32_t *RS422, const uint32_t *DSP_power, const uint32_t *DSP_powerstate) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PUBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, myCPU); + _mav_put_uint32_t_array(buf, 20, DSP, 2); + _mav_put_uint32_t_array(buf, 28, RS422, 2); + _mav_put_uint32_t_array(buf, 36, DSP_power, 2); + _mav_put_uint32_t_array(buf, 44, DSP_powerstate, 12); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PUBIT_RESULT_LEN); +#else + mavlink_pubit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.myCPU = myCPU; + mav_array_memcpy(packet.DSP, DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet.RS422, RS422, sizeof(uint32_t)*2); + mav_array_memcpy(packet.DSP_power, DSP_power, sizeof(uint32_t)*2); + mav_array_memcpy(packet.DSP_powerstate, DSP_powerstate, sizeof(uint32_t)*12); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PUBIT_RESULT_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PUBIT_RESULT; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_CRC); +} + +/** + * @brief Pack a pubit_result message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param myCPU myCPU + * @param DSP DSP + * @param RS422 RS422 + * @param DSP_power DSP_power + * @param DSP_powerstate DSP_powerstate + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_pubit_result_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,uint32_t CPM1,uint32_t CPM2,uint32_t CPM3,uint32_t myCPU,const uint32_t *DSP,const uint32_t *RS422,const uint32_t *DSP_power,const uint32_t *DSP_powerstate) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PUBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, myCPU); + _mav_put_uint32_t_array(buf, 20, DSP, 2); + _mav_put_uint32_t_array(buf, 28, RS422, 2); + _mav_put_uint32_t_array(buf, 36, DSP_power, 2); + _mav_put_uint32_t_array(buf, 44, DSP_powerstate, 12); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PUBIT_RESULT_LEN); +#else + mavlink_pubit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.myCPU = myCPU; + mav_array_memcpy(packet.DSP, DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet.RS422, RS422, sizeof(uint32_t)*2); + mav_array_memcpy(packet.DSP_power, DSP_power, sizeof(uint32_t)*2); + mav_array_memcpy(packet.DSP_powerstate, DSP_powerstate, sizeof(uint32_t)*12); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PUBIT_RESULT_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_PUBIT_RESULT; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_CRC); +} + +/** + * @brief Encode a pubit_result struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param pubit_result C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_pubit_result_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_pubit_result_t* pubit_result) +{ + return mavlink_msg_pubit_result_pack(system_id, component_id, msg, pubit_result->time_boot_ms, pubit_result->CPM1, pubit_result->CPM2, pubit_result->CPM3, pubit_result->myCPU, pubit_result->DSP, pubit_result->RS422, pubit_result->DSP_power, pubit_result->DSP_powerstate); +} + +/** + * @brief Encode a pubit_result struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param pubit_result C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_pubit_result_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_pubit_result_t* pubit_result) +{ + return mavlink_msg_pubit_result_pack_chan(system_id, component_id, chan, msg, pubit_result->time_boot_ms, pubit_result->CPM1, pubit_result->CPM2, pubit_result->CPM3, pubit_result->myCPU, pubit_result->DSP, pubit_result->RS422, pubit_result->DSP_power, pubit_result->DSP_powerstate); +} + +/** + * @brief Send a pubit_result message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param CPM1 CPM1 + * @param CPM2 CPM2 + * @param CPM3 CPM3 + * @param myCPU myCPU + * @param DSP DSP + * @param RS422 RS422 + * @param DSP_power DSP_power + * @param DSP_powerstate DSP_powerstate + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_pubit_result_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t myCPU, const uint32_t *DSP, const uint32_t *RS422, const uint32_t *DSP_power, const uint32_t *DSP_powerstate) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_PUBIT_RESULT_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, myCPU); + _mav_put_uint32_t_array(buf, 20, DSP, 2); + _mav_put_uint32_t_array(buf, 28, RS422, 2); + _mav_put_uint32_t_array(buf, 36, DSP_power, 2); + _mav_put_uint32_t_array(buf, 44, DSP_powerstate, 12); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PUBIT_RESULT, buf, MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_CRC); +#else + mavlink_pubit_result_t packet; + packet.time_boot_ms = time_boot_ms; + packet.CPM1 = CPM1; + packet.CPM2 = CPM2; + packet.CPM3 = CPM3; + packet.myCPU = myCPU; + mav_array_memcpy(packet.DSP, DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet.RS422, RS422, sizeof(uint32_t)*2); + mav_array_memcpy(packet.DSP_power, DSP_power, sizeof(uint32_t)*2); + mav_array_memcpy(packet.DSP_powerstate, DSP_powerstate, sizeof(uint32_t)*12); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PUBIT_RESULT, (const char *)&packet, MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_CRC); +#endif +} + +/** + * @brief Send a pubit_result message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_pubit_result_send_struct(mavlink_channel_t chan, const mavlink_pubit_result_t* pubit_result) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_pubit_result_send(chan, pubit_result->time_boot_ms, pubit_result->CPM1, pubit_result->CPM2, pubit_result->CPM3, pubit_result->myCPU, pubit_result->DSP, pubit_result->RS422, pubit_result->DSP_power, pubit_result->DSP_powerstate); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PUBIT_RESULT, (const char *)pubit_result, MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_CRC); +#endif +} + +#if MAVLINK_MSG_ID_PUBIT_RESULT_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_pubit_result_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, uint32_t CPM1, uint32_t CPM2, uint32_t CPM3, uint32_t myCPU, const uint32_t *DSP, const uint32_t *RS422, const uint32_t *DSP_power, const uint32_t *DSP_powerstate) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint32_t(buf, 4, CPM1); + _mav_put_uint32_t(buf, 8, CPM2); + _mav_put_uint32_t(buf, 12, CPM3); + _mav_put_uint32_t(buf, 16, myCPU); + _mav_put_uint32_t_array(buf, 20, DSP, 2); + _mav_put_uint32_t_array(buf, 28, RS422, 2); + _mav_put_uint32_t_array(buf, 36, DSP_power, 2); + _mav_put_uint32_t_array(buf, 44, DSP_powerstate, 12); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PUBIT_RESULT, buf, MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_CRC); +#else + mavlink_pubit_result_t *packet = (mavlink_pubit_result_t *)msgbuf; + packet->time_boot_ms = time_boot_ms; + packet->CPM1 = CPM1; + packet->CPM2 = CPM2; + packet->CPM3 = CPM3; + packet->myCPU = myCPU; + mav_array_memcpy(packet->DSP, DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet->RS422, RS422, sizeof(uint32_t)*2); + mav_array_memcpy(packet->DSP_power, DSP_power, sizeof(uint32_t)*2); + mav_array_memcpy(packet->DSP_powerstate, DSP_powerstate, sizeof(uint32_t)*12); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PUBIT_RESULT, (const char *)packet, MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_LEN, MAVLINK_MSG_ID_PUBIT_RESULT_CRC); +#endif +} +#endif + +#endif + +// MESSAGE PUBIT_RESULT UNPACKING + + +/** + * @brief Get field time_boot_ms from pubit_result message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_pubit_result_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field CPM1 from pubit_result message + * + * @return CPM1 + */ +static inline uint32_t mavlink_msg_pubit_result_get_CPM1(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 4); +} + +/** + * @brief Get field CPM2 from pubit_result message + * + * @return CPM2 + */ +static inline uint32_t mavlink_msg_pubit_result_get_CPM2(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 8); +} + +/** + * @brief Get field CPM3 from pubit_result message + * + * @return CPM3 + */ +static inline uint32_t mavlink_msg_pubit_result_get_CPM3(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 12); +} + +/** + * @brief Get field myCPU from pubit_result message + * + * @return myCPU + */ +static inline uint32_t mavlink_msg_pubit_result_get_myCPU(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 16); +} + +/** + * @brief Get field DSP from pubit_result message + * + * @return DSP + */ +static inline uint16_t mavlink_msg_pubit_result_get_DSP(const mavlink_message_t* msg, uint32_t *DSP) +{ + return _MAV_RETURN_uint32_t_array(msg, DSP, 2, 20); +} + +/** + * @brief Get field RS422 from pubit_result message + * + * @return RS422 + */ +static inline uint16_t mavlink_msg_pubit_result_get_RS422(const mavlink_message_t* msg, uint32_t *RS422) +{ + return _MAV_RETURN_uint32_t_array(msg, RS422, 2, 28); +} + +/** + * @brief Get field DSP_power from pubit_result message + * + * @return DSP_power + */ +static inline uint16_t mavlink_msg_pubit_result_get_DSP_power(const mavlink_message_t* msg, uint32_t *DSP_power) +{ + return _MAV_RETURN_uint32_t_array(msg, DSP_power, 2, 36); +} + +/** + * @brief Get field DSP_powerstate from pubit_result message + * + * @return DSP_powerstate + */ +static inline uint16_t mavlink_msg_pubit_result_get_DSP_powerstate(const mavlink_message_t* msg, uint32_t *DSP_powerstate) +{ + return _MAV_RETURN_uint32_t_array(msg, DSP_powerstate, 12, 44); +} + +/** + * @brief Decode a pubit_result message into a struct + * + * @param msg The message to decode + * @param pubit_result C-struct to decode the message contents into + */ +static inline void mavlink_msg_pubit_result_decode(const mavlink_message_t* msg, mavlink_pubit_result_t* pubit_result) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + pubit_result->time_boot_ms = mavlink_msg_pubit_result_get_time_boot_ms(msg); + pubit_result->CPM1 = mavlink_msg_pubit_result_get_CPM1(msg); + pubit_result->CPM2 = mavlink_msg_pubit_result_get_CPM2(msg); + pubit_result->CPM3 = mavlink_msg_pubit_result_get_CPM3(msg); + pubit_result->myCPU = mavlink_msg_pubit_result_get_myCPU(msg); + mavlink_msg_pubit_result_get_DSP(msg, pubit_result->DSP); + mavlink_msg_pubit_result_get_RS422(msg, pubit_result->RS422); + mavlink_msg_pubit_result_get_DSP_power(msg, pubit_result->DSP_power); + mavlink_msg_pubit_result_get_DSP_powerstate(msg, pubit_result->DSP_powerstate); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_PUBIT_RESULT_LEN? msg->len : MAVLINK_MSG_ID_PUBIT_RESULT_LEN; + memset(pubit_result, 0, MAVLINK_MSG_ID_PUBIT_RESULT_LEN); + memcpy(pubit_result, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/mavlink_msg_radar_altm.h b/ardupilotmega/mavlink_msg_radar_altm.h new file mode 100644 index 0000000..fe7f6c0 --- /dev/null +++ b/ardupilotmega/mavlink_msg_radar_altm.h @@ -0,0 +1,288 @@ +#pragma once +// MESSAGE RADAR_ALTM PACKING + +#define MAVLINK_MSG_ID_RADAR_ALTM 20102 + +MAVPACKED( +typedef struct __mavlink_radar_altm_t { + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + float AGL; /*< AGL[m]*/ + uint8_t enabled; /*< Enabled*/ + uint8_t seq; /*< sequeue index*/ +}) mavlink_radar_altm_t; + +#define MAVLINK_MSG_ID_RADAR_ALTM_LEN 10 +#define MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN 10 +#define MAVLINK_MSG_ID_20102_LEN 10 +#define MAVLINK_MSG_ID_20102_MIN_LEN 10 + +#define MAVLINK_MSG_ID_RADAR_ALTM_CRC 128 +#define MAVLINK_MSG_ID_20102_CRC 128 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_RADAR_ALTM { \ + 20102, \ + "RADAR_ALTM", \ + 4, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_radar_altm_t, time_boot_ms) }, \ + { "AGL", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_radar_altm_t, AGL) }, \ + { "enabled", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_radar_altm_t, enabled) }, \ + { "seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_radar_altm_t, seq) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_RADAR_ALTM { \ + "RADAR_ALTM", \ + 4, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_radar_altm_t, time_boot_ms) }, \ + { "AGL", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_radar_altm_t, AGL) }, \ + { "enabled", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_radar_altm_t, enabled) }, \ + { "seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_radar_altm_t, seq) }, \ + } \ +} +#endif + +/** + * @brief Pack a radar_altm message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param AGL AGL[m] + * @param enabled Enabled + * @param seq sequeue index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_radar_altm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, float AGL, uint8_t enabled, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RADAR_ALTM_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_float(buf, 4, AGL); + _mav_put_uint8_t(buf, 8, enabled); + _mav_put_uint8_t(buf, 9, seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_RADAR_ALTM_LEN); +#else + mavlink_radar_altm_t packet; + packet.time_boot_ms = time_boot_ms; + packet.AGL = AGL; + packet.enabled = enabled; + packet.seq = seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_RADAR_ALTM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_RADAR_ALTM; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN, MAVLINK_MSG_ID_RADAR_ALTM_LEN, MAVLINK_MSG_ID_RADAR_ALTM_CRC); +} + +/** + * @brief Pack a radar_altm message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param AGL AGL[m] + * @param enabled Enabled + * @param seq sequeue index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_radar_altm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,float AGL,uint8_t enabled,uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RADAR_ALTM_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_float(buf, 4, AGL); + _mav_put_uint8_t(buf, 8, enabled); + _mav_put_uint8_t(buf, 9, seq); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_RADAR_ALTM_LEN); +#else + mavlink_radar_altm_t packet; + packet.time_boot_ms = time_boot_ms; + packet.AGL = AGL; + packet.enabled = enabled; + packet.seq = seq; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_RADAR_ALTM_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_RADAR_ALTM; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN, MAVLINK_MSG_ID_RADAR_ALTM_LEN, MAVLINK_MSG_ID_RADAR_ALTM_CRC); +} + +/** + * @brief Encode a radar_altm struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param radar_altm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_radar_altm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_radar_altm_t* radar_altm) +{ + return mavlink_msg_radar_altm_pack(system_id, component_id, msg, radar_altm->time_boot_ms, radar_altm->AGL, radar_altm->enabled, radar_altm->seq); +} + +/** + * @brief Encode a radar_altm struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param radar_altm C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_radar_altm_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_radar_altm_t* radar_altm) +{ + return mavlink_msg_radar_altm_pack_chan(system_id, component_id, chan, msg, radar_altm->time_boot_ms, radar_altm->AGL, radar_altm->enabled, radar_altm->seq); +} + +/** + * @brief Send a radar_altm message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param AGL AGL[m] + * @param enabled Enabled + * @param seq sequeue index + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_radar_altm_send(mavlink_channel_t chan, uint32_t time_boot_ms, float AGL, uint8_t enabled, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_RADAR_ALTM_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_float(buf, 4, AGL); + _mav_put_uint8_t(buf, 8, enabled); + _mav_put_uint8_t(buf, 9, seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RADAR_ALTM, buf, MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN, MAVLINK_MSG_ID_RADAR_ALTM_LEN, MAVLINK_MSG_ID_RADAR_ALTM_CRC); +#else + mavlink_radar_altm_t packet; + packet.time_boot_ms = time_boot_ms; + packet.AGL = AGL; + packet.enabled = enabled; + packet.seq = seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RADAR_ALTM, (const char *)&packet, MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN, MAVLINK_MSG_ID_RADAR_ALTM_LEN, MAVLINK_MSG_ID_RADAR_ALTM_CRC); +#endif +} + +/** + * @brief Send a radar_altm message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_radar_altm_send_struct(mavlink_channel_t chan, const mavlink_radar_altm_t* radar_altm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_radar_altm_send(chan, radar_altm->time_boot_ms, radar_altm->AGL, radar_altm->enabled, radar_altm->seq); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RADAR_ALTM, (const char *)radar_altm, MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN, MAVLINK_MSG_ID_RADAR_ALTM_LEN, MAVLINK_MSG_ID_RADAR_ALTM_CRC); +#endif +} + +#if MAVLINK_MSG_ID_RADAR_ALTM_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_radar_altm_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, float AGL, uint8_t enabled, uint8_t seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_float(buf, 4, AGL); + _mav_put_uint8_t(buf, 8, enabled); + _mav_put_uint8_t(buf, 9, seq); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RADAR_ALTM, buf, MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN, MAVLINK_MSG_ID_RADAR_ALTM_LEN, MAVLINK_MSG_ID_RADAR_ALTM_CRC); +#else + mavlink_radar_altm_t *packet = (mavlink_radar_altm_t *)msgbuf; + packet->time_boot_ms = time_boot_ms; + packet->AGL = AGL; + packet->enabled = enabled; + packet->seq = seq; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RADAR_ALTM, (const char *)packet, MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN, MAVLINK_MSG_ID_RADAR_ALTM_LEN, MAVLINK_MSG_ID_RADAR_ALTM_CRC); +#endif +} +#endif + +#endif + +// MESSAGE RADAR_ALTM UNPACKING + + +/** + * @brief Get field time_boot_ms from radar_altm message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_radar_altm_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field AGL from radar_altm message + * + * @return AGL[m] + */ +static inline float mavlink_msg_radar_altm_get_AGL(const mavlink_message_t* msg) +{ + return _MAV_RETURN_float(msg, 4); +} + +/** + * @brief Get field enabled from radar_altm message + * + * @return Enabled + */ +static inline uint8_t mavlink_msg_radar_altm_get_enabled(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 8); +} + +/** + * @brief Get field seq from radar_altm message + * + * @return sequeue index + */ +static inline uint8_t mavlink_msg_radar_altm_get_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 9); +} + +/** + * @brief Decode a radar_altm message into a struct + * + * @param msg The message to decode + * @param radar_altm C-struct to decode the message contents into + */ +static inline void mavlink_msg_radar_altm_decode(const mavlink_message_t* msg, mavlink_radar_altm_t* radar_altm) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + radar_altm->time_boot_ms = mavlink_msg_radar_altm_get_time_boot_ms(msg); + radar_altm->AGL = mavlink_msg_radar_altm_get_AGL(msg); + radar_altm->enabled = mavlink_msg_radar_altm_get_enabled(msg); + radar_altm->seq = mavlink_msg_radar_altm_get_seq(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_RADAR_ALTM_LEN? msg->len : MAVLINK_MSG_ID_RADAR_ALTM_LEN; + memset(radar_altm, 0, MAVLINK_MSG_ID_RADAR_ALTM_LEN); + memcpy(radar_altm, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/mavlink_msg_servos.h b/ardupilotmega/mavlink_msg_servos.h new file mode 100644 index 0000000..11507e4 --- /dev/null +++ b/ardupilotmega/mavlink_msg_servos.h @@ -0,0 +1,383 @@ +#pragma once +// MESSAGE SERVOS PACKING + +#define MAVLINK_MSG_ID_SERVOS 20106 + +MAVPACKED( +typedef struct __mavlink_servos_t { + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + float cmd1[2]; /*< ActuatorCmd1(deg)*/ + float cmd2[2]; /*< ActuatorCmd2(deg)*/ + float pos1[2]; /*< ActuatorPos1(deg)*/ + float pos2[2]; /*< ActuatorPos2(deg)*/ + uint8_t out_seq; /*< output index*/ + uint8_t in1_seq; /*< input1 index*/ + uint8_t in2_seq; /*< input2 index*/ +}) mavlink_servos_t; + +#define MAVLINK_MSG_ID_SERVOS_LEN 39 +#define MAVLINK_MSG_ID_SERVOS_MIN_LEN 39 +#define MAVLINK_MSG_ID_20106_LEN 39 +#define MAVLINK_MSG_ID_20106_MIN_LEN 39 + +#define MAVLINK_MSG_ID_SERVOS_CRC 92 +#define MAVLINK_MSG_ID_20106_CRC 92 + +#define MAVLINK_MSG_SERVOS_FIELD_CMD1_LEN 2 +#define MAVLINK_MSG_SERVOS_FIELD_CMD2_LEN 2 +#define MAVLINK_MSG_SERVOS_FIELD_POS1_LEN 2 +#define MAVLINK_MSG_SERVOS_FIELD_POS2_LEN 2 + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_SERVOS { \ + 20106, \ + "SERVOS", \ + 8, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_servos_t, time_boot_ms) }, \ + { "cmd1", NULL, MAVLINK_TYPE_FLOAT, 2, 4, offsetof(mavlink_servos_t, cmd1) }, \ + { "cmd2", NULL, MAVLINK_TYPE_FLOAT, 2, 12, offsetof(mavlink_servos_t, cmd2) }, \ + { "pos1", NULL, MAVLINK_TYPE_FLOAT, 2, 20, offsetof(mavlink_servos_t, pos1) }, \ + { "pos2", NULL, MAVLINK_TYPE_FLOAT, 2, 28, offsetof(mavlink_servos_t, pos2) }, \ + { "out_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_servos_t, out_seq) }, \ + { "in1_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 37, offsetof(mavlink_servos_t, in1_seq) }, \ + { "in2_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 38, offsetof(mavlink_servos_t, in2_seq) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_SERVOS { \ + "SERVOS", \ + 8, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_servos_t, time_boot_ms) }, \ + { "cmd1", NULL, MAVLINK_TYPE_FLOAT, 2, 4, offsetof(mavlink_servos_t, cmd1) }, \ + { "cmd2", NULL, MAVLINK_TYPE_FLOAT, 2, 12, offsetof(mavlink_servos_t, cmd2) }, \ + { "pos1", NULL, MAVLINK_TYPE_FLOAT, 2, 20, offsetof(mavlink_servos_t, pos1) }, \ + { "pos2", NULL, MAVLINK_TYPE_FLOAT, 2, 28, offsetof(mavlink_servos_t, pos2) }, \ + { "out_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_servos_t, out_seq) }, \ + { "in1_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 37, offsetof(mavlink_servos_t, in1_seq) }, \ + { "in2_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 38, offsetof(mavlink_servos_t, in2_seq) }, \ + } \ +} +#endif + +/** + * @brief Pack a servos message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param cmd1 ActuatorCmd1(deg) + * @param cmd2 ActuatorCmd2(deg) + * @param pos1 ActuatorPos1(deg) + * @param pos2 ActuatorPos2(deg) + * @param out_seq output index + * @param in1_seq input1 index + * @param in2_seq input2 index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_servos_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, const float *cmd1, const float *cmd2, const float *pos1, const float *pos2, uint8_t out_seq, uint8_t in1_seq, uint8_t in2_seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVOS_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint8_t(buf, 36, out_seq); + _mav_put_uint8_t(buf, 37, in1_seq); + _mav_put_uint8_t(buf, 38, in2_seq); + _mav_put_float_array(buf, 4, cmd1, 2); + _mav_put_float_array(buf, 12, cmd2, 2); + _mav_put_float_array(buf, 20, pos1, 2); + _mav_put_float_array(buf, 28, pos2, 2); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SERVOS_LEN); +#else + mavlink_servos_t packet; + packet.time_boot_ms = time_boot_ms; + packet.out_seq = out_seq; + packet.in1_seq = in1_seq; + packet.in2_seq = in2_seq; + mav_array_memcpy(packet.cmd1, cmd1, sizeof(float)*2); + mav_array_memcpy(packet.cmd2, cmd2, sizeof(float)*2); + mav_array_memcpy(packet.pos1, pos1, sizeof(float)*2); + mav_array_memcpy(packet.pos2, pos2, sizeof(float)*2); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SERVOS_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SERVOS; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SERVOS_MIN_LEN, MAVLINK_MSG_ID_SERVOS_LEN, MAVLINK_MSG_ID_SERVOS_CRC); +} + +/** + * @brief Pack a servos message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param cmd1 ActuatorCmd1(deg) + * @param cmd2 ActuatorCmd2(deg) + * @param pos1 ActuatorPos1(deg) + * @param pos2 ActuatorPos2(deg) + * @param out_seq output index + * @param in1_seq input1 index + * @param in2_seq input2 index + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_servos_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,const float *cmd1,const float *cmd2,const float *pos1,const float *pos2,uint8_t out_seq,uint8_t in1_seq,uint8_t in2_seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVOS_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint8_t(buf, 36, out_seq); + _mav_put_uint8_t(buf, 37, in1_seq); + _mav_put_uint8_t(buf, 38, in2_seq); + _mav_put_float_array(buf, 4, cmd1, 2); + _mav_put_float_array(buf, 12, cmd2, 2); + _mav_put_float_array(buf, 20, pos1, 2); + _mav_put_float_array(buf, 28, pos2, 2); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SERVOS_LEN); +#else + mavlink_servos_t packet; + packet.time_boot_ms = time_boot_ms; + packet.out_seq = out_seq; + packet.in1_seq = in1_seq; + packet.in2_seq = in2_seq; + mav_array_memcpy(packet.cmd1, cmd1, sizeof(float)*2); + mav_array_memcpy(packet.cmd2, cmd2, sizeof(float)*2); + mav_array_memcpy(packet.pos1, pos1, sizeof(float)*2); + mav_array_memcpy(packet.pos2, pos2, sizeof(float)*2); + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SERVOS_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_SERVOS; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SERVOS_MIN_LEN, MAVLINK_MSG_ID_SERVOS_LEN, MAVLINK_MSG_ID_SERVOS_CRC); +} + +/** + * @brief Encode a servos struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param servos C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_servos_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_servos_t* servos) +{ + return mavlink_msg_servos_pack(system_id, component_id, msg, servos->time_boot_ms, servos->cmd1, servos->cmd2, servos->pos1, servos->pos2, servos->out_seq, servos->in1_seq, servos->in2_seq); +} + +/** + * @brief Encode a servos struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param servos C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_servos_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_servos_t* servos) +{ + return mavlink_msg_servos_pack_chan(system_id, component_id, chan, msg, servos->time_boot_ms, servos->cmd1, servos->cmd2, servos->pos1, servos->pos2, servos->out_seq, servos->in1_seq, servos->in2_seq); +} + +/** + * @brief Send a servos message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param cmd1 ActuatorCmd1(deg) + * @param cmd2 ActuatorCmd2(deg) + * @param pos1 ActuatorPos1(deg) + * @param pos2 ActuatorPos2(deg) + * @param out_seq output index + * @param in1_seq input1 index + * @param in2_seq input2 index + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_servos_send(mavlink_channel_t chan, uint32_t time_boot_ms, const float *cmd1, const float *cmd2, const float *pos1, const float *pos2, uint8_t out_seq, uint8_t in1_seq, uint8_t in2_seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_SERVOS_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint8_t(buf, 36, out_seq); + _mav_put_uint8_t(buf, 37, in1_seq); + _mav_put_uint8_t(buf, 38, in2_seq); + _mav_put_float_array(buf, 4, cmd1, 2); + _mav_put_float_array(buf, 12, cmd2, 2); + _mav_put_float_array(buf, 20, pos1, 2); + _mav_put_float_array(buf, 28, pos2, 2); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVOS, buf, MAVLINK_MSG_ID_SERVOS_MIN_LEN, MAVLINK_MSG_ID_SERVOS_LEN, MAVLINK_MSG_ID_SERVOS_CRC); +#else + mavlink_servos_t packet; + packet.time_boot_ms = time_boot_ms; + packet.out_seq = out_seq; + packet.in1_seq = in1_seq; + packet.in2_seq = in2_seq; + mav_array_memcpy(packet.cmd1, cmd1, sizeof(float)*2); + mav_array_memcpy(packet.cmd2, cmd2, sizeof(float)*2); + mav_array_memcpy(packet.pos1, pos1, sizeof(float)*2); + mav_array_memcpy(packet.pos2, pos2, sizeof(float)*2); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVOS, (const char *)&packet, MAVLINK_MSG_ID_SERVOS_MIN_LEN, MAVLINK_MSG_ID_SERVOS_LEN, MAVLINK_MSG_ID_SERVOS_CRC); +#endif +} + +/** + * @brief Send a servos message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_servos_send_struct(mavlink_channel_t chan, const mavlink_servos_t* servos) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_servos_send(chan, servos->time_boot_ms, servos->cmd1, servos->cmd2, servos->pos1, servos->pos2, servos->out_seq, servos->in1_seq, servos->in2_seq); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVOS, (const char *)servos, MAVLINK_MSG_ID_SERVOS_MIN_LEN, MAVLINK_MSG_ID_SERVOS_LEN, MAVLINK_MSG_ID_SERVOS_CRC); +#endif +} + +#if MAVLINK_MSG_ID_SERVOS_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_servos_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, const float *cmd1, const float *cmd2, const float *pos1, const float *pos2, uint8_t out_seq, uint8_t in1_seq, uint8_t in2_seq) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint8_t(buf, 36, out_seq); + _mav_put_uint8_t(buf, 37, in1_seq); + _mav_put_uint8_t(buf, 38, in2_seq); + _mav_put_float_array(buf, 4, cmd1, 2); + _mav_put_float_array(buf, 12, cmd2, 2); + _mav_put_float_array(buf, 20, pos1, 2); + _mav_put_float_array(buf, 28, pos2, 2); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVOS, buf, MAVLINK_MSG_ID_SERVOS_MIN_LEN, MAVLINK_MSG_ID_SERVOS_LEN, MAVLINK_MSG_ID_SERVOS_CRC); +#else + mavlink_servos_t *packet = (mavlink_servos_t *)msgbuf; + packet->time_boot_ms = time_boot_ms; + packet->out_seq = out_seq; + packet->in1_seq = in1_seq; + packet->in2_seq = in2_seq; + mav_array_memcpy(packet->cmd1, cmd1, sizeof(float)*2); + mav_array_memcpy(packet->cmd2, cmd2, sizeof(float)*2); + mav_array_memcpy(packet->pos1, pos1, sizeof(float)*2); + mav_array_memcpy(packet->pos2, pos2, sizeof(float)*2); + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SERVOS, (const char *)packet, MAVLINK_MSG_ID_SERVOS_MIN_LEN, MAVLINK_MSG_ID_SERVOS_LEN, MAVLINK_MSG_ID_SERVOS_CRC); +#endif +} +#endif + +#endif + +// MESSAGE SERVOS UNPACKING + + +/** + * @brief Get field time_boot_ms from servos message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_servos_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field cmd1 from servos message + * + * @return ActuatorCmd1(deg) + */ +static inline uint16_t mavlink_msg_servos_get_cmd1(const mavlink_message_t* msg, float *cmd1) +{ + return _MAV_RETURN_float_array(msg, cmd1, 2, 4); +} + +/** + * @brief Get field cmd2 from servos message + * + * @return ActuatorCmd2(deg) + */ +static inline uint16_t mavlink_msg_servos_get_cmd2(const mavlink_message_t* msg, float *cmd2) +{ + return _MAV_RETURN_float_array(msg, cmd2, 2, 12); +} + +/** + * @brief Get field pos1 from servos message + * + * @return ActuatorPos1(deg) + */ +static inline uint16_t mavlink_msg_servos_get_pos1(const mavlink_message_t* msg, float *pos1) +{ + return _MAV_RETURN_float_array(msg, pos1, 2, 20); +} + +/** + * @brief Get field pos2 from servos message + * + * @return ActuatorPos2(deg) + */ +static inline uint16_t mavlink_msg_servos_get_pos2(const mavlink_message_t* msg, float *pos2) +{ + return _MAV_RETURN_float_array(msg, pos2, 2, 28); +} + +/** + * @brief Get field out_seq from servos message + * + * @return output index + */ +static inline uint8_t mavlink_msg_servos_get_out_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 36); +} + +/** + * @brief Get field in1_seq from servos message + * + * @return input1 index + */ +static inline uint8_t mavlink_msg_servos_get_in1_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 37); +} + +/** + * @brief Get field in2_seq from servos message + * + * @return input2 index + */ +static inline uint8_t mavlink_msg_servos_get_in2_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 38); +} + +/** + * @brief Decode a servos message into a struct + * + * @param msg The message to decode + * @param servos C-struct to decode the message contents into + */ +static inline void mavlink_msg_servos_decode(const mavlink_message_t* msg, mavlink_servos_t* servos) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + servos->time_boot_ms = mavlink_msg_servos_get_time_boot_ms(msg); + mavlink_msg_servos_get_cmd1(msg, servos->cmd1); + mavlink_msg_servos_get_cmd2(msg, servos->cmd2); + mavlink_msg_servos_get_pos1(msg, servos->pos1); + mavlink_msg_servos_get_pos2(msg, servos->pos2); + servos->out_seq = mavlink_msg_servos_get_out_seq(msg); + servos->in1_seq = mavlink_msg_servos_get_in1_seq(msg); + servos->in2_seq = mavlink_msg_servos_get_in2_seq(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_SERVOS_LEN? msg->len : MAVLINK_MSG_ID_SERVOS_LEN; + memset(servos, 0, MAVLINK_MSG_ID_SERVOS_LEN); + memcpy(servos, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/mavlink_msg_tub_lnd.h b/ardupilotmega/mavlink_msg_tub_lnd.h new file mode 100644 index 0000000..824eee7 --- /dev/null +++ b/ardupilotmega/mavlink_msg_tub_lnd.h @@ -0,0 +1,438 @@ +#pragma once +// MESSAGE TUB_LND PACKING + +#define MAVLINK_MSG_ID_TUB_LND 20105 + +MAVPACKED( +typedef struct __mavlink_tub_lnd_t { + uint32_t time_boot_ms; /*< Timestamp (milliseconds since system boot)*/ + uint8_t tub_in_seq; /*< TUB input index*/ + uint8_t lnd_in_seq; /*< LND input index*/ + uint8_t WOW; /*< WOW*/ + uint8_t DOOR; /*< DOOR*/ + uint8_t pres; /*< pressure*/ + uint8_t throttle; /*< throttle*/ + uint8_t brake_left; /*< left brake*/ + uint8_t brake_right; /*< right brake*/ + int8_t steer; /*< steer(deg)*/ +}) mavlink_tub_lnd_t; + +#define MAVLINK_MSG_ID_TUB_LND_LEN 13 +#define MAVLINK_MSG_ID_TUB_LND_MIN_LEN 13 +#define MAVLINK_MSG_ID_20105_LEN 13 +#define MAVLINK_MSG_ID_20105_MIN_LEN 13 + +#define MAVLINK_MSG_ID_TUB_LND_CRC 92 +#define MAVLINK_MSG_ID_20105_CRC 92 + + + +#if MAVLINK_COMMAND_24BIT +#define MAVLINK_MESSAGE_INFO_TUB_LND { \ + 20105, \ + "TUB_LND", \ + 10, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_tub_lnd_t, time_boot_ms) }, \ + { "tub_in_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_tub_lnd_t, tub_in_seq) }, \ + { "lnd_in_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_tub_lnd_t, lnd_in_seq) }, \ + { "WOW", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_tub_lnd_t, WOW) }, \ + { "DOOR", NULL, MAVLINK_TYPE_UINT8_T, 0, 7, offsetof(mavlink_tub_lnd_t, DOOR) }, \ + { "pres", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_tub_lnd_t, pres) }, \ + { "throttle", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_tub_lnd_t, throttle) }, \ + { "brake_left", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_tub_lnd_t, brake_left) }, \ + { "brake_right", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_tub_lnd_t, brake_right) }, \ + { "steer", NULL, MAVLINK_TYPE_INT8_T, 0, 12, offsetof(mavlink_tub_lnd_t, steer) }, \ + } \ +} +#else +#define MAVLINK_MESSAGE_INFO_TUB_LND { \ + "TUB_LND", \ + 10, \ + { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_tub_lnd_t, time_boot_ms) }, \ + { "tub_in_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_tub_lnd_t, tub_in_seq) }, \ + { "lnd_in_seq", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_tub_lnd_t, lnd_in_seq) }, \ + { "WOW", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_tub_lnd_t, WOW) }, \ + { "DOOR", NULL, MAVLINK_TYPE_UINT8_T, 0, 7, offsetof(mavlink_tub_lnd_t, DOOR) }, \ + { "pres", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_tub_lnd_t, pres) }, \ + { "throttle", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_tub_lnd_t, throttle) }, \ + { "brake_left", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_tub_lnd_t, brake_left) }, \ + { "brake_right", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_tub_lnd_t, brake_right) }, \ + { "steer", NULL, MAVLINK_TYPE_INT8_T, 0, 12, offsetof(mavlink_tub_lnd_t, steer) }, \ + } \ +} +#endif + +/** + * @brief Pack a tub_lnd message + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param tub_in_seq TUB input index + * @param lnd_in_seq LND input index + * @param WOW WOW + * @param DOOR DOOR + * @param pres pressure + * @param throttle throttle + * @param brake_left left brake + * @param brake_right right brake + * @param steer steer(deg) + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_tub_lnd_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, + uint32_t time_boot_ms, uint8_t tub_in_seq, uint8_t lnd_in_seq, uint8_t WOW, uint8_t DOOR, uint8_t pres, uint8_t throttle, uint8_t brake_left, uint8_t brake_right, int8_t steer) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TUB_LND_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint8_t(buf, 4, tub_in_seq); + _mav_put_uint8_t(buf, 5, lnd_in_seq); + _mav_put_uint8_t(buf, 6, WOW); + _mav_put_uint8_t(buf, 7, DOOR); + _mav_put_uint8_t(buf, 8, pres); + _mav_put_uint8_t(buf, 9, throttle); + _mav_put_uint8_t(buf, 10, brake_left); + _mav_put_uint8_t(buf, 11, brake_right); + _mav_put_int8_t(buf, 12, steer); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TUB_LND_LEN); +#else + mavlink_tub_lnd_t packet; + packet.time_boot_ms = time_boot_ms; + packet.tub_in_seq = tub_in_seq; + packet.lnd_in_seq = lnd_in_seq; + packet.WOW = WOW; + packet.DOOR = DOOR; + packet.pres = pres; + packet.throttle = throttle; + packet.brake_left = brake_left; + packet.brake_right = brake_right; + packet.steer = steer; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TUB_LND_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_TUB_LND; + return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_TUB_LND_MIN_LEN, MAVLINK_MSG_ID_TUB_LND_LEN, MAVLINK_MSG_ID_TUB_LND_CRC); +} + +/** + * @brief Pack a tub_lnd message on a channel + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param tub_in_seq TUB input index + * @param lnd_in_seq LND input index + * @param WOW WOW + * @param DOOR DOOR + * @param pres pressure + * @param throttle throttle + * @param brake_left left brake + * @param brake_right right brake + * @param steer steer(deg) + * @return length of the message in bytes (excluding serial stream start sign) + */ +static inline uint16_t mavlink_msg_tub_lnd_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, + mavlink_message_t* msg, + uint32_t time_boot_ms,uint8_t tub_in_seq,uint8_t lnd_in_seq,uint8_t WOW,uint8_t DOOR,uint8_t pres,uint8_t throttle,uint8_t brake_left,uint8_t brake_right,int8_t steer) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TUB_LND_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint8_t(buf, 4, tub_in_seq); + _mav_put_uint8_t(buf, 5, lnd_in_seq); + _mav_put_uint8_t(buf, 6, WOW); + _mav_put_uint8_t(buf, 7, DOOR); + _mav_put_uint8_t(buf, 8, pres); + _mav_put_uint8_t(buf, 9, throttle); + _mav_put_uint8_t(buf, 10, brake_left); + _mav_put_uint8_t(buf, 11, brake_right); + _mav_put_int8_t(buf, 12, steer); + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TUB_LND_LEN); +#else + mavlink_tub_lnd_t packet; + packet.time_boot_ms = time_boot_ms; + packet.tub_in_seq = tub_in_seq; + packet.lnd_in_seq = lnd_in_seq; + packet.WOW = WOW; + packet.DOOR = DOOR; + packet.pres = pres; + packet.throttle = throttle; + packet.brake_left = brake_left; + packet.brake_right = brake_right; + packet.steer = steer; + + memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TUB_LND_LEN); +#endif + + msg->msgid = MAVLINK_MSG_ID_TUB_LND; + return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_TUB_LND_MIN_LEN, MAVLINK_MSG_ID_TUB_LND_LEN, MAVLINK_MSG_ID_TUB_LND_CRC); +} + +/** + * @brief Encode a tub_lnd struct + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param msg The MAVLink message to compress the data into + * @param tub_lnd C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_tub_lnd_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_tub_lnd_t* tub_lnd) +{ + return mavlink_msg_tub_lnd_pack(system_id, component_id, msg, tub_lnd->time_boot_ms, tub_lnd->tub_in_seq, tub_lnd->lnd_in_seq, tub_lnd->WOW, tub_lnd->DOOR, tub_lnd->pres, tub_lnd->throttle, tub_lnd->brake_left, tub_lnd->brake_right, tub_lnd->steer); +} + +/** + * @brief Encode a tub_lnd struct on a channel + * + * @param system_id ID of this system + * @param component_id ID of this component (e.g. 200 for IMU) + * @param chan The MAVLink channel this message will be sent over + * @param msg The MAVLink message to compress the data into + * @param tub_lnd C-struct to read the message contents from + */ +static inline uint16_t mavlink_msg_tub_lnd_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_tub_lnd_t* tub_lnd) +{ + return mavlink_msg_tub_lnd_pack_chan(system_id, component_id, chan, msg, tub_lnd->time_boot_ms, tub_lnd->tub_in_seq, tub_lnd->lnd_in_seq, tub_lnd->WOW, tub_lnd->DOOR, tub_lnd->pres, tub_lnd->throttle, tub_lnd->brake_left, tub_lnd->brake_right, tub_lnd->steer); +} + +/** + * @brief Send a tub_lnd message + * @param chan MAVLink channel to send the message + * + * @param time_boot_ms Timestamp (milliseconds since system boot) + * @param tub_in_seq TUB input index + * @param lnd_in_seq LND input index + * @param WOW WOW + * @param DOOR DOOR + * @param pres pressure + * @param throttle throttle + * @param brake_left left brake + * @param brake_right right brake + * @param steer steer(deg) + */ +#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS + +static inline void mavlink_msg_tub_lnd_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t tub_in_seq, uint8_t lnd_in_seq, uint8_t WOW, uint8_t DOOR, uint8_t pres, uint8_t throttle, uint8_t brake_left, uint8_t brake_right, int8_t steer) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char buf[MAVLINK_MSG_ID_TUB_LND_LEN]; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint8_t(buf, 4, tub_in_seq); + _mav_put_uint8_t(buf, 5, lnd_in_seq); + _mav_put_uint8_t(buf, 6, WOW); + _mav_put_uint8_t(buf, 7, DOOR); + _mav_put_uint8_t(buf, 8, pres); + _mav_put_uint8_t(buf, 9, throttle); + _mav_put_uint8_t(buf, 10, brake_left); + _mav_put_uint8_t(buf, 11, brake_right); + _mav_put_int8_t(buf, 12, steer); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TUB_LND, buf, MAVLINK_MSG_ID_TUB_LND_MIN_LEN, MAVLINK_MSG_ID_TUB_LND_LEN, MAVLINK_MSG_ID_TUB_LND_CRC); +#else + mavlink_tub_lnd_t packet; + packet.time_boot_ms = time_boot_ms; + packet.tub_in_seq = tub_in_seq; + packet.lnd_in_seq = lnd_in_seq; + packet.WOW = WOW; + packet.DOOR = DOOR; + packet.pres = pres; + packet.throttle = throttle; + packet.brake_left = brake_left; + packet.brake_right = brake_right; + packet.steer = steer; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TUB_LND, (const char *)&packet, MAVLINK_MSG_ID_TUB_LND_MIN_LEN, MAVLINK_MSG_ID_TUB_LND_LEN, MAVLINK_MSG_ID_TUB_LND_CRC); +#endif +} + +/** + * @brief Send a tub_lnd message + * @param chan MAVLink channel to send the message + * @param struct The MAVLink struct to serialize + */ +static inline void mavlink_msg_tub_lnd_send_struct(mavlink_channel_t chan, const mavlink_tub_lnd_t* tub_lnd) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + mavlink_msg_tub_lnd_send(chan, tub_lnd->time_boot_ms, tub_lnd->tub_in_seq, tub_lnd->lnd_in_seq, tub_lnd->WOW, tub_lnd->DOOR, tub_lnd->pres, tub_lnd->throttle, tub_lnd->brake_left, tub_lnd->brake_right, tub_lnd->steer); +#else + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TUB_LND, (const char *)tub_lnd, MAVLINK_MSG_ID_TUB_LND_MIN_LEN, MAVLINK_MSG_ID_TUB_LND_LEN, MAVLINK_MSG_ID_TUB_LND_CRC); +#endif +} + +#if MAVLINK_MSG_ID_TUB_LND_LEN <= MAVLINK_MAX_PAYLOAD_LEN +/* + This varient of _send() can be used to save stack space by re-using + memory from the receive buffer. The caller provides a + mavlink_message_t which is the size of a full mavlink message. This + is usually the receive buffer for the channel, and allows a reply to an + incoming message with minimum stack space usage. + */ +static inline void mavlink_msg_tub_lnd_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t tub_in_seq, uint8_t lnd_in_seq, uint8_t WOW, uint8_t DOOR, uint8_t pres, uint8_t throttle, uint8_t brake_left, uint8_t brake_right, int8_t steer) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + char *buf = (char *)msgbuf; + _mav_put_uint32_t(buf, 0, time_boot_ms); + _mav_put_uint8_t(buf, 4, tub_in_seq); + _mav_put_uint8_t(buf, 5, lnd_in_seq); + _mav_put_uint8_t(buf, 6, WOW); + _mav_put_uint8_t(buf, 7, DOOR); + _mav_put_uint8_t(buf, 8, pres); + _mav_put_uint8_t(buf, 9, throttle); + _mav_put_uint8_t(buf, 10, brake_left); + _mav_put_uint8_t(buf, 11, brake_right); + _mav_put_int8_t(buf, 12, steer); + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TUB_LND, buf, MAVLINK_MSG_ID_TUB_LND_MIN_LEN, MAVLINK_MSG_ID_TUB_LND_LEN, MAVLINK_MSG_ID_TUB_LND_CRC); +#else + mavlink_tub_lnd_t *packet = (mavlink_tub_lnd_t *)msgbuf; + packet->time_boot_ms = time_boot_ms; + packet->tub_in_seq = tub_in_seq; + packet->lnd_in_seq = lnd_in_seq; + packet->WOW = WOW; + packet->DOOR = DOOR; + packet->pres = pres; + packet->throttle = throttle; + packet->brake_left = brake_left; + packet->brake_right = brake_right; + packet->steer = steer; + + _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TUB_LND, (const char *)packet, MAVLINK_MSG_ID_TUB_LND_MIN_LEN, MAVLINK_MSG_ID_TUB_LND_LEN, MAVLINK_MSG_ID_TUB_LND_CRC); +#endif +} +#endif + +#endif + +// MESSAGE TUB_LND UNPACKING + + +/** + * @brief Get field time_boot_ms from tub_lnd message + * + * @return Timestamp (milliseconds since system boot) + */ +static inline uint32_t mavlink_msg_tub_lnd_get_time_boot_ms(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint32_t(msg, 0); +} + +/** + * @brief Get field tub_in_seq from tub_lnd message + * + * @return TUB input index + */ +static inline uint8_t mavlink_msg_tub_lnd_get_tub_in_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 4); +} + +/** + * @brief Get field lnd_in_seq from tub_lnd message + * + * @return LND input index + */ +static inline uint8_t mavlink_msg_tub_lnd_get_lnd_in_seq(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 5); +} + +/** + * @brief Get field WOW from tub_lnd message + * + * @return WOW + */ +static inline uint8_t mavlink_msg_tub_lnd_get_WOW(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 6); +} + +/** + * @brief Get field DOOR from tub_lnd message + * + * @return DOOR + */ +static inline uint8_t mavlink_msg_tub_lnd_get_DOOR(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 7); +} + +/** + * @brief Get field pres from tub_lnd message + * + * @return pressure + */ +static inline uint8_t mavlink_msg_tub_lnd_get_pres(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 8); +} + +/** + * @brief Get field throttle from tub_lnd message + * + * @return throttle + */ +static inline uint8_t mavlink_msg_tub_lnd_get_throttle(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 9); +} + +/** + * @brief Get field brake_left from tub_lnd message + * + * @return left brake + */ +static inline uint8_t mavlink_msg_tub_lnd_get_brake_left(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 10); +} + +/** + * @brief Get field brake_right from tub_lnd message + * + * @return right brake + */ +static inline uint8_t mavlink_msg_tub_lnd_get_brake_right(const mavlink_message_t* msg) +{ + return _MAV_RETURN_uint8_t(msg, 11); +} + +/** + * @brief Get field steer from tub_lnd message + * + * @return steer(deg) + */ +static inline int8_t mavlink_msg_tub_lnd_get_steer(const mavlink_message_t* msg) +{ + return _MAV_RETURN_int8_t(msg, 12); +} + +/** + * @brief Decode a tub_lnd message into a struct + * + * @param msg The message to decode + * @param tub_lnd C-struct to decode the message contents into + */ +static inline void mavlink_msg_tub_lnd_decode(const mavlink_message_t* msg, mavlink_tub_lnd_t* tub_lnd) +{ +#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS + tub_lnd->time_boot_ms = mavlink_msg_tub_lnd_get_time_boot_ms(msg); + tub_lnd->tub_in_seq = mavlink_msg_tub_lnd_get_tub_in_seq(msg); + tub_lnd->lnd_in_seq = mavlink_msg_tub_lnd_get_lnd_in_seq(msg); + tub_lnd->WOW = mavlink_msg_tub_lnd_get_WOW(msg); + tub_lnd->DOOR = mavlink_msg_tub_lnd_get_DOOR(msg); + tub_lnd->pres = mavlink_msg_tub_lnd_get_pres(msg); + tub_lnd->throttle = mavlink_msg_tub_lnd_get_throttle(msg); + tub_lnd->brake_left = mavlink_msg_tub_lnd_get_brake_left(msg); + tub_lnd->brake_right = mavlink_msg_tub_lnd_get_brake_right(msg); + tub_lnd->steer = mavlink_msg_tub_lnd_get_steer(msg); +#else + uint8_t len = msg->len < MAVLINK_MSG_ID_TUB_LND_LEN? msg->len : MAVLINK_MSG_ID_TUB_LND_LEN; + memset(tub_lnd, 0, MAVLINK_MSG_ID_TUB_LND_LEN); + memcpy(tub_lnd, _MAV_PAYLOAD(msg), len); +#endif +} diff --git a/ardupilotmega/testsuite.h b/ardupilotmega/testsuite.h index 092b352..97fc82d 100644 --- a/ardupilotmega/testsuite.h +++ b/ardupilotmega/testsuite.h @@ -3578,6 +3578,588 @@ static void mavlink_test_gps_rnx_data(uint8_t system_id, uint8_t component_id, m MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); } +static void mavlink_test_emb_atmo_com(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg) +{ +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0); + if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_EMB_ATMO_COM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_emb_atmo_com_t packet_in = { + 963497464,45.0,73.0,101.0,129.0,157.0,77 + }; + mavlink_emb_atmo_com_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.Airspeed = packet_in.Airspeed; + packet1.beta = packet_in.beta; + packet1.alpha = packet_in.alpha; + packet1.ps = packet_in.ps; + packet1.qbar = packet_in.qbar; + packet1.seq = packet_in.seq; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_EMB_ATMO_COM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_emb_atmo_com_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_emb_atmo_com_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_emb_atmo_com_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.Airspeed , packet1.beta , packet1.alpha , packet1.ps , packet1.qbar , packet1.seq ); + mavlink_msg_emb_atmo_com_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_emb_atmo_com_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.Airspeed , packet1.beta , packet1.alpha , packet1.ps , packet1.qbar , packet1.seq ); + mavlink_msg_emb_atmo_com_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; iflags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_RADAR_ALTM >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_radar_altm_t packet_in = { + 963497464,45.0,29,96 + }; + mavlink_radar_altm_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.AGL = packet_in.AGL; + packet1.enabled = packet_in.enabled; + packet1.seq = packet_in.seq; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_RADAR_ALTM_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_radar_altm_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_radar_altm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_radar_altm_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.AGL , packet1.enabled , packet1.seq ); + mavlink_msg_radar_altm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_radar_altm_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.AGL , packet1.enabled , packet1.seq ); + mavlink_msg_radar_altm_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; iflags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_INS1 >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_ins1_t packet_in = { + 123.0,179.0,235.0,963498712,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,549.0,245,56,123,190,1 + }; + mavlink_ins1_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.lon = packet_in.lon; + packet1.lat = packet_in.lat; + packet1.time = packet_in.time; + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.pitch = packet_in.pitch; + packet1.roll = packet_in.roll; + packet1.yaw = packet_in.yaw; + packet1.alt = packet_in.alt; + packet1.v_north = packet_in.v_north; + packet1.v_up = packet_in.v_up; + packet1.v_east = packet_in.v_east; + packet1.gx = packet_in.gx; + packet1.gy = packet_in.gy; + packet1.gz = packet_in.gz; + packet1.ax = packet_in.ax; + packet1.ay = packet_in.ay; + packet1.az = packet_in.az; + packet1.sys_status = packet_in.sys_status; + packet1.com_status = packet_in.com_status; + packet1.gps_status = packet_in.gps_status; + packet1.BIT = packet_in.BIT; + packet1.seq = packet_in.seq; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_INS1_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_INS1_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ins1_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_ins1_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ins1_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.pitch , packet1.roll , packet1.yaw , packet1.lon , packet1.lat , packet1.alt , packet1.v_north , packet1.v_up , packet1.v_east , packet1.gx , packet1.gy , packet1.gz , packet1.ax , packet1.ay , packet1.az , packet1.time , packet1.sys_status , packet1.com_status , packet1.gps_status , packet1.BIT , packet1.seq ); + mavlink_msg_ins1_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ins1_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.pitch , packet1.roll , packet1.yaw , packet1.lon , packet1.lat , packet1.alt , packet1.v_north , packet1.v_up , packet1.v_east , packet1.gx , packet1.gy , packet1.gz , packet1.ax , packet1.ay , packet1.az , packet1.time , packet1.sys_status , packet1.com_status , packet1.gps_status , packet1.BIT , packet1.seq ); + mavlink_msg_ins1_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; iflags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_INS2 >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_ins2_t packet_in = { + 123.0,179.0,235.0,963498712,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,549.0,245,56,123,190,1 + }; + mavlink_ins2_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.lon = packet_in.lon; + packet1.lat = packet_in.lat; + packet1.time = packet_in.time; + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.pitch = packet_in.pitch; + packet1.roll = packet_in.roll; + packet1.yaw = packet_in.yaw; + packet1.alt = packet_in.alt; + packet1.v_north = packet_in.v_north; + packet1.v_up = packet_in.v_up; + packet1.v_east = packet_in.v_east; + packet1.gx = packet_in.gx; + packet1.gy = packet_in.gy; + packet1.gz = packet_in.gz; + packet1.ax = packet_in.ax; + packet1.ay = packet_in.ay; + packet1.az = packet_in.az; + packet1.sys_status = packet_in.sys_status; + packet1.com_status = packet_in.com_status; + packet1.gps_status = packet_in.gps_status; + packet1.BIT = packet_in.BIT; + packet1.seq = packet_in.seq; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_INS2_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_INS2_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ins2_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_ins2_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ins2_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.pitch , packet1.roll , packet1.yaw , packet1.lon , packet1.lat , packet1.alt , packet1.v_north , packet1.v_up , packet1.v_east , packet1.gx , packet1.gy , packet1.gz , packet1.ax , packet1.ay , packet1.az , packet1.time , packet1.sys_status , packet1.com_status , packet1.gps_status , packet1.BIT , packet1.seq ); + mavlink_msg_ins2_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ins2_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.pitch , packet1.roll , packet1.yaw , packet1.lon , packet1.lat , packet1.alt , packet1.v_north , packet1.v_up , packet1.v_east , packet1.gx , packet1.gy , packet1.gz , packet1.ax , packet1.ay , packet1.az , packet1.time , packet1.sys_status , packet1.com_status , packet1.gps_status , packet1.BIT , packet1.seq ); + mavlink_msg_ins2_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; iflags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_TUB_LND >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_tub_lnd_t packet_in = { + 963497464,17,84,151,218,29,96,163,230,41 + }; + mavlink_tub_lnd_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.tub_in_seq = packet_in.tub_in_seq; + packet1.lnd_in_seq = packet_in.lnd_in_seq; + packet1.WOW = packet_in.WOW; + packet1.DOOR = packet_in.DOOR; + packet1.pres = packet_in.pres; + packet1.throttle = packet_in.throttle; + packet1.brake_left = packet_in.brake_left; + packet1.brake_right = packet_in.brake_right; + packet1.steer = packet_in.steer; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_TUB_LND_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_TUB_LND_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_tub_lnd_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_tub_lnd_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_tub_lnd_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.tub_in_seq , packet1.lnd_in_seq , packet1.WOW , packet1.DOOR , packet1.pres , packet1.throttle , packet1.brake_left , packet1.brake_right , packet1.steer ); + mavlink_msg_tub_lnd_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_tub_lnd_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.tub_in_seq , packet1.lnd_in_seq , packet1.WOW , packet1.DOOR , packet1.pres , packet1.throttle , packet1.brake_left , packet1.brake_right , packet1.steer ); + mavlink_msg_tub_lnd_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; iflags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SERVOS >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_servos_t packet_in = { + 963497464,{ 45.0, 46.0 },{ 101.0, 102.0 },{ 157.0, 158.0 },{ 213.0, 214.0 },113,180,247 + }; + mavlink_servos_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.out_seq = packet_in.out_seq; + packet1.in1_seq = packet_in.in1_seq; + packet1.in2_seq = packet_in.in2_seq; + + mav_array_memcpy(packet1.cmd1, packet_in.cmd1, sizeof(float)*2); + mav_array_memcpy(packet1.cmd2, packet_in.cmd2, sizeof(float)*2); + mav_array_memcpy(packet1.pos1, packet_in.pos1, sizeof(float)*2); + mav_array_memcpy(packet1.pos2, packet_in.pos2, sizeof(float)*2); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_SERVOS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SERVOS_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servos_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_servos_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servos_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.cmd1 , packet1.cmd2 , packet1.pos1 , packet1.pos2 , packet1.out_seq , packet1.in1_seq , packet1.in2_seq ); + mavlink_msg_servos_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_servos_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.cmd1 , packet1.cmd2 , packet1.pos1 , packet1.pos2 , packet1.out_seq , packet1.in1_seq , packet1.in2_seq ); + mavlink_msg_servos_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; iflags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PUBIT_RESULT >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_pubit_result_t packet_in = { + 963497464,963497672,963497880,963498088,963498296,{ 963498504, 963498505 },{ 963498920, 963498921 },{ 963499336, 963499337 },{ 963499752, 963499753, 963499754, 963499755, 963499756, 963499757, 963499758, 963499759, 963499760, 963499761, 963499762, 963499763 } + }; + mavlink_pubit_result_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.CPM1 = packet_in.CPM1; + packet1.CPM2 = packet_in.CPM2; + packet1.CPM3 = packet_in.CPM3; + packet1.myCPU = packet_in.myCPU; + + mav_array_memcpy(packet1.DSP, packet_in.DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet1.RS422, packet_in.RS422, sizeof(uint32_t)*2); + mav_array_memcpy(packet1.DSP_power, packet_in.DSP_power, sizeof(uint32_t)*2); + mav_array_memcpy(packet1.DSP_powerstate, packet_in.DSP_powerstate, sizeof(uint32_t)*12); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PUBIT_RESULT_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pubit_result_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_pubit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pubit_result_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.CPM1 , packet1.CPM2 , packet1.CPM3 , packet1.myCPU , packet1.DSP , packet1.RS422 , packet1.DSP_power , packet1.DSP_powerstate ); + mavlink_msg_pubit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pubit_result_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.CPM1 , packet1.CPM2 , packet1.CPM3 , packet1.myCPU , packet1.DSP , packet1.RS422 , packet1.DSP_power , packet1.DSP_powerstate ); + mavlink_msg_pubit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; iflags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_PBIT_RESULT >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_pbit_result_t packet_in = { + 963497464,963497672,963497880,963498088,963498296,963498504,{ 963498712, 963498713 },{ 963499128, 963499129 },{ 963499544, 963499545 } + }; + mavlink_pbit_result_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.CPM1 = packet_in.CPM1; + packet1.CPM2 = packet_in.CPM2; + packet1.CPM3 = packet_in.CPM3; + packet1.BIM1 = packet_in.BIM1; + packet1.BIM2 = packet_in.BIM2; + + mav_array_memcpy(packet1.DSP, packet_in.DSP, sizeof(uint32_t)*2); + mav_array_memcpy(packet1.CFL, packet_in.CFL, sizeof(uint32_t)*2); + mav_array_memcpy(packet1.A659, packet_in.A659, sizeof(uint32_t)*2); + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_PBIT_RESULT_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pbit_result_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_pbit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pbit_result_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.CPM1 , packet1.CPM2 , packet1.CPM3 , packet1.BIM1 , packet1.BIM2 , packet1.DSP , packet1.CFL , packet1.A659 ); + mavlink_msg_pbit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_pbit_result_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.CPM1 , packet1.CPM2 , packet1.CPM3 , packet1.BIM1 , packet1.BIM2 , packet1.DSP , packet1.CFL , packet1.A659 ); + mavlink_msg_pbit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; iflags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_IFBIT_RESULT >= 256) { + return; + } +#endif + mavlink_message_t msg; + uint8_t buffer[MAVLINK_MAX_PACKET_LEN]; + uint16_t i; + mavlink_ifbit_result_t packet_in = { + 963497464,963497672,963497880,963498088,963498296,963498504,963498712,963498920,963499128,963499336,963499544,963499752,963499960,963500168 + }; + mavlink_ifbit_result_t packet1, packet2; + memset(&packet1, 0, sizeof(packet1)); + packet1.time_boot_ms = packet_in.time_boot_ms; + packet1.CPM1 = packet_in.CPM1; + packet1.CPM2 = packet_in.CPM2; + packet1.CPM3 = packet_in.CPM3; + packet1.BIM1 = packet_in.BIM1; + packet1.BIM1_RS422 = packet_in.BIM1_RS422; + packet1.BIM1_POWER = packet_in.BIM1_POWER; + packet1.BIM1_CFL = packet_in.BIM1_CFL; + packet1.BIM1_GZZT = packet_in.BIM1_GZZT; + packet1.BIM2 = packet_in.BIM2; + packet1.BIM2_RS422 = packet_in.BIM2_RS422; + packet1.BIM2_POWER = packet_in.BIM2_POWER; + packet1.BIM2_CFL = packet_in.BIM2_CFL; + packet1.BIM2_GZZT = packet_in.BIM2_GZZT; + + +#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1 + if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) { + // cope with extensions + memset(MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_IFBIT_RESULT_MIN_LEN); + } +#endif + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ifbit_result_encode(system_id, component_id, &msg, &packet1); + mavlink_msg_ifbit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ifbit_result_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.CPM1 , packet1.CPM2 , packet1.CPM3 , packet1.BIM1 , packet1.BIM1_RS422 , packet1.BIM1_POWER , packet1.BIM1_CFL , packet1.BIM1_GZZT , packet1.BIM2 , packet1.BIM2_RS422 , packet1.BIM2_POWER , packet1.BIM2_CFL , packet1.BIM2_GZZT ); + mavlink_msg_ifbit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_ifbit_result_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.CPM1 , packet1.CPM2 , packet1.CPM3 , packet1.BIM1 , packet1.BIM1_RS422 , packet1.BIM1_POWER , packet1.BIM1_CFL , packet1.BIM1_GZZT , packet1.BIM2 , packet1.BIM2_RS422 , packet1.BIM2_POWER , packet1.BIM2_CFL , packet1.BIM2_GZZT ); + mavlink_msg_ifbit_result_decode(&msg, &packet2); + MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0); + + memset(&packet2, 0, sizeof(packet2)); + mavlink_msg_to_send_buffer(buffer, &msg); + for (i=0; idata length RNX message + + Embeded Atmosphere Computer + Timestamp (milliseconds since system boot) + Magnitude of air velocity [m/s] + Sideslip angle [deg] + Angle of attack [deg] + Static pressure [Pa] + Dynamic pressure [Pa] + sequeue index + + + Radar Altitude Meter + Timestamp (milliseconds since system boot) + AGL[m] + Enabled + sequeue index + + + INS-1 + Timestamp (milliseconds since system boot) + pitch(deg) + roll(deg) + yaw(deg) + lon(deg) + lat(deg) + alt(m) + v_north(m/s) + v_up(m/s) + v_east(m/s) + gx(deg/s) + gy(deg/s) + gz(deg/s) + ax(deg/s) + ay(deg/s) + az(deg/s) + time(s) + sys_status + com_status + gps_status + BIT + sequeue index + + + INS-2 + Timestamp (milliseconds since system boot) + pitch(deg) + roll(deg) + yaw(deg) + lon(deg) + lat(deg) + alt(m) + v_north(m/s) + v_up(m/s) + v_east(m/s) + gx(deg/s) + gy(deg/s) + gz(deg/s) + ax(deg/s) + ay(deg/s) + az(deg/s) + time(s) + sys_status + com_status + gps_status + BIT + sequeue index + + + TUB and LND + Timestamp (milliseconds since system boot) + TUB input index + LND input index + WOW + DOOR + pressure + throttle + left brake + right brake + steer(deg) + + + SERVOS + Timestamp (milliseconds since system boot) + ActuatorCmd1(deg) + ActuatorCmd2(deg) + ActuatorPos1(deg) + ActuatorPos2(deg) + output index + input1 index + input2 index + + + PUBIT_RESULT + Timestamp (milliseconds since system boot) + CPM1 + CPM2 + CPM3 + myCPU + DSP + RS422 + DSP_power + DSP_powerstate + + + PBIT_RESULT + Timestamp (milliseconds since system boot) + CPM1 + CPM2 + CPM3 + BIM1 + BIM2 + DSP + CFL + A659 + + + IFBIT_RESULT + Timestamp (milliseconds since system boot) + CPM1 + CPM2 + CPM3 + BIM1 + BIM1_RS422 + BIM1_POWER + BIM1_CFL + BIM1_GZZT + BIM2 + BIM2_RS422 + BIM2_POWER + BIM2_CFL + BIM2_GZZT + diff --git a/uAvionix/version.h b/uAvionix/version.h index 36b0cdf..d548cba 100644 --- a/uAvionix/version.h +++ b/uAvionix/version.h @@ -7,7 +7,7 @@ #ifndef MAVLINK_VERSION_H #define MAVLINK_VERSION_H -#define MAVLINK_BUILD_DATE "Thu May 10 2018" +#define MAVLINK_BUILD_DATE "Sun May 20 2018" #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255