MAMBAF405_2022A target
[inav.git] / src / main / rx / rx_spi.h
blob3b41220f9ec942b12e06986b3d6f63af75b1cacd
1 /*
2 * This file is part of Cleanflight.
4 * Cleanflight is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * Cleanflight is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
18 #pragma once
20 #include <stdbool.h>
21 #include <stdint.h>
23 typedef enum {
24 RFM22_ELERES = 0,
25 NRF24RX_PROTOCOL_COUNT
26 } rx_spi_protocol_e;
28 typedef enum {
29 RX_SPI_RECEIVED_NONE = 0,
30 RX_SPI_RECEIVED_BIND,
31 RX_SPI_RECEIVED_DATA
32 } rx_spi_received_e;
34 // RC channels in AETR order
35 typedef enum {
36 RC_SPI_ROLL = 0,
37 RC_SPI_PITCH,
38 RC_SPI_THROTTLE,
39 RC_SPI_YAW,
40 RC_SPI_AUX1,
41 RC_SPI_AUX2,
42 RC_SPI_AUX3,
43 RC_SPI_AUX4,
44 RC_SPI_AUX5,
45 RC_SPI_AUX6,
46 RC_SPI_AUX7,
47 RC_SPI_AUX8,
48 RC_SPI_AUX9,
49 RC_SPI_AUX10,
50 RC_SPI_AUX11,
51 RC_SPI_AUX12,
52 RC_SPI_AUX13,
53 RC_SPI_AUX14
54 } rc_spi_aetr_e;
56 // RC channels as used by deviation
57 #define RC_CHANNEL_RATE RC_SPI_AUX1
58 #define RC_CHANNEL_FLIP RC_SPI_AUX2
59 #define RC_CHANNEL_PICTURE RC_SPI_AUX3
60 #define RC_CHANNEL_VIDEO RC_SPI_AUX4
61 #define RC_CHANNEL_HEADLESS RC_SPI_AUX5
62 #define RC_CHANNEL_RTH RC_SPI_AUX6 // return to home
64 bool rxSpiInit(const rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig);