X-Git-Url: http://git.droids-corp.org/?p=protos%2Fxbee-avr.git;a=blobdiff_plain;f=cmdline.c;h=60dc9a693f70da836d6d15e418ff47541d5a39d5;hp=5eafc1d3f6ae58c0b2930c20258ec4726b9b4c72;hb=292db1d7238997d4d820370a83fe44d2cb609949;hpb=d6014994e06ebe952d51bef2e36a795f624c4b4d diff --git a/cmdline.c b/cmdline.c index 5eafc1d..60dc9a6 100644 --- a/cmdline.c +++ b/cmdline.c @@ -36,24 +36,33 @@ #include "main.h" #include "cmdline.h" -#include "DualVirtualSerial.h" +#ifdef USE_USB +#include "DualVirtualSerial.h" +#endif -/******** See in commands.c for the list of commands. */ extern parse_pgm_ctx_t main_ctx[]; -int usbserial1_dev_send(char c, FILE* f) +int cmdline_dev_send(char c, FILE* f) { +#ifdef USE_USB CDC_Device_SendByte(&VirtualSerial1_CDC_Interface, (uint8_t)c); +#else + uart_send(CMDLINE_UART, c); +#endif return 0; } -int usbserial1_dev_recv(FILE* f) +int cmdline_dev_recv(FILE* f) { int16_t c; +#ifdef USE_USB /* non-blocking ! */ c = CDC_Device_ReceiveByte(&VirtualSerial1_CDC_Interface); +#else + c = uart_recv_nowait(CMDLINE_UART); +#endif if (c < 0) return _FDEV_EOF; @@ -61,25 +70,32 @@ int usbserial1_dev_recv(FILE* f) } -int usbserial2_dev_send(char c, FILE* f) +int xbee_dev_send(char c, FILE* f) { +#ifdef USE_USB CDC_Device_SendByte(&VirtualSerial2_CDC_Interface, (uint8_t)c); +#else + uart_send(XBEE_UART, c); +#endif return 0; } -int usbserial2_dev_recv(FILE* f) +int xbee_dev_recv(FILE* f) { int16_t c; +#ifdef USE_USB /* non-blocking ! */ c = CDC_Device_ReceiveByte(&VirtualSerial2_CDC_Interface); +#else + c = uart_recv_nowait(XBEE_UART); +#endif if (c < 0) return _FDEV_EOF; return c; } - static void valid_buffer(const char *buf, uint8_t size) { @@ -104,14 +120,14 @@ complete_buffer(const char *buf, char *dstbuf, uint8_t dstsize, static void write_char(char c) { - usbserial1_dev_send(c, NULL); + cmdline_dev_send(c, NULL); } void cmdline_init(void) { rdline_init(&xbeeboard.rdl, write_char, valid_buffer, complete_buffer); - snprintf(xbeeboard.prompt, sizeof(xbeeboard.prompt), "mainboard > "); + snprintf_P(xbeeboard.prompt, sizeof(xbeeboard.prompt), PSTR("mainboard > ")); } @@ -170,7 +186,7 @@ int cmdline_poll(void) int8_t ret, same = 0; int16_t c; - c = CDC_Device_ReceiveByte(&VirtualSerial1_CDC_Interface); + c = cmdline_dev_recv(NULL); if (c < 0) return -1;