00001
00023 #ifndef CMD_INTERFACE_H
00024 #define CMD_INTERFACE_H
00026
00027
00028 #include <stdio.h>
00029 #include <string.h>
00030 #include "string_addon.h"
00031
00032
00033
00034
00035 #define _CMD_INTERFACE_MAX_LENGTH 80
00036 #define _CMD_INTERFACE_MAX_OPERAND_LENGTH 12
00037 #define _CMD_INTERFACE_MAX_NO_OPERANDS 5
00038 #define _CMD_INTERFACE_NO_OF_COMMANDS 10
00039 #define _CMD_INTERFACE_OPERAND_SPLIT_SIGN _ASCII_COMMA
00040 #define _CMD_INTERFACE_COMMAND_SPLIT_SIGN _ASCII_SPACE
00041 #define _CMD_INTERFACE_EOL _ASCII_CR
00044
00045
00046
00047
00048 #define _CMD_INTERFACE_ERR_MASK 0xF8
00049 #define _CMD_INTERFACE_ERR_OP_2_MANY 0x90
00050 #define _CMD_INTERFACE_ERR_NO_CMD 0xA0
00051 #define _CMD_INTERFACE_ERR_CMD_LINE 0xB0
00053
00054
00055
00058 typedef struct {
00059 char *cmd;
00060 uint8_t (*cmd_func_ptr) (int8_t argc, char *argval[]);
00061 } cmd_interface_command_table_t;
00062
00063
00064
00065
00066 #ifndef cmd_interface_c
00067 extern cmd_interface_command_table_t cmd_interface_table[_CMD_INTERFACE_NO_OF_COMMANDS];
00068 #endif
00069
00070
00071
00072 int8_t execute_cmd_interface(char *string);
00073 void cmd_interface_init();
00074 uint8_t cmd_interface_add_cmd(char (*cmd_string), uint8_t (*cmd_func_ptr)(int8_t argc, char *argval[]) );
00076 #endif