/
commands.h
86 lines (60 loc) · 1.55 KB
/
commands.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#ifndef _COMMANDS
#define _COMMANDS
#include <stdint.h>
#define COMMAND_CODE_PEN_DOWN 0
#define COMMAND_CODE_PEN_UP 1
#define COMMAND_CODE_MOVE_ABS 2
#define COMMAND_CODE_MOVE_REL 3
#define COMMAND_CODE_GET_POS 4
#define COMMAND_CODE_QUERY_DELAYED 5
#define COMMAND_CODE_EXECUTE_COMMANDS 6
#define COMMAND_CODE_CHANGE_STEP_DELAY 7
#define COMMAND_CODE_LAST_LOT 8
#define COMMAND_CODE_FINISH 9
#define COMMAND_CODE_NUM_COMMANDS 10
#define MESSAGE_LENGTH_PEN_DOWN 3
#define MESSAGE_LENGTH_PEN_UP 3
#define MESSAGE_LENGTH_MOVE_ABS 7
#define MESSAGE_LENGTH_MOVE_REL 7
#define MESSAGE_LENGTH_GET_POS 3
#define MESSAGE_LENGTH_QUERY_DELAYED 3
#define MESSAGE_LENGTH_EXECUTE_COMMANDS 3
#define MESSAGE_LENGTH_CHANGE_STEP_DELAY 4
#define MESSAGE_LENGTH_LAST_LOT 4
#define MESSAGE_LENGTH_FINISH 3
#define MESSAGE_LENGTH_NUM_COMMANDS 4
//all structs are typedef'ed so they can all go in a union
//this union is then part of a command descriptor
typedef struct {
} COMMAND_PEN_DOWN;
typedef struct {
} COMMAND_PEN_UP;
typedef struct {
uint16_t x;
uint16_t y;
} COMMAND_MOVE_ABS;
typedef struct {
int16_t x;
int16_t y;
} COMMAND_MOVE_REL;
typedef struct {
} COMMAND_GET_POS;
typedef struct {
} COMMAND_QUERY_DELAYED;
typedef struct {
} COMMAND_EXECUTE_DELAYED;
typedef struct {
uint8_t time;
} COMMAND_CHANGE_DELAY;
typedef union {
COMMAND_PEN_DOWN penDown;
COMMAND_PEN_UP penUp;
COMMAND_MOVE_ABS moveAbs;
COMMAND_MOVE_REL moveRel;
COMMAND_CHANGE_DELAY changeDelay;
} COMMAND;
typedef struct {
uint8_t commandCode;
COMMAND command;
} COMMAND_DESCRIPTOR;
#endif