24 #ifndef COMMUNICATION_PROTOCOL_H
25 #define COMMUNICATION_PROTOCOL_H
43 #define BLE_PROTOCOL_MAJOR_VERSION (uint8_t)(0x07)
51 #define BLE_PROTOCOL_MINOR_VERSION (uint8_t)(0x00)
54 #define BLE_PROTOCOL_VERSION \
55 (uint16_t)(((uint16_t)BLE_PROTOCOL_MAJOR_VERSION << 8) + ((uint16_t)BLE_PROTOCOL_MINOR_VERSION))
63 #define NUM_MAX_BLE_PKT (20)
71 #define NUM_MAX_BLE_PKT_BODY (NUM_MAX_BLE_PKT - 2)
76 ACMD_BRANCHTYPE = 0x00,
77 ACMD_DISCONNECT = 0x01,
78 ACMD_ENCODED_WRITE = 0x02,
79 ACMD_ALLDISCONNECT = 0x03,
81 ACMD_BINARY_WRITE = 0x05,
82 ACMD_FIND_BRANCH = 0x06,
85 ACMD_UNIQUE_ID = 0x09,
86 ACMD_OTA_STATUS = 0x0A,
88 ACMD_FIND_CORE = 0x0C,
95 ACMDPARAM_SHUTDOWN_BATTERY_LOW = 0x01,
96 ACMDPARAM_SHUTDOWN_SWICTCH_OFF = 0x02,
97 } AppCommandParamShutdown_t;
101 ACMDPARAM_FIND_BLINK_OFF = 0x00,
102 ACMDPARAM_FIND_BLINK_NORMAL = 0x01,
103 ACMDPARAM_FIND_BLINK_SLOW = 0x02,
104 ACMDPARAM_FIND_BLINK_RAPID = 0x03,
105 } AppCommandParamFind_t;
114 #define UART_PROTOCOL_MAJOR_VERSION (uint8_t)(0x07)
122 #define UART_PROTOCOL_MINOR_VERSION (uint8_t)(0x00)
125 #define UART_PROTOCOL_VERSION \
126 (uint16_t)(((uint16_t)UART_PROTOCOL_MAJOR_VERSION << 8) + ((uint16_t)UART_PROTOCOL_MINOR_VERSION))
131 #define UART_PROTOCOL_VERSION_DCINI (uint16_t)(0x0603)
133 #define UART_PROTOCOL_VERSION_NO_BCMD_ON_RES (uint16_t)(0x0604)
141 #define UART_PROTOCOL_BAUDRATE (50000)
150 #define NUM_MAX_UART_PKT_BODY_DATA (NUM_MAX_BLE_PKT_BODY)
159 #define NUM_MAX_UART_PKT_BODY (NUM_MAX_UART_PKT_BODY_DATA + 2)
168 #define NUM_MAX_UART_PKT (NUM_MAX_UART_PKT_BODY + 3)
177 BCMD_DISCOVERY = 0x00,
178 BCMD_ENCODED_WRITE = ACMD_ENCODED_WRITE,
179 BCMD_DCINFO = ACMD_DCINFO,
180 BCMD_BINARY_WRITE = ACMD_BINARY_WRITE,
181 BCMD_FIND_LED = ACMD_FIND_BRANCH,
183 BCMD_BRANCH_DFU_START = 0x64,
190 BCMDPARAM_RESERVED = 0x00,
191 BCMDPARAM_READ_IDENTIFICATION = 0x01,
192 BCMDPARAM_READ_ENCODED_DATA = 0x02,
193 BCMDPARAM_READ_DCINFO = 0x03,
194 BCMDPARAM_READ_DCMAX = 0x04,
195 BCMDPARAM_READ_DCMIN = 0x05,
196 BCMDPARAM_READ_DCINI = 0x06,
197 } BranchCommandParamRead_t;
201 BCMDPARAM_FIND_BLINK_OFF = ACMDPARAM_FIND_BLINK_OFF,
202 BCMDPARAM_FIND_BLINK_NORMAL = ACMDPARAM_FIND_BLINK_NORMAL,
203 BCMDPARAM_FIND_BLINK_SLOW = ACMDPARAM_FIND_BLINK_SLOW,
204 BCMDPARAM_FIND_BLINK_RAPID = ACMDPARAM_FIND_BLINK_RAPID,
205 } BranchCommandParamFind_t;
209 BCMDRES_RESERVED = 0x00,
210 BCMDRES_READ_IDENTIFICATION = BCMDPARAM_READ_IDENTIFICATION,
211 BCMDRES_READ_ENCODED_DATA = BCMDPARAM_READ_ENCODED_DATA,
212 BCMDRES_READ_DCINFO = BCMDPARAM_READ_DCINFO,
213 BCMDRES_READ_DCMAX = BCMDPARAM_READ_DCMAX,
214 BCMDRES_READ_DCMIN = BCMDPARAM_READ_DCMIN,
215 BCMDRES_READ_DCINI = BCMDPARAM_READ_DCINI,
216 BCMDRES_DISCOVERY_ACK = 0xAA,
217 BCMDRES_ACK_EMPTY = 0xBB,
218 BCMDRES_NOTHING = 0xFF,
219 } BranchCommandRes_t;
236 } BcmdResWithBcmdHdrPkt_t;
265 #define NUM_MAX_DC (16)
269 #define NUM_MAX_PKT_BODY_DATA_DC (NUM_MAX_BLE_PKT_BODY - 2)
270 #define NUM_MAX_PKT_BODY_DATA_DC_INI (NUM_MAX_PKT_BODY_DATA_DC)
271 #define NUM_MAX_PKT_BODY_DATA_DC_MIN (NUM_MAX_PKT_BODY_DATA_DC)
272 #define NUM_MAX_PKT_BODY_DATA_DC_MAX (NUM_MAX_PKT_BODY_DATA_DC)
290 BRANCH_ID_IGNORED = 0xFF,
307 enum class DcGroup_t : uint8_t {
308 DC_GROUP_FOR_SYSTEM = 0,
329 enum class DcNature_t : uint8_t {
337 enum class DcType_t : uint8_t {
338 DC_TYPE_BOOLEAN = 0x01,
339 DC_TYPE_ANALOG_1BYTE = 0x05,
340 DC_TYPE_ANALOG_2BYTES = 0x06,
341 DC_TYPE_BINARY = 0x07,
BranchId_t
Branch ID.
Definition: CommunicationProtocol.h:281
@ BRANCH_ID_5
Definition: CommunicationProtocol.h:288
@ BRANCH_ID_BROADCAST
Definition: CommunicationProtocol.h:282
@ BRANCH_ID_3
Definition: CommunicationProtocol.h:286
@ BRANCH_ID_ALL
Definition: CommunicationProtocol.h:283
@ BRANCH_ID_ROOT
Definition: CommunicationProtocol.h:284
@ BRANCH_ID_4
Definition: CommunicationProtocol.h:287
@ BRANCH_ID_2
Definition: CommunicationProtocol.h:285
ChipType_t
Microcontroller chip types on Branch.
Definition: CommunicationProtocol.h:296
@ CHIP_TYPE_ATMEGA_328PB
Definition: CommunicationProtocol.h:298
@ CHIP_TYPE_ATMEGA_328P
Definition: CommunicationProtocol.h:297
#define NUM_MAX_UART_PKT_BODY_DATA
Maximum data size on a packet for UART communication protocol.
Definition: CommunicationProtocol.h:150