MAV'RIC
/home/travis/build/lis-epfl/MAVRIC_Library/drivers/satellite.hpp
00001 /*******************************************************************************
00002 * Copyright (c) 2009-2016, MAV'RIC Development Team
00003 * All rights reserved.
00004 *
00005 * Redistribution and use in source and binary forms, with or without
00006 * modification, are permitted provided that the following conditions are met:
00007 *
00008 * 1. Redistributions of source code must retain the above copyright notice,
00009 * this list of conditions and the following disclaimer.
00010 *
00011 * 2. Redistributions in binary form must reproduce the above copyright notice,
00012 * this list of conditions and the following disclaimer in the documentation
00013 * and/or other materials provided with the distribution.
00014 *
00015 * 3. Neither the name of the copyright holder nor the names of its contributors
00016 * may be used to endorse or promote products derived from this software without
00017 * specific prior written permission.
00018 *
00019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00021 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
00023 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00024 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00025 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00026 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00027 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00028 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00029 * POSSIBILITY OF SUCH DAMAGE.
00030 ******************************************************************************/
00031 
00032 /*******************************************************************************
00033  * \file satellite.hpp
00034  *
00035  * \author MAV'RIC Team
00036  * \author Gregoire Heitz
00037  *
00038  * \brief This declare the global satellite struct
00039  * enable usage of different satellite receiver (ie. spektrum, emulated...)
00040  *
00041  ******************************************************************************/
00042 
00043 #ifndef SATELLITE_HPP_
00044 #define SATELLITE_HPP_
00045 
00046 #include <cstdint>
00047 #include <cstdbool>
00048 
00052 typedef enum
00053 {
00054     RADIO_PROTOCOL_DSM2_10BITS  = 0,
00055     RADIO_PROTOCOL_DSM2_11BITS  = 1,
00056     RADIO_PROTOCOL_DSMX         = 2,
00057     RADIO_PROTOCOL_UNKNOWN      = 3,
00058 } radio_protocol_t;
00059 
00060 
00061 class Satellite
00062 {
00063 public:
00064 
00068     virtual bool init(void) = 0;
00069 
00070 
00076     virtual void bind(const radio_protocol_t radio_protocol) = 0;
00077 
00078 
00086     virtual int16_t channel(const uint8_t channel_number) const = 0;
00087 
00088 
00094     virtual uint32_t last_update(void) const = 0;
00095 
00096 
00102     virtual uint32_t dt(void) const = 0;
00103 };
00104 
00105 
00106 #endif //SATELLITE_HPP_
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines