Project

General

Profile

Download (955 Bytes) Statistics
| Branch: | Tag: | Revision:
1

    
2
#include <unistd.h>
3
#include <string.h>
4
#include <stdint.h>
5
#include <stdio.h>
6
#include <errno.h>
7

    
8
#include <uart_cmd.h>
9

    
10
static void my_out(const char *format, va_list ap)
11
{
12
	vprintf(format, ap);
13
}
14

    
15
static int my_cb(struct cmd_state *cs, enum cmd_op op, const char *cmd,
16
		 int argc, char **argv)
17
{
18
	int i;
19

    
20
	printf("my_cb(%u,%s,%u,[", op, cmd, argc);
21
	for (i = 0; i < argc; i++)
22
		printf("%s,", argv[i]);
23
	printf("])\n");
24

    
25
	return 0;
26
}
27

    
28
static struct cmd cmds[] = {
29
	{ "foo", CMD_OP_SET|CMD_OP_GET|CMD_OP_EXEC, my_cb,
30
	  "the foo command" },
31
	{ "bar", CMD_OP_GET, my_cb,
32
	  "the gettable bar command" },
33
	{ "baz", CMD_OP_SET, my_cb,
34
	  "the settable baz command" },
35
};
36

    
37
int main(int argc, char **argv)
38
{
39
	struct cmd_state cs;
40

    
41
	cs.out = my_out;
42
	uart_cmd_reset(&cs);
43
	uart_cmds_register(cmds, sizeof(cmds)/sizeof(cmds[0]));
44

    
45
	while (1) {
46
		uint8_t ch;
47
		int rc;
48

    
49
	       	rc = read(0, &ch, 1);
50
		if (rc < 0)
51
			exit(1);
52

    
53
		uart_cmd_char(&cs, ch);
54
	}
55
}
(2-2/3)
Add picture from clipboard (Maximum size: 48.8 MB)