px4_custom_mode.h
Go to the documentation of this file.
00001 
00008 /* Modifyed copy px4_custom_mode.h from PX4/Firmware
00009  * No license given in header, but i think is BSD 3-clause.
00010  *
00011  *  Created on: 09.08.2013
00012  *      Author: ton
00013  */
00014 
00015 #pragma once
00016 
00017 //#include <stdint.h>
00018 
00019 namespace px4 {
00020 
00027 union custom_mode {
00028         enum MAIN_MODE : uint8_t {
00029                 MAIN_MODE_MANUAL = 1,
00030                 MAIN_MODE_ALTCTL,
00031                 MAIN_MODE_POSCTL,
00032                 MAIN_MODE_AUTO,
00033                 MAIN_MODE_ACRO,
00034                 MAIN_MODE_OFFBOARD,
00035         };
00036 
00037         enum SUB_MODE_AUTO : uint8_t {
00038                 SUB_MODE_AUTO_READY = 1,
00039                 SUB_MODE_AUTO_TAKEOFF,
00040                 SUB_MODE_AUTO_LOITER,
00041                 SUB_MODE_AUTO_MISSION,
00042                 SUB_MODE_AUTO_RTL,
00043                 SUB_MODE_AUTO_LAND,
00044                 SUB_MODE_AUTO_RTGS
00045         };
00046 
00047         struct {
00048                 uint16_t reserved;
00049                 uint8_t main_mode;
00050                 uint8_t sub_mode;
00051         };
00052         uint32_t data;
00053         float data_float;
00054 
00055         custom_mode() : data(0)
00056         { };
00057 
00058         explicit custom_mode(uint32_t val) : data(val)
00059         { };
00060 
00061         constexpr custom_mode(uint8_t mm, uint8_t sm) :
00062                 reserved(0),
00063                 main_mode(mm),
00064                 sub_mode(sm)
00065         { };
00066 };
00067 
00075 constexpr uint32_t define_mode(enum custom_mode::MAIN_MODE mm, uint8_t sm = 0) {
00076         return custom_mode(mm, sm).data;
00077 }
00078 
00087 constexpr uint32_t define_mode_auto(enum custom_mode::SUB_MODE_AUTO sm) {
00088         return define_mode(custom_mode::MAIN_MODE_AUTO, sm);
00089 }
00090 
00091 }; // namespace px4


mavros
Author(s): Vladimir Ermakov
autogenerated on Wed Aug 26 2015 12:29:13