9static constexpr uint8_t ASH_FLAG_BYTE = 0x7E;
10static constexpr uint8_t ASH_ESCAPE_BYTE = 0x7D;
11static constexpr uint8_t ASH_XOR_BYTE = 0x20;
12static constexpr uint8_t ASH_SUBSTITUTE_BYTE = 0x18;
14static constexpr uint8_t ASH_XON_BYTE = 0x11;
15static constexpr uint8_t ASH_XOFF_BYTE = 0x13;
16static constexpr uint8_t ASH_CANCEL_BYTE = 0x1A;
18static constexpr uint8_t ASH_WAKE_BYTE = 0xFF;
20static constexpr size_t ASH_MAX_DATA_FIELD_SIZE = 220;
21static constexpr size_t MAX_ASH_FRAME_SIZE = 1 + ASH_MAX_DATA_FIELD_SIZE + 2;
24static constexpr size_t ASH_HEADER_SIZE = 2;
27static constexpr uint8_t ASH_MAX_SEQUENCE = 7;
30static constexpr uint16_t ASH_CRC_INIT = 0xFFFF;
34static constexpr size_t ASH_ACK_FRAME_SIZE = 5;
void ash_build_ack_frame(uint8_t *output, uint8_t ack_num)