RUI3 (RAK Unified Interface 3) - RAK4631
RAKProtocol.h File Reference

Go to the source code of this file.

Data Structures

struct  _rak_proto_upper_layer_info
 
struct  rak_proto_packet_header_
 
struct  rak_proto_packet_tailer_
 
struct  _rak_proto_arrived_packet_info
 
class  RAKProtocol
 

Macros

#define RAK_PROTO_BUFFER_SIZE   (256)
 
#define RAK_PROTO_START_DELIMITER   0x7E
 
#define RAK_PROTO_UPPER_LAYER_NUM_MAX   256
 
#define RAK_PROTO_PKT_TIMEOUT   (3000)
 
#define BYTESWAP32(z)   ((uint32_t)((z&0xFF)<<24|((z>>8)&0xFF)<<16|((z>>16)&0xFF)<<8|((z>>24)&0xFF)))
 
#define BYTESWAP16(z)   ((uint16_t)((z&0xFF)<<8|((z>>8)&0xFF)))
 
#define BITS_PER_U8(x)   (bits_per_nibble[(x) & 0xf] + bits_per_nibble[((x) >> 4) & 0xf])
 
#define BITS_PER_U16(x)   (BITS_PER_U8((x) & 0xff) + BITS_PER_U8(((x) >> 8) & 0xff))
 
#define BITS_PER_U32(x)   (BITS_PER_U16((x) & 0xffff) + BITS_PER_U16(((x) >> 16) & 0xffff))
 
#define PROTO_USE_POPCOUNT_CHKSUM
 
#define RAK_PROTO_FLAG_RESPONSE   0x01
 

Typedefs

typedef void(* RAK_PROTO_HANDLER) (uint8_t *, uint16_t)
 
typedef struct _rak_proto_upper_layer_info rak_proto_upper_layer_info
 
typedef enum _RAK_PROTO_STATE RAK_PROTO_STATE
 
typedef enum _RAK_PROTO_EVENT RAK_PROTO_EVENT
 
typedef RAK_PROTO_STATE(* rak_proto_event_handler) (RAK_PROTO_STATE state, uint8_t ch)
 
typedef struct _rak_proto_arrived_packet_info rak_proto_arrived_packet_info
 

Enumerations

enum  _RAK_PROTO_STATE {
  RAK_PROTO_STATE_DEFAULT = 0,
  RAK_PROTO_STATE_RECV_DELIMITER = 1,
  RAK_PROTO_STATE_RECV_LEN_1 = 2,
  RAK_PROTO_STATE_RECV_LEN_2 = 3,
  RAK_PROTO_STATE_RECV_FRAME_TYPE = 4,
  RAK_PROTO_STATE_RECV_FLAG = 5,
  RAK_PROTO_STATE_RECV_PAYLOAD = 6,
  RAK_PROTO_STATE_RECV_CHKSUM = 7,
  RAK_PROTO_STATE_RECV_CRC_1 = 8,
  RAK_PROTO_STATE_RECV_CRC_2 = 9,
  RAK_PROTO_STATE_RECV_CRC_3 = 10,
  RAK_PROTO_STATE_RECV_CRC_4 = 11,
  RAK_PROTO_STATE_CRC_ERROR = 12,
  RAK_PROTO_STATE_MAX = 13
}
 
enum  _RAK_PROTO_EVENT {
  RAK_PROTO_EVENT_RECV_A_NORMAL_CHAR = 0,
  RAK_PROTO_EVENT_RECV_THE_DELIMITER = 1,
  RAK_PROTO_EVENT_MAX = 2
}
 

Functions

struct rak_proto_packet_header_ __attribute__ ((packed)) rak_proto_packet_header
 

Variables

uint8_t start_delimiter
 
uint16_t length
 
uint8_t frame_type
 
uint8_t flag
 
uint8_t chksum
 

Macro Definition Documentation

◆ RAK_PROTO_BUFFER_SIZE

#define RAK_PROTO_BUFFER_SIZE   (256)

◆ RAK_PROTO_START_DELIMITER

#define RAK_PROTO_START_DELIMITER   0x7E

◆ RAK_PROTO_UPPER_LAYER_NUM_MAX

#define RAK_PROTO_UPPER_LAYER_NUM_MAX   256

◆ RAK_PROTO_PKT_TIMEOUT

#define RAK_PROTO_PKT_TIMEOUT   (3000)

◆ BYTESWAP32

#define BYTESWAP32 (   z)    ((uint32_t)((z&0xFF)<<24|((z>>8)&0xFF)<<16|((z>>16)&0xFF)<<8|((z>>24)&0xFF)))

◆ BYTESWAP16

#define BYTESWAP16 (   z)    ((uint16_t)((z&0xFF)<<8|((z>>8)&0xFF)))

◆ BITS_PER_U8

#define BITS_PER_U8 (   x)    (bits_per_nibble[(x) & 0xf] + bits_per_nibble[((x) >> 4) & 0xf])

◆ BITS_PER_U16

#define BITS_PER_U16 (   x)    (BITS_PER_U8((x) & 0xff) + BITS_PER_U8(((x) >> 8) & 0xff))

◆ BITS_PER_U32

#define BITS_PER_U32 (   x)    (BITS_PER_U16((x) & 0xffff) + BITS_PER_U16(((x) >> 16) & 0xffff))

◆ PROTO_USE_POPCOUNT_CHKSUM

#define PROTO_USE_POPCOUNT_CHKSUM

◆ RAK_PROTO_FLAG_RESPONSE

#define RAK_PROTO_FLAG_RESPONSE   0x01

Typedef Documentation

◆ RAK_PROTO_HANDLER

typedef void(* RAK_PROTO_HANDLER) (uint8_t *, uint16_t)

◆ rak_proto_upper_layer_info

◆ RAK_PROTO_STATE

◆ RAK_PROTO_EVENT

◆ rak_proto_event_handler

typedef RAK_PROTO_STATE(* rak_proto_event_handler) (RAK_PROTO_STATE state, uint8_t ch)

◆ rak_proto_arrived_packet_info

Enumeration Type Documentation

◆ _RAK_PROTO_STATE

Enumerator
RAK_PROTO_STATE_DEFAULT 
RAK_PROTO_STATE_RECV_DELIMITER 
RAK_PROTO_STATE_RECV_LEN_1 
RAK_PROTO_STATE_RECV_LEN_2 
RAK_PROTO_STATE_RECV_FRAME_TYPE 
RAK_PROTO_STATE_RECV_FLAG 
RAK_PROTO_STATE_RECV_PAYLOAD 
RAK_PROTO_STATE_RECV_CHKSUM 
RAK_PROTO_STATE_RECV_CRC_1 
RAK_PROTO_STATE_RECV_CRC_2 
RAK_PROTO_STATE_RECV_CRC_3 
RAK_PROTO_STATE_RECV_CRC_4 
RAK_PROTO_STATE_CRC_ERROR 
RAK_PROTO_STATE_MAX 

◆ _RAK_PROTO_EVENT

Enumerator
RAK_PROTO_EVENT_RECV_A_NORMAL_CHAR 
RAK_PROTO_EVENT_RECV_THE_DELIMITER 
RAK_PROTO_EVENT_MAX 

Function Documentation

◆ __attribute__()

struct proto_packet_tailer_ __attribute__ ( (packed)  )

Variable Documentation

◆ start_delimiter

uint8_t start_delimiter

◆ length

uint16_t length

◆ frame_type

uint8_t frame_type

◆ flag

uint8_t flag

◆ chksum

uint8_t chksum