# ifndef FRAMING_H
# define FRAMING_H
# define FEND 0xC0
# define FESC 0xDB
# define TFEND 0xDC
# define TFESC 0xDD
# define CMD_UNKNOWN 0xFE
# define CMD_DATA 0x00
# define CMD_FREQUENCY 0x01
# define CMD_BANDWIDTH 0x02
# define CMD_TXPOWER 0x03
# define CMD_SF 0x04
# define CMD_CR 0x05
# define CMD_RADIO_STATE 0x06
# define CMD_RADIO_LOCK 0x07
# define CMD_DETECT 0x08
# define CMD_IMPLICIT 0x09
# define CMD_LEAVE 0x0A
# define CMD_PROMISC 0x0E
# define CMD_READY 0x0F
# define CMD_STAT_RX 0x21
# define CMD_STAT_TX 0x22
# define CMD_STAT_RSSI 0x23
# define CMD_STAT_SNR 0x24
# define CMD_BLINK 0x30
# define CMD_RANDOM 0x40
# define CMD_FB_EXT 0x41
# define CMD_FB_READ 0x42
# define CMD_FB_WRITE 0x43
# define CMD_FB_READL 0x44
# define CMD_BT_CTRL 0x46
# define CMD_BOARD 0x47
# define CMD_PLATFORM 0x48
# define CMD_MCU 0x49
# define CMD_FW_VERSION 0x50
# define CMD_ROM_READ 0x51
# define CMD_ROM_WRITE 0x52
# define CMD_CONF_SAVE 0x53
# define CMD_CONF_DELETE 0x54
# define CMD_UNLOCK_ROM 0x59
# define ROM_UNLOCK_BYTE 0xF8
# define CMD_RESET 0x55
# define CMD_RESET_BYTE 0xF8
# define DETECT_REQ 0x73
# define DETECT_RESP 0x46
# define RADIO_STATE_OFF 0x00
# define RADIO_STATE_ON 0x01
# define NIBBLE_SEQ 0xF0
# define NIBBLE_FLAGS 0x0F
# define FLAG_SPLIT 0x01
# define SEQ_UNSET 0xFF
# define CMD_ERROR 0x90
# define ERROR_INITRADIO 0x01
# define ERROR_TXFAILED 0x02
# define ERROR_EEPROM_LOCKED 0x03
# define ERROR_QUEUE_FULL 0x04
// Serial framing variables
size_t frame_len ;
bool IN_FRAME = false ;
bool ESCAPE = false ;
uint8_t command = CMD_UNKNOWN ;
# endif