#include "ao.h"
__xdata uint16_t ao_cmd_lex_i;
-__xdata uint8_t ao_cmd_lex_c;
+__xdata char ao_cmd_lex_c;
__xdata enum ao_cmd_status ao_cmd_status;
static __xdata uint8_t lex_echo;
#define CMD_LEN 32
-static __xdata uint8_t cmd_line[CMD_LEN];
+static __xdata char cmd_line[CMD_LEN];
static __xdata uint8_t cmd_len;
static __xdata uint8_t cmd_i;
static void
put_string(char *s)
{
- __xdata uint8_t c;
+ __xdata char c;
while (c = *s++)
putchar(c);
}
static void
readline(void)
{
- __xdata uint8_t c;
+ __xdata char c;
if (lex_echo)
put_string("> ");
cmd_len = 0;
lex_echo = ao_cmd_lex_i != 0;
}
-static const uint8_t help_txt[] = "All numbers are in hex";
+static void
+version(void)
+{
+ printf("manufacturer %s\n", ao_manufacturer);
+ printf("product %s\n", ao_product);
+ printf("serial-number %u\n", ao_serial_number);
+ printf("software-version %s\n", ao_version);
+}
+
+static const char help_txt[] = "All numbers are in hex";
-#define NUM_CMDS 10
+#define NUM_CMDS 11
static __code struct ao_cmds *__xdata (ao_cmds[NUM_CMDS]);
static __xdata uint8_t ao_ncmds;
void
ao_cmd(void *parameters)
{
- __xdata uint8_t c;
+ __xdata char c;
__xdata uint8_t cmd, cmds;
__code struct ao_cmds * __xdata cs;
void (*__xdata func)(void);
{ 'T', ao_task_info, "T Show task states" },
{ 'E', echo, "E <0 off, 1 on> Set command echo mode" },
{ 'd', dump, "d <start> <end> Dump memory" },
+ { 'v', version, "v Show version" },
{ 0, help, NULL },
};