X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fmware%2Fparser.c;h=b6b408816c1f7732d0404f5a015f7f238c1b3e31;hb=8ba40b07b125a53d66052fa6a00d902f47bf0905;hp=cc20b4e6a79e97a8fefef5e9323fb3e5ef141390;hpb=791e167e053bdd9250d34a9a5ccae6ccde4d6679;p=bertos.git diff --git a/bertos/mware/parser.c b/bertos/mware/parser.c index cc20b4e6..b6b40881 100644 --- a/bertos/mware/parser.c +++ b/bertos/mware/parser.c @@ -30,15 +30,9 @@ * All Rights Reserved. * --> * - * \version $Id$ + * \brief Channel protocol parser and commands. * - * \author Bernardo Innocenti - * \author Stefano Fedrigo - * \author Giovanni Bajo - * - * \brief Serial protocol parser and commands. - * - * This file contains the serial protocol parser and + * This file contains the channel protocol parser and * the definition of the protocol commands. Commands are defined * in a "CmdTemplate" type array, containing: * - the name of the command, @@ -50,18 +44,27 @@ * using an union: the element of the union to use for each * argument is determined by format strings present in the * CmdTemplate table. + * + * \author Bernie Innocenti + * \author Stefano Fedrigo + * \author Giovanni Bajo + * + * */ #include "parser.h" -#include + +#include "cfg/cfg_parser.h" + +#include +#include #include // atol(), NULL #include // strchr(), strcmp() -#include - -#include "appconfig.h" +//TODO: +#define CONFIG_INTERNAL_COMMANDS 0 #define ARG_SEP_S " " #define ARG_SEP_C ' ' @@ -169,13 +172,13 @@ static bool parseArgs(const char *fmt, const char *input, parms argv[]) * in the array result, using the format specified * in fmt. * - * \param ser Serial handle. + * \param ch Channel handle. * \param fmt Values format string. * \param result Array containing result to be printed. * * \return -1 in case of errors, otherwise 0. */ -static int printResult(struct Serial *ser, const char *fmt, parms result[]) +static int printResult(KFile *ch, const char *fmt, parms result[]) { long n; char repeat_cnt = 0; @@ -199,23 +202,23 @@ static int printResult(struct Serial *ser, const char *fmt, parms result[]) switch (*fmt) { case 'd': - ser_printf(ser, ARG_SEP_S "%ld", (*result).l); + kfile_printf(ch, ARG_SEP_S "%ld", (*result).l); result++; break; case 'c': - ser_print(ser, ARG_SEP_S); - ser_print(ser, (*result).s); + kfile_print(ch, ARG_SEP_S); + kfile_print(ch, (*result).s); result++; break; case 's': - ser_printf(ser, ARG_SEP_S "%s", (*result).s); + kfile_printf(ch, ARG_SEP_S "%s", (*result).s); result++; break; case 'n': n = (*result++).l; - ser_printf(ser, ARG_SEP_S "%ld", n); + kfile_printf(ch, ARG_SEP_S "%ld", n); while (n--) { - ser_printf(ser, ARG_SEP_S "%ld", (*result).l); + kfile_printf(ch, ARG_SEP_S "%ld", (*result).l); result++; } break; @@ -232,7 +235,7 @@ static int printResult(struct Serial *ser, const char *fmt, parms result[]) } /* while (*fmt) */ - ser_print(ser, "\r\n"); + kfile_print(ch, "\r\n"); return 0; } #endif /* UNUSED_CODE */ @@ -354,6 +357,7 @@ void parser_register_cmd(const struct CmdTemplate* cmd) } #if CONFIG_INTERNAL_COMMANDS +#warning FIXME:This code use boost lib, if you compile with internal command you must fix it. static ResultCode cmd_help(void) { #ifdef _DEBUG