00001
00017 #ifndef CMD_INTERFACE_H
00018 #define CMD_INTERFACE_H
00019
00020
00021
00022 #include <avr\io.h>
00023 #include <stdio.h>
00024
00025
00026
00027
00028 #define _cmd_interface_max_length 80
00029 #define _cmd_interface_max_operand_length 12
00030 #define _cmd_interface_max_no_operands 5
00031 #define _cmd_interface_no_of_commands 5
00032 #define _cmd_interface_operand_split_sign _ASCII_COMMA
00033 #define _cmd_interface_command_split_sign _ASCII_SPACE
00034 #define _cmd_interface_EOL _ASCII_CR
00035
00036
00037
00038
00039
00040
00041 #define _ASCII_BEL 0x07
00042 #define _ASCII_BS 0x08
00043 #define _ASCII_CR 0x0D
00044 #define _ASCII_LF 0x0A
00045 #define _ASCII_ESC 0x1B
00046 #define _ASCII_DEL 0x7F
00047 #define _ASCII_SPACE 0x20
00048 #define _ASCII_COMMA 0x2C
00049
00050
00051 #define _CMD_INTERFACE_ERR_MASK 0xF8
00052 #define _CMD_INTERFACE_ERR_OP_CHAR 0x84
00053 #define _CMD_INTERFACE_ERR_OP_2_MANY 0x90
00054 #define _CMD_INTERFACE_ERR_NO_CMD 0xA0
00055 #define _CMD_INTERFACE_ERR_CMD_LINE 0xB0
00056
00057
00058
00059 typedef struct {
00060 char *cmd;
00061 uint8_t (*cmd_func_ptr) (char *op1, char *op2, char *op3, char *op4);
00062 } cmd_interface_command_table_t;
00063
00064
00065
00066
00067 #ifndef cmd_interface_c
00068 volatile cmd_interface_command_table_t cmd_interface_table[_cmd_interface_no_of_commands];
00069 #else
00070 extern volatile cmd_interface_command_table_t cmd_interface_table[_cmd_interface_no_of_commands];
00071 #endif
00072
00073
00074
00075 int8_t execute_cmd_interface(char *string);
00076 void cmd_interface_init();
00077
00078
00079 #endif