diff --git a/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj b/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj index d2a27e574..f4baa0291 100644 --- a/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj +++ b/flight/Project/OpenPilotOSX/OpenPilotOSX.xcodeproj/project.pbxproj @@ -184,7 +184,7 @@ /* Begin PBXLegacyTarget section */ 6581071511DE809D0049FB12 /* OpenPilotOSX */ = { isa = PBXLegacyTarget; - buildArgumentsString = ef_osd; + buildArgumentsString = ef_oplinkmini; buildConfigurationList = 6581071A11DE80A30049FB12 /* Build configuration list for PBXLegacyTarget "OpenPilotOSX" */; buildPhases = ( ); diff --git a/flight/modules/RadioComBridge/RadioComBridge.c b/flight/modules/RadioComBridge/RadioComBridge.c index 835390655..0ffa41bc8 100644 --- a/flight/modules/RadioComBridge/RadioComBridge.c +++ b/flight/modules/RadioComBridge/RadioComBridge.c @@ -41,8 +41,9 @@ #include #include #include - +#include #include +#include // **************** // Private constants @@ -57,6 +58,7 @@ #define SERIAL_RX_BUF_LEN 100 #define PPM_INPUT_TIMEOUT 100 +#define PIOS_PPM_RECEIVER pios_rcvr_group_map[MANUALCONTROLSETTINGS_CHANNELGROUPS_PPM] // **************** // Private types diff --git a/flight/pios/common/pios_board_io.c b/flight/pios/common/pios_board_io.c index e43b3053c..025b4cec0 100644 --- a/flight/pios/common/pios_board_io.c +++ b/flight/pios/common/pios_board_io.c @@ -84,7 +84,8 @@ uint32_t pios_com_telem_rf_id; /* Serial port telemetry */ #ifdef PIOS_INCLUDE_RFM22B uint32_t pios_rfm22b_id; /* RFM22B handle */ -uint32_t pios_com_rf_id; /* RFM22B telemetry */ +uint32_t pios_com_pri_radio_id; /* oplink primary com stream */ +uint32_t pios_com_aux_radio_id; /* oplink aux com stream */ #endif #ifdef PIOS_INCLUDE_OPENLRS @@ -402,6 +403,24 @@ static const struct uart_function uart_function_map[] = { #endif /* PIOS_INCLUDE_RCVR */ }; +void PIOS_BOARD_IO_Configure_UART_COM(const struct pios_usart_cfg *hw_config, + uint16_t rx_buf_len, + uint16_t tx_buf_len, + uint32_t *com_id) +{ + uint32_t usart_id; + + if (PIOS_USART_Init(&usart_id, hw_config)) { + PIOS_Assert(0); + } + + if (PIOS_COM_Init(com_id, &pios_usart_com_driver, usart_id, + 0, rx_buf_len, + 0, tx_buf_len)) { + PIOS_Assert(0); + } +} + void PIOS_BOARD_IO_Configure_UART(const struct pios_usart_cfg *hw_config, PIOS_BOARD_IO_UART_Function function) { if (function >= NELEMENTS(uart_function_map)) { @@ -409,17 +428,10 @@ void PIOS_BOARD_IO_Configure_UART(const struct pios_usart_cfg *hw_config, PIOS_B } if (uart_function_map[function].com_id) { - uint32_t usart_id; - - if (PIOS_USART_Init(&usart_id, hw_config)) { - PIOS_Assert(0); - } - - if (PIOS_COM_Init(uart_function_map[function].com_id, &pios_usart_com_driver, usart_id, - 0, uart_function_map[function].com_rx_buf_len, - 0, uart_function_map[function].com_tx_buf_len)) { - PIOS_Assert(0); - } + PIOS_BOARD_IO_Configure_UART_COM(hw_config, + uart_function_map[function].com_rx_buf_len, + uart_function_map[function].com_tx_buf_len, + uart_function_map[function].com_id); } #ifdef PIOS_INCLUDE_RCVR else if (uart_function_map[function].rcvr_init) { @@ -446,7 +458,7 @@ void PIOS_BOARD_IO_Configure_UART(const struct pios_usart_cfg *hw_config, PIOS_B } #ifdef PIOS_INCLUDE_PWM -void PIOS_BOARD_IO_Configure_PWM(const struct pios_pwm_cfg *pwm_cfg) +void PIOS_BOARD_IO_Configure_PWM_RCVR(const struct pios_pwm_cfg *pwm_cfg) { /* Set up the receiver port. Later this should be optional */ uint32_t pios_pwm_id; @@ -462,7 +474,7 @@ void PIOS_BOARD_IO_Configure_PWM(const struct pios_pwm_cfg *pwm_cfg) #endif /* PIOS_INCLUDE_PWM */ #ifdef PIOS_INCLUDE_PPM -void PIOS_BOARD_IO_Configure_PPM(const struct pios_ppm_cfg *ppm_cfg) +void PIOS_BOARD_IO_Configure_PPM_RCVR(const struct pios_ppm_cfg *ppm_cfg) { uint32_t pios_ppm_id; @@ -477,7 +489,7 @@ void PIOS_BOARD_IO_Configure_PPM(const struct pios_ppm_cfg *ppm_cfg) #endif /* PIOS_INCLUDE_PPM */ #ifdef PIOS_INCLUDE_GCSRCVR -void PIOS_BOARD_IO_Configure_GCSRCVR() +void PIOS_BOARD_IO_Configure_GCS_RCVR() { GCSReceiverInitialize(); uint32_t pios_gcsrcvr_id; @@ -492,7 +504,7 @@ void PIOS_BOARD_IO_Configure_GCSRCVR() #ifdef PIOS_INCLUDE_RFM22B -void PIOS_BOARD_IO_Configure_RFM22B(PIOS_BOARD_IO_RADIOAUX_Function radioaux_function) +void PIOS_BOARD_IO_Configure_RFM22B() { #if defined(PIOS_INCLUDE_RFM22B) OPLinkSettingsInitialize(); @@ -558,9 +570,16 @@ void PIOS_BOARD_IO_Configure_RFM22B(PIOS_BOARD_IO_RADIOAUX_Function radioaux_fun #endif /* PIOS_INCLUDE_OPLINKRCVR && PIOS_INCLUDE_RCVR */ /* Configure the radio com interface */ - if (PIOS_COM_Init(&pios_com_rf_id, &pios_rfm22b_com_driver, pios_rfm22b_id, - 0, PIOS_COM_RFM22B_RF_RX_BUF_LEN, - 0, PIOS_COM_RFM22B_RF_TX_BUF_LEN)) { + if (PIOS_COM_Init(&pios_com_pri_radio_id, &pios_rfm22b_com_driver, pios_rfm22b_id, + 0, PIOS_COM_PRI_RADIO_RX_BUF_LEN, + 0, PIOS_COM_PRI_RADIO_TX_BUF_LEN)) { + PIOS_Assert(0); + } + + // Initialize the aux radio com interface + if (PIOS_COM_Init(&pios_com_aux_radio_id, &pios_rfm22b_aux_com_driver, pios_rfm22b_id, + 0, PIOS_COM_AUX_RADIO_RX_BUF_LEN, + 0, PIOS_COM_AUX_RADIO_TX_BUF_LEN)) { PIOS_Assert(0); } @@ -637,35 +656,6 @@ void PIOS_BOARD_IO_Configure_RFM22B(PIOS_BOARD_IO_RADIOAUX_Function radioaux_fun /* Reinitialize the modem. */ PIOS_RFM22B_Reinit(pios_rfm22b_id); - - // TODO: this is in preparation for full mavlink support and is used by LP-368 - uint16_t mavlink_rx_size = PIOS_COM_MAVLINK_RX_BUF_LEN; - - switch (radioaux_function) { - default:; - case PIOS_BOARD_IO_RADIOAUX_DEBUGCONSOLE: -#ifdef PIOS_INCLUDE_DEBUG_CONSOLE - if (PIOS_COM_Init(&pios_com_debug_id, &pios_rfm22b_aux_com_driver, pios_rfm22b_id, - 0, 0, - 0, PIOS_COM_DEBUGCONSOLE_TX_BUF_LEN)) { - PIOS_Assert(0); - } -#endif - break; - case PIOS_BOARD_IO_RADIOAUX_COMBRIDGE: - if (PIOS_COM_Init(&pios_com_bridge_id, &pios_rfm22b_aux_com_driver, pios_rfm22b_id, - 0, PIOS_COM_BRIDGE_RX_BUF_LEN, - 0, PIOS_COM_BRIDGE_TX_BUF_LEN)) { - PIOS_Assert(0); - } - break; - case PIOS_BOARD_IO_RADIOAUX_MAVLINK: - if (PIOS_COM_Init(&pios_com_mavlink_id, &pios_rfm22b_aux_com_driver, pios_rfm22b_id, - 0, mavlink_rx_size, - 0, PIOS_COM_BRIDGE_TX_BUF_LEN)) { - PIOS_Assert(0); - } - } } } else { oplinkStatus.LinkState = OPLINKSTATUS_LINKSTATE_DISABLED; @@ -673,4 +663,24 @@ void PIOS_BOARD_IO_Configure_RFM22B(PIOS_BOARD_IO_RADIOAUX_Function radioaux_fun OPLinkStatusSet(&oplinkStatus); } + + +void PIOS_BOARD_IO_Configure_RadioAuxStream(HwSettingsRadioAuxStreamOptions radioaux) +{ + switch (radioaux) { + case HWSETTINGS_RADIOAUXSTREAM_DEBUGCONSOLE: +#ifdef PIOS_INCLUDE_DEBUG_CONSOLE + pios_com_debug_id = pios_com_aux_radio_id; +#endif + break; + case HWSETTINGS_RADIOAUXSTREAM_MAVLINK: + pios_com_mavlink_id = pios_com_aux_radio_id; + break; + case HWSETTINGS_RADIOAUXSTREAM_COMBRIDGE: + pios_com_bridge_id = pios_com_aux_radio_id; + break; + case HWSETTINGS_RADIOAUXSTREAM_DISABLED: + break; + } +} #endif /* ifdef PIOS_INCLUDE_RFM22B */ diff --git a/flight/pios/common/pios_rfm22b.c b/flight/pios/common/pios_rfm22b.c index 7fa05e07b..0579c99a9 100644 --- a/flight/pios/common/pios_rfm22b.c +++ b/flight/pios/common/pios_rfm22b.c @@ -783,8 +783,8 @@ bool PIOS_RFM22B_TransmitPacket(uint32_t rfm22b_id, uint8_t *p, uint8_t len) return false; } - rfm22b_dev->tx_packet_handle = p; - rfm22b_dev->packet_start_time = pios_rfm22_time_ms(); + rfm22b_dev->tx_packet_handle = p; + rfm22b_dev->packet_start_time = pios_rfm22_time_ms(); if (rfm22b_dev->packet_start_time == 0) { rfm22b_dev->packet_start_time = 1; } diff --git a/flight/pios/inc/pios_board_io.h b/flight/pios/inc/pios_board_io.h index cf0533b02..34e01704e 100644 --- a/flight/pios/inc/pios_board_io.h +++ b/flight/pios/inc/pios_board_io.h @@ -91,22 +91,31 @@ extern uint32_t pios_com_telem_usb_id; extern uint32_t pios_com_telem_rf_id; #define PIOS_COM_TELEM_RF (pios_com_telem_rf_id) #ifndef PIOS_COM_TELEM_RF_RX_BUF_LEN -# define PIOS_COM_TELEM_RF_RX_BUF_LEN 512 +# define PIOS_COM_TELEM_RF_RX_BUF_LEN 128 #endif #ifndef PIOS_COM_TELEM_RF_TX_BUF_LEN -# define PIOS_COM_TELEM_RF_TX_BUF_LEN 512 +# define PIOS_COM_TELEM_RF_TX_BUF_LEN 128 #endif /* RFM22B telemetry */ #ifdef PIOS_INCLUDE_RFM22B extern uint32_t pios_rfm22b_id; /* RFM22B handle */ -extern uint32_t pios_com_rf_id; /* oplink telemetry */ -# define PIOS_COM_RF (pios_com_rf_id) -# ifndef PIOS_COM_RFM22B_RF_RX_BUF_LEN -# define PIOS_COM_RFM22B_RF_RX_BUF_LEN 512 +extern uint32_t pios_com_pri_radio_id; /* oplink primary com stream */ +extern uint32_t pios_com_aux_radio_id; /* oplink aux com stream */ +# define PIOS_COM_RF (pios_com_pri_radio_id) +# define PIOS_COM_PRI_RADIO (pios_com_pri_radio_id) +# define PIOS_COM_AUX_RADIO (pios_com_aux_radio_id) +# ifndef PIOS_COM_PRI_RADIO_RX_BUF_LEN +# define PIOS_COM_PRI_RADIO_RX_BUF_LEN 128 # endif -# ifndef PIOS_COM_RFM22B_RF_TX_BUF_LEN -# define PIOS_COM_RFM22B_RF_TX_BUF_LEN 512 +# ifndef PIOS_COM_PRI_RADIO_TX_BUF_LEN +# define PIOS_COM_PRI_RADIO_TX_BUF_LEN 128 +# endif +# ifndef PIOS_COM_AUX_RADIO_RX_BUF_LEN +# define PIOS_COM_AUX_RADIO_RX_BUF_LEN 128 +# endif +# ifndef PIOS_COM_AUX_RADIO_TX_BUF_LEN +# define PIOS_COM_AUX_RADIO_TX_BUF_LEN 128 # endif #endif @@ -201,13 +210,6 @@ typedef enum { PIOS_BOARD_IO_UART_HOTT_BRIDGE, /* com */ } PIOS_BOARD_IO_UART_Function; -typedef enum { - PIOS_BOARD_IO_RADIOAUX_NONE = 0, - PIOS_BOARD_IO_RADIOAUX_MAVLINK, - PIOS_BOARD_IO_RADIOAUX_COMBRIDGE, - PIOS_BOARD_IO_RADIOAUX_DEBUGCONSOLE, -// PIOS_BOARD_IO_RADIOAUX_FRSKY_SPORT_TELEMETRY, -} PIOS_BOARD_IO_RADIOAUX_Function; #ifdef PIOS_INCLUDE_USB # ifndef BOOTLOADER @@ -234,22 +236,26 @@ void PIOS_BOARD_IO_Configure_USB_Function(PIOS_BOARD_IO_USB_HID_Function hid_fun # endif // ifndef BOOTLOADER #endif // ifdef PIOS_INCLUDE_USB #ifdef PIOS_INCLUDE_PWM -void PIOS_BOARD_IO_Configure_PWM(const struct pios_pwm_cfg *pwm_cfg); +void PIOS_BOARD_IO_Configure_PWM_RCVR(const struct pios_pwm_cfg *pwm_cfg); #endif #ifdef PIOS_INCLUDE_PPM -void PIOS_BOARD_IO_Configure_PPM(const struct pios_ppm_cfg *ppm_cfg); +void PIOS_BOARD_IO_Configure_PPM_RCVR(const struct pios_ppm_cfg *ppm_cfg); #endif - #ifdef PIOS_INCLUDE_USART void PIOS_BOARD_IO_Configure_UART(const struct pios_usart_cfg *usart_cfg, PIOS_BOARD_IO_UART_Function function); +void PIOS_BOARD_IO_Configure_UART_COM(const struct pios_usart_cfg *hw_config, + uint16_t rx_buf_len, + uint16_t tx_buf_len, + uint32_t *com_id); #endif #ifdef PIOS_INCLUDE_RFM22B -void PIOS_BOARD_IO_Configure_RFM22B(PIOS_BOARD_IO_RADIOAUX_Function function); +void PIOS_BOARD_IO_Configure_RFM22B(); +void PIOS_BOARD_IO_Configure_RadioAuxStream(HwSettingsRadioAuxStreamOptions radioaux); /* not for OPLM */ #endif #ifdef PIOS_INCLUDE_GCSRCVR -void PIOS_BOARD_IO_Configure_GCSRCVR(); +void PIOS_BOARD_IO_Configure_GCS_RCVR(); #endif #endif /* PIOS_BOARD_IO_H */ diff --git a/flight/targets/boards/coptercontrol/firmware/pios_board.c b/flight/targets/boards/coptercontrol/firmware/pios_board.c index baffcae28..47509d294 100644 --- a/flight/targets/boards/coptercontrol/firmware/pios_board.c +++ b/flight/targets/boards/coptercontrol/firmware/pios_board.c @@ -246,7 +246,7 @@ void PIOS_Board_Init(void) break; case HWSETTINGS_CC_FLEXIPORT_PPM: #if defined(PIOS_INCLUDE_PPM_FLEXI) - PIOS_BOARD_IO_Configure_PPM(&pios_ppm_flexi_cfg); + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_flexi_cfg); #endif /* PIOS_INCLUDE_PPM_FLEXI */ break; } @@ -289,23 +289,23 @@ void PIOS_Board_Init(void) break; case HWSETTINGS_CC_RCVRPORT_PWMNOONESHOT: #if defined(PIOS_INCLUDE_PWM) - PIOS_BOARD_IO_Configure_PWM(&pios_pwm_cfg); + PIOS_BOARD_IO_Configure_PWM_RCVR(&pios_pwm_cfg); #endif /* PIOS_INCLUDE_PWM */ break; case HWSETTINGS_CC_RCVRPORT_PPMNOONESHOT: case HWSETTINGS_CC_RCVRPORT_PPMOUTPUTSNOONESHOT: case HWSETTINGS_CC_RCVRPORT_PPM_PIN8ONESHOT: #if defined(PIOS_INCLUDE_PPM) - PIOS_BOARD_IO_Configure_PPM((hwsettings_rcvrport == HWSETTINGS_CC_RCVRPORT_PPM_PIN8ONESHOT) ? &pios_ppm_pin8_cfg : &pios_ppm_cfg); + PIOS_BOARD_IO_Configure_PPM_RCVR((hwsettings_rcvrport == HWSETTINGS_CC_RCVRPORT_PPM_PIN8ONESHOT) ? &pios_ppm_pin8_cfg : &pios_ppm_cfg); #endif /* PIOS_INCLUDE_PPM */ break; case HWSETTINGS_CC_RCVRPORT_PPMPWMNOONESHOT: /* This is a combination of PPM and PWM inputs */ #if defined(PIOS_INCLUDE_PPM) - PIOS_BOARD_IO_Configure_PPM(&pios_ppm_cfg); + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_cfg); #endif /* PIOS_INCLUDE_PPM */ #if defined(PIOS_INCLUDE_PWM) - PIOS_BOARD_IO_Configure_PWM(&pios_pwm_with_ppm_cfg); + PIOS_BOARD_IO_Configure_PWM_RCVR(&pios_pwm_with_ppm_cfg); #endif /* PIOS_INCLUDE_PWM */ break; case HWSETTINGS_CC_RCVRPORT_OUTPUTSONESHOT: @@ -313,7 +313,7 @@ void PIOS_Board_Init(void) } #ifdef PIOS_INCLUDE_GCSRCVR - PIOS_BOARD_IO_Configure_GCSRCVR(); + PIOS_BOARD_IO_Configure_GCS_RCVR(); #endif /* Remap AFIO pin for PB4 (Servo 5 Out)*/ diff --git a/flight/targets/boards/discoveryf4bare/firmware/pios_board.c b/flight/targets/boards/discoveryf4bare/firmware/pios_board.c index 5ffc19ec6..544f98c78 100644 --- a/flight/targets/boards/discoveryf4bare/firmware/pios_board.c +++ b/flight/targets/boards/discoveryf4bare/firmware/pios_board.c @@ -99,12 +99,6 @@ static const PIOS_BOARD_IO_UART_Function flexi_function_map[] = { [HWSETTINGS_RM_FLEXIPORT_MAVLINK] = PIOS_BOARD_IO_UART_MAVLINK, }; -static const PIOS_BOARD_IO_RADIOAUX_Function radioaux_function_map[] = { - [HWSETTINGS_RADIOAUXSTREAM_DEBUGCONSOLE] = PIOS_BOARD_IO_RADIOAUX_DEBUGCONSOLE, - [HWSETTINGS_RADIOAUXSTREAM_MAVLINK] = PIOS_BOARD_IO_RADIOAUX_MAVLINK, - [HWSETTINGS_RADIOAUXSTREAM_COMBRIDGE] = PIOS_BOARD_IO_RADIOAUX_COMBRIDGE, -}; - int32_t PIOS_BOARD_USART_Ioctl(uint32_t usart_id, uint32_t ctl, void *param) { const struct pios_usart_cfg *usart_cfg = PIOS_USART_GetConfig(usart_id); @@ -287,12 +281,12 @@ void PIOS_Board_Init(void) } #if defined(PIOS_INCLUDE_RFM22B) + PIOS_BOARD_IO_Configure_RFM22B(); + uint8_t hwsettings_radioaux; HwSettingsRadioAuxStreamGet(&hwsettings_radioaux); - if (hwsettings_radioaux < NELEMENTS(radioaux_function_map)) { - PIOS_BOARD_IO_Configure_RFM22B(pios_spi_telem_flash_id, radioaux_function_map[hwsettings_radioaux]); - } + PIOS_BOARD_IO_Configure_RadioAuxStream(hwsettings_radioaux); #endif /* PIOS_INCLUDE_RFM22B */ @@ -316,7 +310,7 @@ void PIOS_Board_Init(void) case HWSETTINGS_RM_RCVRPORT_PWM: #if defined(PIOS_INCLUDE_PWM) /* Set up the receiver port. Later this should be optional */ - PIOS_BOARD_IO_Configure_PWM(&pios_pwm_cfg); + PIOS_BOARD_IO_Configure_PWM_RCVR(&pios_pwm_cfg); #endif /* PIOS_INCLUDE_PWM */ break; case HWSETTINGS_RM_RCVRPORT_PPM: @@ -329,7 +323,7 @@ void PIOS_Board_Init(void) case HWSETTINGS_RM_RCVRPORT_PPMMAVLINK: case HWSETTINGS_RM_RCVRPORT_PPMGPS: #if defined(PIOS_INCLUDE_PPM) - PIOS_BOARD_IO_Configure_PPM(&pios_ppm_cfg); + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_cfg); if (hwsettings_rcvrport == HWSETTINGS_RM_RCVRPORT_PPMOUTPUTS) { // configure servo outputs and the remaining 5 inputs as outputs @@ -338,7 +332,7 @@ void PIOS_Board_Init(void) // enable pwm on the remaining channels if (hwsettings_rcvrport == HWSETTINGS_RM_RCVRPORT_PPMPWM) { - PIOS_BOARD_IO_Configure_PWM(&pios_pwm_ppm_cfg); + PIOS_BOARD_IO_Configure_PWM_RCVR(&pios_pwm_ppm_cfg); } break; @@ -349,7 +343,7 @@ void PIOS_Board_Init(void) break; } #ifdef PIOS_INCLUDE_GCSRCVR - PIOS_BOARD_IO_Configure_GCSRCVR(); + PIOS_BOARD_IO_Configure_GCS_RCVR(); #endif #ifndef PIOS_ENABLE_DEBUG_PINS diff --git a/flight/targets/boards/oplinkmini/firmware/pios_board.c b/flight/targets/boards/oplinkmini/firmware/pios_board.c index 7b0787821..61730031e 100644 --- a/flight/targets/boards/oplinkmini/firmware/pios_board.c +++ b/flight/targets/boards/oplinkmini/firmware/pios_board.c @@ -37,6 +37,7 @@ #ifdef PIOS_INCLUDE_SERVO #include #endif +#include /* * Pull in the board-specific static HW definitions. @@ -48,36 +49,17 @@ */ #include "../board_hw_defs.c" -#define PIOS_COM_TELEM_USB_RX_BUF_LEN 128 -#define PIOS_COM_TELEM_USB_TX_BUF_LEN 128 - -#define PIOS_COM_TELEM_VCP_RX_BUF_LEN 128 -#define PIOS_COM_TELEM_VCP_TX_BUF_LEN 128 - -#define PIOS_COM_RFM22B_RF_RX_BUF_LEN 128 -#define PIOS_COM_RFM22B_RF_TX_BUF_LEN 128 - -#define PIOS_COM_TELEM_RX_BUF_LEN 128 -#define PIOS_COM_TELEM_TX_BUF_LEN 128 - uint32_t pios_com_hid_id = 0; -uint32_t pios_com_vcp_id = 0; +// uint32_t pios_com_vcp_id = 0; /* this is provided by pios_board_io.c */ uint32_t pios_com_main_id = 0; uint32_t pios_com_flexi_id = 0; -uint32_t pios_com_bridge_id = 0; uint32_t pios_com_gcs_id = 0; uint32_t pios_com_gcs_out_id = 0; -#if defined(PIOS_INCLUDE_PPM) -uint32_t pios_ppm_rcvr_id = 0; -#endif #if defined(PIOS_INCLUDE_PPM_OUT) uint32_t pios_ppm_out_id = 0; #endif #if defined(PIOS_INCLUDE_RFM22B) #include -uint32_t pios_rfm22b_id = 0; -uint32_t pios_com_pri_radio_id = 0; -uint32_t pios_com_aux_radio_id = 0; uint32_t pios_com_pri_radio_out_id = 0; uint32_t pios_com_aux_radio_out_id = 0; #endif @@ -87,41 +69,6 @@ uintptr_t pios_user_fs_id = 0; static uint8_t servo_count = 0; -/* - * Setup a com port based on the passed cfg, driver and buffer sizes. - * tx size of 0 make the port rx only - * rx size of 0 make the port tx only - * having both tx and rx size of 0 is not valid and will fail further down in PIOS_COM_Init() - */ -static void PIOS_Board_configure_com(const struct pios_usart_cfg *usart_port_cfg, uint16_t rx_buf_len, uint16_t tx_buf_len, - const struct pios_com_driver *com_driver, uint32_t *pios_com_id) -{ - uint32_t pios_usart_id; - - if (PIOS_USART_Init(&pios_usart_id, usart_port_cfg)) { - PIOS_Assert(0); - } - - uint8_t *rx_buffer = 0, *tx_buffer = 0; - - if (rx_buf_len > 0) { - rx_buffer = (uint8_t *)pios_malloc(rx_buf_len); - PIOS_Assert(rx_buffer); - } - - if (tx_buf_len > 0) { - tx_buffer = (uint8_t *)pios_malloc(tx_buf_len); - PIOS_Assert(tx_buffer); - } - - if (PIOS_COM_Init(pios_com_id, com_driver, pios_usart_id, - rx_buffer, rx_buf_len, - tx_buffer, tx_buf_len)) { - PIOS_Assert(0); - } -} - - // Forward definitions static void PIOS_Board_PPM_callback(uint32_t context, const int16_t *channels); @@ -184,10 +131,7 @@ void PIOS_Board_Init(void) PIOS_IAP_WriteBootCmd(2, 0); } -#if defined(PIOS_INCLUDE_RFM22B) OPLinkSettingsInitialize(); - OPLinkStatusInitialize(); -#endif /* PIOS_INCLUDE_RFM22B */ /* Retrieve the settings object. */ OPLinkSettingsData oplinkSettings; @@ -195,12 +139,7 @@ void PIOS_Board_Init(void) /* Determine the modem protocols */ bool is_coordinator = (oplinkSettings.Protocol == OPLINKSETTINGS_PROTOCOL_OPLINKCOORDINATOR); - bool openlrs = (oplinkSettings.Protocol == OPLINKSETTINGS_PROTOCOL_OPENLRS); bool ppm_only = (oplinkSettings.LinkType == OPLINKSETTINGS_LINKTYPE_CONTROL); - bool data_mode = ((oplinkSettings.LinkType == OPLINKSETTINGS_LINKTYPE_DATA) || - (oplinkSettings.LinkType == OPLINKSETTINGS_LINKTYPE_DATAANDCONTROL)); - bool is_enabled = ((oplinkSettings.Protocol != OPLINKSETTINGS_PROTOCOL_DISABLED) && - ((oplinkSettings.MaxRFPower != OPLINKSETTINGS_MAXRFPOWER_0) || openlrs)); bool ppm_mode = ((oplinkSettings.LinkType == OPLINKSETTINGS_LINKTYPE_CONTROL) || (oplinkSettings.LinkType == OPLINKSETTINGS_LINKTYPE_DATAANDCONTROL)); bool servo_main = false; @@ -300,9 +239,9 @@ void PIOS_Board_Init(void) case OPLINKSETTINGS_MAINPORT_TELEMETRY: case OPLINKSETTINGS_MAINPORT_SERIAL: #ifndef PIOS_RFM22B_DEBUG_ON_TELEM - PIOS_Board_configure_com(&pios_usart_main_cfg, - PIOS_COM_TELEM_RX_BUF_LEN, PIOS_COM_TELEM_TX_BUF_LEN, - &pios_usart_com_driver, &pios_com_main_id); + PIOS_BOARD_IO_Configure_UART_COM(&pios_usart_main_cfg, + PIOS_COM_TELEM_RF_RX_BUF_LEN, PIOS_COM_TELEM_RF_TX_BUF_LEN, + &pios_com_main_id); PIOS_COM_ChangeBaud(pios_com_main_id, mainComSpeed); #endif /* !PIOS_RFM22B_DEBUG_ON_TELEM */ break; @@ -310,12 +249,7 @@ void PIOS_Board_Init(void) #if defined(PIOS_INCLUDE_PPM) /* PPM input is configured on the coordinator modem and output on the remote modem. */ if (is_coordinator) { - uint32_t pios_ppm_id; - PIOS_PPM_Init(&pios_ppm_id, &pios_ppm_main_cfg); - - if (PIOS_RCVR_Init(&pios_ppm_rcvr_id, &pios_ppm_rcvr_driver, pios_ppm_id)) { - PIOS_Assert(0); - } + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_main_cfg); } // For some reason, PPM output on the main port doesn't work. #if defined(PIOS_INCLUDE_PPM_OUT) @@ -359,9 +293,9 @@ void PIOS_Board_Init(void) case OPLINKSETTINGS_FLEXIPORT_TELEMETRY: case OPLINKSETTINGS_FLEXIPORT_SERIAL: #ifndef PIOS_RFM22B_DEBUG_ON_TELEM - PIOS_Board_configure_com(&pios_usart_flexi_cfg, - PIOS_COM_TELEM_RX_BUF_LEN, PIOS_COM_TELEM_TX_BUF_LEN, - &pios_usart_com_driver, &pios_com_flexi_id); + PIOS_BOARD_IO_Configure_UART_COM(&pios_usart_flexi_cfg, + PIOS_COM_TELEM_RF_RX_BUF_LEN, PIOS_COM_TELEM_RF_TX_BUF_LEN, + &pios_com_flexi_id); PIOS_COM_ChangeBaud(pios_com_flexi_id, flexiComSpeed); #endif /* !PIOS_RFM22B_DEBUG_ON_TELEM */ break; @@ -369,12 +303,7 @@ void PIOS_Board_Init(void) #if defined(PIOS_INCLUDE_PPM) /* PPM input is configured on the coordinator modem and output on the remote modem. */ if (is_coordinator) { - uint32_t pios_ppm_id; - PIOS_PPM_Init(&pios_ppm_id, &pios_ppm_flexi_cfg); - - if (PIOS_RCVR_Init(&pios_ppm_rcvr_id, &pios_ppm_rcvr_driver, pios_ppm_id)) { - PIOS_Assert(0); - } + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_flexi_cfg); } // For some reason, PPM output on the flexi port doesn't work. #if defined(PIOS_INCLUDE_PPM_OUT) @@ -410,138 +339,11 @@ void PIOS_Board_Init(void) PIOS_Servo_SetBankMode(1, PIOS_SERVO_BANK_MODE_PWM); #endif - // Initialize out status object. - OPLinkStatusData oplinkStatus; - OPLinkStatusGet(&oplinkStatus); + PIOS_BOARD_IO_Configure_RFM22B(); - // Get our hardware information. - const struct pios_board_info *bdinfo = &pios_board_info_blob; - - oplinkStatus.BoardType = bdinfo->board_type; - PIOS_BL_HELPER_FLASH_Read_Description(oplinkStatus.Description, OPLINKSTATUS_DESCRIPTION_NUMELEM); - PIOS_SYS_SerialNumberGetBinary(oplinkStatus.CPUSerial); - oplinkStatus.BoardRevision = bdinfo->board_rev; - - /* Initialize the RFM22B radio COM device. */ - if (is_enabled) { - if (openlrs) { -#if defined(PIOS_INCLUDE_OPENLRS) - const struct pios_openlrs_cfg *openlrs_cfg = PIOS_BOARD_HW_DEFS_GetOpenLRSCfg(bdinfo->board_rev); - uint32_t openlrs_id; - - oplinkStatus.LinkState = OPLINKSTATUS_LINKSTATE_ENABLED; - - PIOS_OpenLRS_Init(&openlrs_id, PIOS_RFM22_SPI_PORT, 0, openlrs_cfg); - PIOS_OpenLRS_RegisterPPMCallback(openlrs_id, PIOS_Board_PPM_callback, 0); -#endif /* PIOS_INCLUDE_OPENLRS */ - } else { - oplinkStatus.LinkState = OPLINKSTATUS_LINKSTATE_ENABLED; - - // Configure the RFM22B device - const struct pios_rfm22b_cfg *rfm22b_cfg = PIOS_BOARD_HW_DEFS_GetRfm22Cfg(bdinfo->board_rev); - - if (PIOS_RFM22B_Init(&pios_rfm22b_id, PIOS_RFM22_SPI_PORT, rfm22b_cfg->slave_num, rfm22b_cfg, oplinkSettings.RFBand)) { - PIOS_Assert(0); - } - - // Configure the radio com interface - uint8_t *rx_buffer = (uint8_t *)pios_malloc(PIOS_COM_RFM22B_RF_RX_BUF_LEN); - uint8_t *tx_buffer = (uint8_t *)pios_malloc(PIOS_COM_RFM22B_RF_TX_BUF_LEN); - PIOS_Assert(rx_buffer); - PIOS_Assert(tx_buffer); - if (PIOS_COM_Init(&pios_com_pri_radio_id, &pios_rfm22b_com_driver, pios_rfm22b_id, - rx_buffer, PIOS_COM_RFM22B_RF_RX_BUF_LEN, - tx_buffer, PIOS_COM_RFM22B_RF_TX_BUF_LEN)) { - PIOS_Assert(0); - } - - // Initialize the aux radio com interface - uint8_t *auxrx_buffer = (uint8_t *)pios_malloc(PIOS_COM_TELEM_RX_BUF_LEN); - uint8_t *auxtx_buffer = (uint8_t *)pios_malloc(PIOS_COM_TELEM_TX_BUF_LEN); - PIOS_Assert(auxrx_buffer); - PIOS_Assert(auxtx_buffer); - if (PIOS_COM_Init(&pios_com_aux_radio_id, &pios_rfm22b_aux_com_driver, pios_rfm22b_id, - auxrx_buffer, PIOS_COM_TELEM_RX_BUF_LEN, - auxtx_buffer, PIOS_COM_TELEM_TX_BUF_LEN)) { - PIOS_Assert(0); - } - - // Set the modem (over the air) datarate. - enum rfm22b_datarate datarate = RFM22_datarate_64000; - switch (oplinkSettings.AirDataRate) { - case OPLINKSETTINGS_AIRDATARATE_9600: - datarate = RFM22_datarate_9600; - break; - case OPLINKSETTINGS_AIRDATARATE_19200: - datarate = RFM22_datarate_19200; - break; - case OPLINKSETTINGS_AIRDATARATE_32000: - datarate = RFM22_datarate_32000; - break; - case OPLINKSETTINGS_AIRDATARATE_57600: - datarate = RFM22_datarate_57600; - break; - case OPLINKSETTINGS_AIRDATARATE_64000: - datarate = RFM22_datarate_64000; - break; - case OPLINKSETTINGS_AIRDATARATE_100000: - datarate = RFM22_datarate_100000; - break; - case OPLINKSETTINGS_AIRDATARATE_128000: - datarate = RFM22_datarate_128000; - break; - case OPLINKSETTINGS_AIRDATARATE_192000: - datarate = RFM22_datarate_192000; - break; - case OPLINKSETTINGS_AIRDATARATE_256000: - datarate = RFM22_datarate_256000; - break; - } - - /* Set the modem Tx power level */ - switch (oplinkSettings.MaxRFPower) { - case OPLINKSETTINGS_MAXRFPOWER_125: - PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_0); - break; - case OPLINKSETTINGS_MAXRFPOWER_16: - PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_1); - break; - case OPLINKSETTINGS_MAXRFPOWER_316: - PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_2); - break; - case OPLINKSETTINGS_MAXRFPOWER_63: - PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_3); - break; - case OPLINKSETTINGS_MAXRFPOWER_126: - PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_4); - break; - case OPLINKSETTINGS_MAXRFPOWER_25: - PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_5); - break; - case OPLINKSETTINGS_MAXRFPOWER_50: - PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_6); - break; - case OPLINKSETTINGS_MAXRFPOWER_100: - PIOS_RFM22B_SetTxPower(pios_rfm22b_id, RFM22_tx_pwr_txpow_7); - break; - default: - // do nothing - break; - } - - // Set the radio configuration parameters. - PIOS_RFM22B_SetDeviceID(pios_rfm22b_id, oplinkSettings.CustomDeviceID); - PIOS_RFM22B_SetCoordinatorID(pios_rfm22b_id, oplinkSettings.CoordID); - PIOS_RFM22B_SetXtalCap(pios_rfm22b_id, oplinkSettings.RFXtalCap); - PIOS_RFM22B_SetChannelConfig(pios_rfm22b_id, datarate, oplinkSettings.MinChannel, oplinkSettings.MaxChannel, is_coordinator, data_mode, ppm_mode); - - /* Set the PPM callback if we should be receiving PPM. */ - if (ppm_mode || (ppm_only && !is_coordinator)) { - PIOS_RFM22B_SetPPMCallback(pios_rfm22b_id, PIOS_Board_PPM_callback, 0); - } - } // openlrs - } else { - oplinkStatus.LinkState = OPLINKSTATUS_LINKSTATE_DISABLED; + /* Set the PPM callback if we should be receiving PPM. */ + if (ppm_mode || (ppm_only && !is_coordinator)) { + PIOS_RFM22B_SetPPMCallback(pios_rfm22b_id, PIOS_Board_PPM_callback, 0); } // Configure the primary radio stream destination. @@ -622,9 +424,6 @@ void PIOS_Board_Init(void) break; } - // Update the object - OPLinkStatusSet(&oplinkStatus); - /* Remap AFIO pin */ GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE); diff --git a/flight/targets/boards/oplinkmini/pios_board.h b/flight/targets/boards/oplinkmini/pios_board.h index e96c0b12d..15f07034b 100644 --- a/flight/targets/boards/oplinkmini/pios_board.h +++ b/flight/targets/boards/oplinkmini/pios_board.h @@ -172,7 +172,13 @@ extern uint32_t pios_i2c_flexi_adapter_id; // // See also pios_board.c // ------------------------- -#define PIOS_COM_MAX_DEVS 5 +#define PIOS_COM_MAX_DEVS 5 + +#define PIOS_COM_TELEM_USB_RX_BUF_LEN 128 +#define PIOS_COM_TELEM_USB_TX_BUF_LEN 128 + +#define PIOS_COM_TELEM_VCP_RX_BUF_LEN 128 +#define PIOS_COM_TELEM_VCP_TX_BUF_LEN 128 // The direct com ports extern uint32_t pios_com_hid_id; @@ -192,7 +198,6 @@ extern uint32_t pios_com_pri_radio_out_id; // The destination port for the auxiliary radio port. extern uint32_t pios_com_aux_radio_out_id; // The PPM IDs -extern uint32_t pios_ppm_rcvr_id; extern uint32_t pios_ppm_out_id; #define PIOS_COM_HID (pios_com_hid_id) #define PIOS_COM_VCP (pios_com_vcp_id) @@ -205,7 +210,6 @@ extern uint32_t pios_ppm_out_id; #define PIOS_COM_GCS (pios_com_gcs_id) #define PIOS_COM_GCS_OUT (pios_com_gcs_out_id) #define PIOS_COM_BRIDGE (pios_com_bridge_id) -#define PIOS_PPM_RECEIVER (pios_ppm_rcvr_id) #define PIOS_PPM_OUTPUT (pios_ppm_out_id) #define RFM22_DEBUG 1 diff --git a/flight/targets/boards/revolution/firmware/pios_board.c b/flight/targets/boards/revolution/firmware/pios_board.c index 47279154e..e958bb7c8 100644 --- a/flight/targets/boards/revolution/firmware/pios_board.c +++ b/flight/targets/boards/revolution/firmware/pios_board.c @@ -98,13 +98,6 @@ static const PIOS_BOARD_IO_UART_Function flexi_function_map[] = { [HWSETTINGS_RM_FLEXIPORT_MAVLINK] = PIOS_BOARD_IO_UART_MAVLINK, }; -static const PIOS_BOARD_IO_RADIOAUX_Function radioaux_function_map[] = { - [HWSETTINGS_RADIOAUXSTREAM_DEBUGCONSOLE] = PIOS_BOARD_IO_RADIOAUX_DEBUGCONSOLE, - [HWSETTINGS_RADIOAUXSTREAM_MAVLINK] = PIOS_BOARD_IO_RADIOAUX_MAVLINK, - [HWSETTINGS_RADIOAUXSTREAM_COMBRIDGE] = PIOS_BOARD_IO_RADIOAUX_COMBRIDGE, -}; - - int32_t PIOS_BOARD_USART_Ioctl(uint32_t usart_id, uint32_t ctl, void *param) { const struct pios_usart_cfg *usart_cfg = PIOS_USART_GetConfig(usart_id); @@ -287,12 +280,12 @@ void PIOS_Board_Init(void) } #if defined(PIOS_INCLUDE_RFM22B) + PIOS_BOARD_IO_Configure_RFM22B(); + uint8_t hwsettings_radioaux; HwSettingsRadioAuxStreamGet(&hwsettings_radioaux); - if (hwsettings_radioaux < NELEMENTS(radioaux_function_map)) { - PIOS_BOARD_IO_Configure_RFM22B(radioaux_function_map[hwsettings_radioaux]); - } + PIOS_BOARD_IO_Configure_RadioAuxStream(hwsettings_radioaux); #endif /* PIOS_INCLUDE_RFM22B */ #if defined(PIOS_INCLUDE_PWM) || defined(PIOS_INCLUDE_PPM) @@ -314,7 +307,7 @@ void PIOS_Board_Init(void) case HWSETTINGS_RM_RCVRPORT_PWM: #if defined(PIOS_INCLUDE_PWM) /* Set up the receiver port. Later this should be optional */ - PIOS_BOARD_IO_Configure_PWM(&pios_pwm_cfg); + PIOS_BOARD_IO_Configure_PWM_RCVR(&pios_pwm_cfg); #endif /* PIOS_INCLUDE_PWM */ break; case HWSETTINGS_RM_RCVRPORT_PPM: @@ -328,7 +321,7 @@ void PIOS_Board_Init(void) case HWSETTINGS_RM_RCVRPORT_PPMGPS: case HWSETTINGS_RM_RCVRPORT_PPMHOTTTELEMETRY: #if defined(PIOS_INCLUDE_PPM) - PIOS_BOARD_IO_Configure_PPM(&pios_ppm_cfg); + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_cfg); if (hwsettings_rcvrport == HWSETTINGS_RM_RCVRPORT_PPMOUTPUTS) { // configure servo outputs and the remaining 5 inputs as outputs @@ -337,7 +330,7 @@ void PIOS_Board_Init(void) // enable pwm on the remaining channels if (hwsettings_rcvrport == HWSETTINGS_RM_RCVRPORT_PPMPWM) { - PIOS_BOARD_IO_Configure_PWM(&pios_pwm_ppm_cfg); + PIOS_BOARD_IO_Configure_PWM_RCVR(&pios_pwm_ppm_cfg); } break; @@ -348,7 +341,7 @@ void PIOS_Board_Init(void) break; } #ifdef PIOS_INCLUDE_GCSRCVR - PIOS_BOARD_IO_Configure_GCSRCVR(); + PIOS_BOARD_IO_Configure_GCS_RCVR(); #endif #ifndef PIOS_ENABLE_DEBUG_PINS diff --git a/flight/targets/boards/revonano/firmware/pios_board.c b/flight/targets/boards/revonano/firmware/pios_board.c index d4883768d..5f8fb7799 100644 --- a/flight/targets/boards/revonano/firmware/pios_board.c +++ b/flight/targets/boards/revonano/firmware/pios_board.c @@ -263,7 +263,7 @@ void PIOS_Board_Init(void) case HWSETTINGS_RM_RCVRPORT_PWM: #if defined(PIOS_INCLUDE_PWM) /* Set up the receiver port. Later this should be optional */ - PIOS_BOARD_IO_Configure_PWM(&pios_pwm_cfg); + PIOS_BOARD_IO_Configure_PWM_RCVR(&pios_pwm_cfg); #endif /* PIOS_INCLUDE_PWM */ break; case HWSETTINGS_RM_RCVRPORT_PPM: @@ -275,7 +275,7 @@ void PIOS_Board_Init(void) pios_servo_cfg = &pios_servo_cfg_out_in_ppm; } - PIOS_BOARD_IO_Configure_PPM(&pios_ppm_cfg); + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_cfg); break; #endif /* PIOS_INCLUDE_PPM */ @@ -287,7 +287,7 @@ void PIOS_Board_Init(void) #ifdef PIOS_INCLUDE_GCSRCVR - PIOS_BOARD_IO_Configure_GCSRCVR(); + PIOS_BOARD_IO_Configure_GCS_RCVR(); #endif #ifdef PIOS_INCLUDE_WS2811 diff --git a/flight/targets/boards/revoproto/firmware/pios_board.c b/flight/targets/boards/revoproto/firmware/pios_board.c index 167f19bd0..66242f413 100644 --- a/flight/targets/boards/revoproto/firmware/pios_board.c +++ b/flight/targets/boards/revoproto/firmware/pios_board.c @@ -313,13 +313,13 @@ void PIOS_Board_Init(void) break; case HWSETTINGS_RV_RCVRPORT_PWM: #if defined(PIOS_INCLUDE_PWM) - PIOS_BOARD_IO_Configure_PWM(&pios_pwm_cfg); + PIOS_BOARD_IO_Configure_PWM_RCVR(&pios_pwm_cfg); #endif /* PIOS_INCLUDE_PWM */ break; case HWSETTINGS_RV_RCVRPORT_PPM: case HWSETTINGS_RV_RCVRPORT_PPMOUTPUTS: #if defined(PIOS_INCLUDE_PPM) - PIOS_BOARD_IO_Configure_PPM(&pios_ppm_cfg); + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_cfg); #endif /* PIOS_INCLUDE_PPM */ case HWSETTINGS_RV_RCVRPORT_OUTPUTS: @@ -359,7 +359,7 @@ void PIOS_Board_Init(void) #endif #ifdef PIOS_INCLUDE_GCSRCVR - PIOS_BOARD_IO_Configure_GCSRCVR(); + PIOS_BOARD_IO_Configure_GCS_RCVR(); #endif #ifndef PIOS_ENABLE_DEBUG_PINS diff --git a/flight/targets/boards/sparky2/firmware/pios_board.c b/flight/targets/boards/sparky2/firmware/pios_board.c index a9b72f485..d9d7fd9ee 100644 --- a/flight/targets/boards/sparky2/firmware/pios_board.c +++ b/flight/targets/boards/sparky2/firmware/pios_board.c @@ -93,12 +93,6 @@ static const PIOS_BOARD_IO_UART_Function flexi_function_map[] = { [HWSETTINGS_SPK2_FLEXIPORT_MAVLINK] = PIOS_BOARD_IO_UART_MAVLINK, }; -static const PIOS_BOARD_IO_RADIOAUX_Function radioaux_function_map[] = { - [HWSETTINGS_RADIOAUXSTREAM_DEBUGCONSOLE] = PIOS_BOARD_IO_RADIOAUX_DEBUGCONSOLE, - [HWSETTINGS_RADIOAUXSTREAM_MAVLINK] = PIOS_BOARD_IO_RADIOAUX_MAVLINK, - [HWSETTINGS_RADIOAUXSTREAM_COMBRIDGE] = PIOS_BOARD_IO_RADIOAUX_COMBRIDGE, -}; - int32_t PIOS_BOARD_USART_Ioctl(uint32_t usart_id, uint32_t ctl, void *param) { const struct pios_usart_cfg *usart_cfg = PIOS_USART_GetConfig(usart_id); @@ -263,12 +257,12 @@ void PIOS_Board_Init(void) } #if defined(PIOS_INCLUDE_RFM22B) + PIOS_BOARD_IO_Configure_RFM22B(); + uint8_t hwsettings_radioaux; HwSettingsRadioAuxStreamGet(&hwsettings_radioaux); - if (hwsettings_radioaux < NELEMENTS(radioaux_function_map)) { - PIOS_BOARD_IO_Configure_RFM22B(radioaux_function_map[hwsettings_radioaux]); - } + PIOS_BOARD_IO_Configure_RadioAuxStream(hwsettings_radioaux); #endif /* PIOS_INCLUDE_RFM22B */ /* Initialize inverter gpio and set it to off */ @@ -301,12 +295,12 @@ void PIOS_Board_Init(void) #if defined(PIOS_INCLUDE_PPM) if (hwsettings_rcvrport == HWSETTINGS_SPK2_RCVRPORT_PPM) { - PIOS_BOARD_IO_Configure_PPM(&pios_ppm_cfg); + PIOS_BOARD_IO_Configure_PPM_RCVR(&pios_ppm_cfg); } #endif #ifdef PIOS_INCLUDE_GCSRCVR - PIOS_BOARD_IO_Configure_GCSRCVR(); + PIOS_BOARD_IO_Configure_GCS_RCVR(); #endif #ifndef PIOS_ENABLE_DEBUG_PINS