#byte #ack #protocols #variables #command #ding #start

ddaa_protocol

Ding Ding Ack Ack: A simple protocol aimed towards serial communication with a microcontroller

2 unstable releases

0.2.0 May 27, 2023
0.1.0 May 25, 2023

#3 in #ack

28 downloads per month

BSD-3-Clause

15KB
83 lines

Ding Ding Ack Ack

ding_ding_ack_ack is a crate for parsing and formatting Ding Ding Ack Ack protocol messages.

Here's the Ding Ding Ack Ack protocol specification:

Request Frame (8  -  39 bytes):
 Byte 1: Start byte 1 (0x07)
 Byte 2: Start byte 2 (0x01)
 Byte 3: Command (0x05 for read, 0x1A for write, 0x07 for ping)
 Byte 4: Variable (user-defined)
 Byte 5: Data Length in N Bytes (1-32)   (ignored in read operations)
 Byte 6 - Byte (N - 1): Error Message (User defined) (ignored in read operations)
 Byte 6 + N + 1: End byte 1 (0x17)
 Byte 6 + N + 2: End byte 2 (0x04)

Response Frame for Successful Calls (8  -  39 bytes):
 Byte 1: Start byte 1 (0x06)
 Byte 2: Start byte 2 (0x01)
 Byte 3: Command that was sent
 Byte 4: Variable that was sent
 Byte 5: Data Length in N Bytes (1 - 32)
 Byte 6 - Byte (N - 1): Message (User defined)
 Byte 6 + N + 1: End byte 1 (0x17)
 Byte 6 + N + 2: End byte 2 (0x04)

Response Frame for Failed Calls (8 -  39 bytes):
 Byte 1: Start byte 1 (0x15)
 Byte 2: Start byte 2 (0x01)
 Byte 3: Command that was sent
 Byte 4: Variable that was sent
 Byte 5: Data Length in N Bytes (1-32)
 Byte 6 - Byte (N - 1): Error Message (User defined)
 Byte 6 + N + 1: End byte 1 (0x17)
 Byte 6 + N + 2: End byte 2 (0x04)

Ping:
 Request Frame (8 - 39 bytes):
  Byte 1: 0x07
  Byte 2: 0x01
  Byte 3: 0x07
  Byte 4: 0x00
  Byte 5: Data Length in N Bytes (1 - 32) --- can be used for discovery / identification
  Byte 6 - Byte (N - 1): Message (User defined)
  Byte 6 + N + 1: End byte 1 (0x17)
  Byte 6 + N + 2: End byte 2 (0x04)

 Response Frame(8 - 39 bytes):
  Byte 1: 0x06
  Byte 2: 0x01
  Byte 3: 0x07
  Byte 4: 0x00
  Byte 5: Data Length in N Bytes (1 - 32)
  Byte 6 - Byte (N - 1): Message (User defined)
  Byte 6 + N + 1: End byte 1 (0x17)
  Byte 6 + N + 2: End byte 2 (0x04)

No runtime deps