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

Go to the source code of this file.

Data Structures

struct  _proto_upper_layer_info
 
struct  proto_packet_header_
 
struct  proto_packet_tailer_
 

Macros

#define PROTO_BUFFER_SIZE   (256)
 
#define PROTO_START_DELIMITER   0x7E
 
#define PROTO_UPPER_LAYER_NUM_MAX   256
 
#define PROTO_PKT_TIMEOUT   (3000)
 
#define PROTO_USE_POPCOUNT_CHKSUM
 
#define PROTO_FLAG_RESPONSE   0x01
 

Typedefs

typedef void(* SERVICE_MODE_PROTOCOL_HANDLER) (int, uint8_t *, uint16_t)
 
typedef struct _proto_upper_layer_info proto_upper_layer_info
 
typedef enum _PROTO_STATE PROTO_STATE
 
typedef enum _PROTO_EVENT PROTO_EVENT
 
typedef PROTO_STATE(* proto_event_handler) (SERIAL_PORT port, PROTO_STATE state, uint8_t ch)
 

Enumerations

enum  _PROTO_STATE {
  PROTO_STATE_DEFAULT = 0,
  PROTO_STATE_RECV_DELIMITER = 1,
  PROTO_STATE_RECV_LEN_1 = 2,
  PROTO_STATE_RECV_LEN_2 = 3,
  PROTO_STATE_RECV_FRAME_TYPE = 4,
  PROTO_STATE_RECV_FLAG = 5,
  PROTO_STATE_RECV_PAYLOAD = 6,
  PROTO_STATE_RECV_CHKSUM = 7,
  PROTO_STATE_CRC_ERROR = 12,
  PROTO_STATE_MAX = 13
}
 
enum  _PROTO_EVENT {
  PROTO_EVENT_RECV_A_NORMAL_CHAR = 0,
  PROTO_EVENT_RECV_THE_DELIMITER = 1,
  PROTO_EVENT_MAX = 2
}
 

Functions

struct proto_packet_header_ __attribute__ ((packed)) proto_packet_header
 
void service_mode_proto_recv (SERIAL_PORT port, uint8_t ch)
 
void service_mode_proto_send (SERIAL_PORT port, uint8_t flag, uint8_t frame_type, uint8_t *payload, uint16_t length, SERVICE_MODE_PROTOCOL_HANDLER response_handler)
 
int32_t service_mode_proto_register (uint8_t frame_type, SERVICE_MODE_PROTOCOL_HANDLER request_handler)
 
int32_t service_mode_proto_deregister (uint8_t frame_type)
 
void service_mode_proto_init (SERIAL_PORT port)
 
void service_mode_proto_deinit (SERIAL_PORT port)
 

Variables

uint8_t start_delimiter
 
uint16_t length
 
uint8_t frame_type
 
uint8_t flag
 
uint8_t chksum
 

Macro Definition Documentation

◆ PROTO_BUFFER_SIZE

#define PROTO_BUFFER_SIZE   (256)

◆ PROTO_START_DELIMITER

#define PROTO_START_DELIMITER   0x7E

◆ PROTO_UPPER_LAYER_NUM_MAX

#define PROTO_UPPER_LAYER_NUM_MAX   256

◆ PROTO_PKT_TIMEOUT

#define PROTO_PKT_TIMEOUT   (3000)

◆ PROTO_USE_POPCOUNT_CHKSUM

#define PROTO_USE_POPCOUNT_CHKSUM

◆ PROTO_FLAG_RESPONSE

#define PROTO_FLAG_RESPONSE   0x01

Typedef Documentation

◆ SERVICE_MODE_PROTOCOL_HANDLER

typedef void(* SERVICE_MODE_PROTOCOL_HANDLER) (int, uint8_t *, uint16_t)

◆ proto_upper_layer_info

◆ PROTO_STATE

typedef enum _PROTO_STATE PROTO_STATE

◆ PROTO_EVENT

typedef enum _PROTO_EVENT PROTO_EVENT

◆ proto_event_handler

typedef PROTO_STATE(* proto_event_handler) (SERIAL_PORT port, PROTO_STATE state, uint8_t ch)

Enumeration Type Documentation

◆ _PROTO_STATE

Enumerator
PROTO_STATE_DEFAULT 
PROTO_STATE_RECV_DELIMITER 
PROTO_STATE_RECV_LEN_1 
PROTO_STATE_RECV_LEN_2 
PROTO_STATE_RECV_FRAME_TYPE 
PROTO_STATE_RECV_FLAG 
PROTO_STATE_RECV_PAYLOAD 
PROTO_STATE_RECV_CHKSUM 
PROTO_STATE_CRC_ERROR 
PROTO_STATE_MAX 

◆ _PROTO_EVENT

Enumerator
PROTO_EVENT_RECV_A_NORMAL_CHAR 
PROTO_EVENT_RECV_THE_DELIMITER 
PROTO_EVENT_MAX 

Function Documentation

◆ __attribute__()

struct proto_packet_header_ __attribute__ ( (packed)  )

◆ service_mode_proto_recv()

void service_mode_proto_recv ( SERIAL_PORT  port,
uint8_t  ch 
)

◆ service_mode_proto_send()

void service_mode_proto_send ( SERIAL_PORT  port,
uint8_t  flag,
uint8_t  frame_type,
uint8_t *  payload,
uint16_t  length,
SERVICE_MODE_PROTOCOL_HANDLER  response_handler 
)

◆ service_mode_proto_register()

int32_t service_mode_proto_register ( uint8_t  frame_type,
SERVICE_MODE_PROTOCOL_HANDLER  request_handler 
)

◆ service_mode_proto_deregister()

int32_t service_mode_proto_deregister ( uint8_t  frame_type)

◆ service_mode_proto_init()

void service_mode_proto_init ( SERIAL_PORT  port)

◆ service_mode_proto_deinit()

void service_mode_proto_deinit ( SERIAL_PORT  port)

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