/** Set up the USART peripherals, hook them into the settings subsystem * */ void usarts_setup() { radio_setup(); int TYPE_PORTMODE = settings_type_register_enum(portmode_enum, &portmode); SETTING("uart_ftdi", "mode", ftdi_usart.mode, TYPE_PORTMODE); SETTING("uart_ftdi", "sbp_message_mask", ftdi_usart.sbp_message_mask, TYPE_INT); SETTING("uart_ftdi", "fwd_msg", ftdi_usart.sbp_fwd, TYPE_INT); SETTING_NOTIFY("uart_ftdi", "baudrate", ftdi_usart.baud_rate, TYPE_INT, baudrate_change_notify); SETTING("uart_uarta", "mode", uarta_usart.mode, TYPE_PORTMODE); SETTING("uart_uarta", "sbp_message_mask", uarta_usart.sbp_message_mask, TYPE_INT); SETTING("uart_uarta", "configure_telemetry_radio_on_boot", uarta_usart.configure_telemetry_radio_on_boot, TYPE_BOOL); SETTING("uart_uarta", "fwd_msg", uarta_usart.sbp_fwd, TYPE_INT); SETTING_NOTIFY("uart_uarta", "baudrate", uarta_usart.baud_rate, TYPE_INT, baudrate_change_notify); SETTING("uart_uartb", "mode", uartb_usart.mode, TYPE_PORTMODE); SETTING("uart_uartb", "sbp_message_mask", uartb_usart.sbp_message_mask, TYPE_INT); SETTING("uart_uartb", "configure_telemetry_radio_on_boot", uartb_usart.configure_telemetry_radio_on_boot, TYPE_BOOL); SETTING("uart_uartb", "fwd_msg", uartb_usart.sbp_fwd, TYPE_INT); SETTING_NOTIFY("uart_uartb", "baudrate", uartb_usart.baud_rate, TYPE_INT, baudrate_change_notify); usarts_enable(ftdi_usart.baud_rate, uarta_usart.baud_rate, uartb_usart.baud_rate, true); }
/* Setup user settings hooks etc. */ void max2769_setup(void) { static const char const *antenna_enum[] = {"Auto", "Patch", "External", NULL}; static struct setting_type antenna_setting; int TYPE_ANTENNA = settings_type_register_enum(antenna_enum, &antenna_setting); SETTING_NOTIFY("frontend", "antenna_selection", antenna, TYPE_ANTENNA, antenna_changed); }
/** Set up the external event detection system * * Informs the NAP of the desired trigger mode, and registers a settings callback * to update the NAP if the trigger mode is changed. * */ void ext_event_setup(void) { static const char const *trigger_enum[] = {"None", "Rising", "Falling", "Both", NULL}; static struct setting_type trigger_setting; int TYPE_TRIGGER = settings_type_register_enum(trigger_enum, &trigger_setting); SETTING_NOTIFY("ext_events", "edge_trigger", trigger, TYPE_TRIGGER, trigger_changed); /* trigger_changed() will be called at setup time (i.e. immediately) as well as if user changes the setting later. */ }
void settings_setup(void) { TYPE_BOOL = settings_type_register_enum(bool_enum, &bool_settings_type); static sbp_msg_callbacks_node_t settings_msg_node; sbp_register_cbk( SBP_MSG_SETTINGS, &settings_msg_callback, &settings_msg_node ); static sbp_msg_callbacks_node_t settings_save_node; sbp_register_cbk( SBP_MSG_SETTINGS_SAVE, &settings_save_callback, &settings_save_node ); static sbp_msg_callbacks_node_t settings_read_by_index_node; sbp_register_cbk( SBP_MSG_SETTINGS_READ_BY_INDEX, &settings_read_by_index_callback, &settings_read_by_index_node ); }