From 2351a1c221f4cce6f082f27f59e0f97649ae9f13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Mon, 9 Mar 2020 13:09:01 +0100 Subject: [PATCH] application: remove features unsupported by dongle --- application.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/application.c b/application.c index 52d9ae7..8643f73 100644 --- a/application.c +++ b/application.c @@ -20,20 +20,22 @@ /* own libraries */ #include "global.h" // board definitions #include "print.h" // printing utilities -#include "uart.h" // USART utilities #include "usb_cdcacm.h" // USB CDC ACM utilities #include "terminal.h" // handle the terminal interface #include "menu.h" // menu utilities #include "busvoodoo_global.h" // BusVoodoo definitions -#include "busvoodoo_oled.h" // OLED utilities #include "busvoodoo_hiz.h" // BusVoodoo HiZ mode #include "busvoodoo_uart.h" // BusVoodoo UART mode #include "busvoodoo_i2c.h" // BusVoodoo I2C mode #include "busvoodoo_spi.h" // BusVoodoo SPI mode +#if BUSVOODOO_HARDWARE_VERSION != 2 #include "busvoodoo_onewire.h" // BusVoodoo 1-wire mode +#include "uart.h" // USART utilities +#include "busvoodoo_oled.h" // OLED utilities #include "busvoodoo_rs232.h" // BusVoodoo RS-232 mode #include "busvoodoo_rs485.h" // BusVoodoo RS-485/422 mode #include "busvoodoo_sdio.h" // BusVoodoo SDIO mode +#endif /** watchdog period in ms */ #define WATCHDOG_PERIOD 10000 @@ -60,10 +62,12 @@ static const struct busvoodoo_mode_t* busvoodoo_modes[] = { &busvoodoo_uart_mode, &busvoodoo_i2c_mode, &busvoodoo_spi_mode, +#if BUSVOODOO_HARDWARE_VERSION != 2 &busvoodoo_onewire_mode, &busvoodoo_rs232_mode, &busvoodoo_rs485_mode, &busvoodoo_sdio_mode, +#endif }; /** current BusVoodoo mode */ @@ -77,12 +81,16 @@ size_t putc(char c) static char last_c = 0; // to remember on which character we last sent if ('\n' == c) { // send carriage return (CR) + line feed (LF) newline for each LF if ('\r' != last_c) { // CR has not already been sent +#if BUSVOODOO_HARDWARE_VERSION != 2 uart_putchar_nonblocking('\r'); // send CR over USART +#endif usb_cdcacm_putchar('\r'); // send CR over USB length++; // remember we printed 1 character } } +#if BUSVOODOO_HARDWARE_VERSION != 2 uart_putchar_nonblocking(c); // send byte over USART +#endif usb_cdcacm_putchar(c); // send byte over USB length++; // remember we printed 1 character last_c = c; // remember last character @@ -100,14 +108,16 @@ static void switch_mode(const struct busvoodoo_mode_t* mode) busvoodoo_leds_off(); // switch off LEDs busvoodoo_safe_state(); // return to safe state // reset pinout - for (uint8_t i=0; ifull_only || busvoodoo_full) { menu_print_commands(busvoodoo_mode->commands, busvoodoo_mode->commands_nb); // print BusVoodoo mode commands } @@ -253,9 +265,11 @@ static void process_command(char* str) if (!busvoodoo_mode->full_only || busvoodoo_full) { command_handled = menu_handle_command(str, busvoodoo_mode->commands, busvoodoo_mode->commands_nb); // try if the mode can handle this command } +#if BUSVOODOO_HARDWARE_VERSION != 2 if (!command_handled && busvoodoo_full) { command_handled = menu_handle_command(str, busvoodoo_global_full_commands, busvoodoo_global_full_commands_nb); // try if full BusVoodoo can handle this command } +#endif if (!command_handled) { command_handled = menu_handle_command(str, busvoodoo_global_commands, busvoodoo_global_commands_nb); // try if the base BusVoodoo can handle this command } @@ -291,7 +305,9 @@ void main(void) // setup board board_setup(); // setup board +#if BUSVOODOO_HARDWARE_VERSION != 2 uart_setup(); // setup USART (for printing) +#endif busvoodoo_setup(); // setup BusVoodoo board usb_cdcacm_setup(); // setup USB CDC ACM (for printing) puts("\nwelcome to \x1b[32mBus\x1b[35mVoodoo\x1b[0m\n"); // print welcome message @@ -333,6 +349,7 @@ void main(void) terminal_process = &process_command; // set central function to process commands terminal_setup(); // start terminal +#if BUSVOODOO_HARDWARE_VERSION != 2 // setup OLED display sleep_ms(10); // wait a bit until the display is ready busvoodoo_oled_setup(); // setup OLED display @@ -352,6 +369,7 @@ void main(void) busvoodoo_oled_update(); sleep_ms(1000); busvoodoo_oled_clear(); +#endif // setup default mode switch_mode(NULL);