application: remove features unsupported by dongle

This commit is contained in:
King Kévin 2020-03-09 13:09:01 +01:00
parent 92fd728774
commit 2351a1c221
1 changed files with 23 additions and 5 deletions

View File

@ -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; i<LENGTH(busvoodoo_global_pinout_rscan); i++) {
busvoodoo_global_pinout_rscan[i] = NULL;
}
for (uint8_t i=0; i<LENGTH(busvoodoo_global_pinout_io); i++) {
busvoodoo_global_pinout_io[i] = NULL;
}
#if BUSVOODOO_HARDWARE_VERSION != 2
for (uint8_t i=0; i<LENGTH(busvoodoo_global_pinout_rscan); i++) {
busvoodoo_global_pinout_rscan[i] = NULL;
}
busvoodoo_oled_clear(); // clear OLED display buffer
busvoodoo_oled_update(); // update OLED display
#endif
if (NULL==mode) { // no mode provided
busvoodoo_mode = &busvoodoo_hiz_mode; // use default mode
} else { // mode provided
@ -179,9 +189,11 @@ static void command_help(void* argument)
printf("available commands:\n");
menu_print_commands(menu_commands, LENGTH(menu_commands)); // print global commands
menu_print_commands(busvoodoo_global_commands, busvoodoo_global_commands_nb); // print BusVoodoo global commands
#if BUSVOODOO_HARDWARE_VERSION != 2
if (busvoodoo_full) {
menu_print_commands(busvoodoo_global_full_commands, busvoodoo_global_full_commands_nb); // print BusVoodoo global commands
}
#endif
if (!busvoodoo_mode->full_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);