tcMenu
Loading...
Searching...
No Matches
RemoteTypes.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 https://www.thecoderscorner.com (Dave Cherry).
3 * This product is licensed under an Apache license, see the LICENSE file in the top-level directory.
4 */
9
10#ifndef _TCMENU_REMOTETYPES_H_
11#define _TCMENU_REMOTETYPES_H_
12
17#ifndef MAX_VALUE_LEN
18#define MAX_VALUE_LEN 40
19#elif MAX_VALUE_LEN < 40
20#error "MAX_VALUE_LEN must be > 40"
21#endif
22
23enum AckResponseStatus {
24 // warnings
25 ACK_VALUE_RANGE = -1 ,
26 // success
27 ACK_SUCCESS = 0,
28 //errors
29 ACK_ID_NOT_FOUND = 1, ACK_CREDENTIALS_INVALID = 2,
30
31 // unknown error, always last
32 ACK_UNKNOWN = 10000
33 // unknown error, always last
34};
35
39#define msgFieldToWord(a,b) ( (((uint16_t)(a))<<8U) | ((uint16_t)(b)) )
40
41/*
42 * Definitions for an unknown field key or part thereof.
43 */
44#define UNKNOWN_FIELD_PART 0x00
45
49#define UNKNOWN_MSG_TYPE 0x0000
50
52#define MSG_PAIR msgFieldToWord('P','R')
54#define MSG_ACKNOWLEDGEMENT msgFieldToWord('A','K')
56#define MSG_JOIN msgFieldToWord('N','J')
58#define MSG_HEARTBEAT msgFieldToWord('H','B')
60#define MSG_BOOTSTRAP msgFieldToWord('B','S')
62#define MSG_BOOT_ANALOG msgFieldToWord('B','A')
64#define MSG_BOOT_ACTION msgFieldToWord('B', 'C')
66#define MSG_BOOT_SUBMENU msgFieldToWord('B', 'M')
68#define MSG_BOOT_ENUM msgFieldToWord('B', 'E')
70#define MSG_BOOT_BOOL msgFieldToWord('B', 'B')
72#define MSG_BOOT_TEXT msgFieldToWord('B','T')
74#define MSG_BOOT_LARGENUM msgFieldToWord('B', 'N')
76#define MSG_BOOT_FLOAT msgFieldToWord('B','F')
78#define MSG_BOOT_RGB_COLOR msgFieldToWord('B', 'K')
80#define MSG_BOOT_SCROLL_CHOICE msgFieldToWord('B', 'Z')
82#define MSG_BOOT_LIST msgFieldToWord('B','L')
84#define MSG_CHANGE_INT msgFieldToWord('V', 'C')
86#define MSG_DIALOG msgFieldToWord('D', 'M')
87
88#define FIELD_MSG_NAME msgFieldToWord('N', 'M')
89#define FIELD_VERSION msgFieldToWord('V', 'E')
90#define FIELD_PLATFORM msgFieldToWord('P', 'F')
91#define FIELD_BOOT_TYPE msgFieldToWord('B', 'T')
92#define FIELD_HB_INTERVAL msgFieldToWord('H', 'I')
93#define FIELD_HB_MILLISEC msgFieldToWord('H', 'M')
94#define FIELD_HB_MODE msgFieldToWord('H', 'R')
95#define FIELD_ID msgFieldToWord('I', 'D')
96#define FIELD_EEPROM msgFieldToWord('I', 'E')
97#define FIELD_READONLY msgFieldToWord('R', 'O')
98#define FIELD_VISIBLE msgFieldToWord('V', 'I')
99#define FIELD_PARENT msgFieldToWord('P', 'I')
100#define FIELD_ANALOG_MAX msgFieldToWord('A', 'M')
101#define FIELD_ANALOG_OFF msgFieldToWord('A', 'O')
102#define FIELD_ANALOG_DIV msgFieldToWord('A', 'D')
103#define FIELD_ANALOG_STEP msgFieldToWord('A', 'S')
104#define FIELD_ANALOG_UNIT msgFieldToWord('A', 'U')
105#define FIELD_CURRENT_VAL msgFieldToWord('V', 'C')
106#define FIELD_BOOL_NAMING msgFieldToWord('B', 'N')
107#define FIELD_NO_CHOICES msgFieldToWord('N', 'C')
108#define FIELD_CHANGE_TYPE msgFieldToWord('T', 'C')
109#define FIELD_MAX_LEN msgFieldToWord('M', 'L')
110#define FIELD_REMOTE_NO msgFieldToWord('R', 'N')
111#define FIELD_FLOAT_DP msgFieldToWord('F', 'D')
112#define FIELD_UUID msgFieldToWord('U', 'U')
113#define FIELD_SERIAL_NO msgFieldToWord('U', 'S')
114#define FIELD_CORRELATION msgFieldToWord('I', 'C')
115#define FIELD_ACK_STATUS msgFieldToWord('S', 'T')
116#define FIELD_HEADER msgFieldToWord('H', 'F')
117#define FIELD_BUTTON1 msgFieldToWord('B', '1')
118#define FIELD_BUTTON2 msgFieldToWord('B', '2')
119#define FIELD_BUFFER msgFieldToWord('B', 'U')
120#define FIELD_MODE msgFieldToWord('M', 'O')
121#define FIELD_EDIT_MODE msgFieldToWord('E', 'M')
122#define FIELD_ALPHA msgFieldToWord('R', 'A')
123#define FIELD_WIDTH msgFieldToWord('W', 'I')
124
125#define FIELD_PREPEND_CHOICE 'C'
126#define FIELD_PREPEND_NAMECHOICE 'c'
127
132enum ChangeType: uint8_t {
133 CHANGE_DELTA = 0, CHANGE_ABSOLUTE = 1, CHANGE_LIST = 2, CHANGE_LIST_RESPONSE = 3
134};
135
139enum ApiPlatform : uint8_t {
140 PLATFORM_ARDUINO_8BIT = 0,
141 PLATFORM_JAVA_API = 1,
142 PLATFORM_ARDUINO_32BIT = 2,
143 PLATFORM_DOTNET = 3
144};
145
157
158#endif /* _TCMENU_REMOTETYPES_H_ */
HeartbeatMode
Definition RemoteTypes.h:149
@ HBMODE_STARTCONNECT
Definition RemoteTypes.h:153
@ HBMODE_NORMAL
Definition RemoteTypes.h:151
@ HBMODE_ENDCONNECT
Definition RemoteTypes.h:155
ApiPlatform
Definition RemoteTypes.h:139
ChangeType
Definition RemoteTypes.h:132