tcMenu
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  */
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 
23 enum 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')
88 #define MSG_GET_FORMS_REQUEST msgFieldToWord('F', 'G')
90 #define MSG_GET_FORM_RESPONSE msgFieldToWord('F', 'N')
92 #define MSG_FORM_DATA_REQUEST msgFieldToWord('F', 'R')
94 #define MSG_FORM_DATA_RESPONSE msgFieldToWord('F', 'D')
95 
96 #define FIELD_MSG_NAME msgFieldToWord('N', 'M')
97 #define FIELD_VERSION msgFieldToWord('V', 'E')
98 #define FIELD_PLATFORM msgFieldToWord('P', 'F')
99 #define FIELD_BOOT_TYPE msgFieldToWord('B', 'T')
100 #define FIELD_HB_INTERVAL msgFieldToWord('H', 'I')
101 #define FIELD_HB_MILLISEC msgFieldToWord('H', 'M')
102 #define FIELD_HB_MODE msgFieldToWord('H', 'R')
103 #define FIELD_ID msgFieldToWord('I', 'D')
104 #define FIELD_EEPROM msgFieldToWord('I', 'E')
105 #define FIELD_READONLY msgFieldToWord('R', 'O')
106 #define FIELD_VISIBLE msgFieldToWord('V', 'I')
107 #define FIELD_PARENT msgFieldToWord('P', 'I')
108 #define FIELD_ANALOG_MAX msgFieldToWord('A', 'M')
109 #define FIELD_ANALOG_OFF msgFieldToWord('A', 'O')
110 #define FIELD_ANALOG_DIV msgFieldToWord('A', 'D')
111 #define FIELD_ANALOG_STEP msgFieldToWord('A', 'S')
112 #define FIELD_ANALOG_UNIT msgFieldToWord('A', 'U')
113 #define FIELD_CURRENT_VAL msgFieldToWord('V', 'C')
114 #define FIELD_BOOL_NAMING msgFieldToWord('B', 'N')
115 #define FIELD_NO_CHOICES msgFieldToWord('N', 'C')
116 #define FIELD_CHANGE_TYPE msgFieldToWord('T', 'C')
117 #define FIELD_MAX_LEN msgFieldToWord('M', 'L')
118 #define FIELD_REMOTE_NO msgFieldToWord('R', 'N')
119 #define FIELD_FLOAT_DP msgFieldToWord('F', 'D')
120 #define FIELD_UUID msgFieldToWord('U', 'U')
121 #define FIELD_SERIAL_NO msgFieldToWord('U', 'S')
122 #define FIELD_CORRELATION msgFieldToWord('I', 'C')
123 #define FIELD_ACK_STATUS msgFieldToWord('S', 'T')
124 #define FIELD_HEADER msgFieldToWord('H', 'F')
125 #define FIELD_BUTTON1 msgFieldToWord('B', '1')
126 #define FIELD_BUTTON2 msgFieldToWord('B', '2')
127 #define FIELD_BUFFER msgFieldToWord('B', 'U')
128 #define FIELD_MODE msgFieldToWord('M', 'O')
129 #define FIELD_EDIT_MODE msgFieldToWord('E', 'M')
130 #define FIELD_ALPHA msgFieldToWord('R', 'A')
131 #define FIELD_WIDTH msgFieldToWord('W', 'I')
132 
133 #define FIELD_PREPEND_CHOICE 'C'
134 #define FIELD_PREPEND_NAMECHOICE 'c'
135 
140 enum ChangeType: uint8_t {
141  CHANGE_DELTA = 0, CHANGE_ABSOLUTE = 1, CHANGE_LIST = 2, CHANGE_LIST_RESPONSE = 3
142 };
143 
147 enum ApiPlatform : uint8_t {
148  PLATFORM_ARDUINO_8BIT = 0,
149  PLATFORM_JAVA_API = 1,
150  PLATFORM_ARDUINO_32BIT = 2,
151  PLATFORM_DOTNET = 3
152 };
153 
157 enum HeartbeatMode : uint8_t {
164 };
165 
166 #endif /* _TCMENU_REMOTETYPES_H_ */
HeartbeatMode
Definition: RemoteTypes.h:157
@ HBMODE_STARTCONNECT
Definition: RemoteTypes.h:161
@ HBMODE_NORMAL
Definition: RemoteTypes.h:159
@ HBMODE_ENDCONNECT
Definition: RemoteTypes.h:163
ApiPlatform
Definition: RemoteTypes.h:147
ChangeType
Definition: RemoteTypes.h:140