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

Provide LoRa service layer for API layer to use. More...

Go to the source code of this file.

Data Structures

struct  LORA_P2P_STATUS_ST
 
struct  rui_lora_p2p_revc
 

Macros

#define LORA_P2P_DEBUG(fmt, args...)
 
#define LORA_SYMBOL_TIMEOUT   5 /* Symbols */
 
#define LORA_FIX_LENGTH_PAYLOAD_ON   false
 
#define LORA_IQ_INVERSION_ON   false
 
#define LORA_BUFFER_SIZE   255 /* Define the payload size here */
 
#define SYMBTIMEOUT_MAX   0
 

Typedefs

typedef struct rui_lora_p2p_revc rui_lora_p2p_recv_t
 
typedef void(* service_lora_p2p_send_cb_type) (void)
 
typedef void(* service_lora_p2p_recv_cb_type) (rui_lora_p2p_recv_t recv_data_pkg)
 
typedef void(* service_lora_p2p_send_CAD_cb_type) (bool)
 

Enumerations

enum  RAK_LORA_P2P_SYNCWORD {
  LORA_MAC_PRIVATE_SYNCWORD = 0x1424,
  LORA_MAC_PUBLIC_SYNCWORD = 0x3444
}
 

Functions

int32_t service_lora_p2p_init (void)
 
int32_t service_lora_p2p_config (void)
 
int32_t service_lora_p2p_send (uint8_t *p_data, uint8_t len, bool cad_enable)
 
int32_t service_lora_p2p_recv (uint32_t timeout)
 
uint32_t service_lora_p2p_get_freq (void)
 
int32_t service_lora_p2p_set_freq (uint32_t freq)
 
int32_t service_lora_p2p_check_runtime_freq (uint32_t freq)
 
uint8_t service_lora_p2p_get_sf (void)
 
int32_t service_lora_p2p_set_sf (uint8_t spreadfact)
 
int32_t service_lora_p2p_check_runtime_sf (uint8_t spreadfact)
 
uint32_t service_lora_p2p_get_bandwidth (void)
 
int32_t service_lora_p2p_set_bandwidth (uint32_t bandwidth)
 
int32_t service_lora_p2p_check_runtime_bandwidth (uint32_t bandwidth)
 
uint8_t service_lora_p2p_get_codingrate (void)
 
int32_t service_lora_p2p_set_codingrate (uint8_t codingrate)
 
int32_t service_lora_p2p_check_runtime_codingrate (uint8_t codingrate)
 
uint16_t service_lora_p2p_get_preamlen (void)
 
int32_t service_lora_p2p_set_preamlen (uint16_t preamlen)
 
int32_t service_lora_p2p_check_runtime_preamlen (uint16_t preamlen)
 
uint8_t service_lora_p2p_get_powerdbm (void)
 
int32_t service_lora_p2p_set_powerdbm (uint8_t powerdbm)
 
int32_t service_lora_p2p_check_runtime_powerdbm (uint8_t powerdbm)
 
bool service_lora_p2p_get_crypto_enable (void)
 
int32_t service_lora_p2p_set_crypto_enable (bool enable)
 
int32_t service_lora_p2p_get_crypto_key (uint8_t *buff, uint32_t len)
 
int32_t service_lora_p2p_set_crypto_key (uint8_t *buff, uint32_t len)
 
int32_t service_lora_p2p_get_crypto_IV (uint8_t *buff, uint32_t len)
 
int32_t service_lora_p2p_set_crypto_IV (uint8_t *buff, uint32_t len)
 
uint32_t service_lora_p2p_get_fdev (void)
 
int32_t service_lora_p2p_set_fdev (uint32_t fdev)
 
uint32_t service_lora_p2p_get_bitrate (void)
 
int32_t service_lora_p2p_set_bitrate (uint32_t bitrate)
 
int32_t service_lora_p2p_encrpty (uint8_t *indata, uint16_t inlen, uint8_t *outdata)
 
int32_t service_lora_p2p_decrpty (uint8_t *indata, uint16_t inlen, uint8_t *outdata)
 
int32_t service_lora_p2p_register_send_cb (service_lora_p2p_send_cb_type callback)
 
int32_t service_lora_p2p_register_send_CAD_cb (service_lora_p2p_send_CAD_cb_type callback)
 
int32_t service_lora_p2p_register_recv_cb (service_lora_p2p_recv_cb_type callback)
 
bool service_lora_p2p_get_public_network (void)
 
int32_t service_lora_p2p_set_public_network (bool enable)
 
uint32_t service_lora_p2p_get_symbol_timeout (void)
 
int32_t service_lora_p2p_set_symbol_timeout (uint32_t symbol_timeout)
 
bool service_lora_p2p_get_iqinverted (void)
 
int32_t service_lora_p2p_set_iqinverted (bool iqinverted)
 
bool service_lora_p2p_get_fix_length_payload (void)
 
int32_t service_lora_p2p_set_fix_length_payload (bool enable)
 
uint16_t service_lora_p2p_get_syncword (void)
 
int32_t service_lora_p2p_set_syncword (uint16_t syncword)
 
bool service_lora_p2p_get_CAD (void)
 
int32_t service_lora_p2p_set_CAD (bool enable)
 
bool service_lora_p2p_get_radio_stat (void)
 

Detailed Description

Provide LoRa service layer for API layer to use.

Author
Rakwireless
Version
0.0.0
Date
2021.6

Macro Definition Documentation

◆ LORA_P2P_DEBUG

#define LORA_P2P_DEBUG (   fmt,
  args... 
)

◆ LORA_SYMBOL_TIMEOUT

#define LORA_SYMBOL_TIMEOUT   5 /* Symbols */

◆ LORA_FIX_LENGTH_PAYLOAD_ON

#define LORA_FIX_LENGTH_PAYLOAD_ON   false

◆ LORA_IQ_INVERSION_ON

#define LORA_IQ_INVERSION_ON   false

◆ LORA_BUFFER_SIZE

#define LORA_BUFFER_SIZE   255 /* Define the payload size here */

◆ SYMBTIMEOUT_MAX

#define SYMBTIMEOUT_MAX   0

Typedef Documentation

◆ rui_lora_p2p_recv_t

◆ service_lora_p2p_send_cb_type

typedef void(* service_lora_p2p_send_cb_type) (void)

◆ service_lora_p2p_recv_cb_type

typedef void(* service_lora_p2p_recv_cb_type) (rui_lora_p2p_recv_t recv_data_pkg)

◆ service_lora_p2p_send_CAD_cb_type

typedef void(* service_lora_p2p_send_CAD_cb_type) (bool)

Enumeration Type Documentation

◆ RAK_LORA_P2P_SYNCWORD

Description
The default syncword in P2P mode
Enumerator
LORA_MAC_PRIVATE_SYNCWORD 
LORA_MAC_PUBLIC_SYNCWORD 

Function Documentation

◆ service_lora_p2p_init()

int32_t service_lora_p2p_init ( void  )

◆ service_lora_p2p_config()

int32_t service_lora_p2p_config ( void  )

◆ service_lora_p2p_send()

int32_t service_lora_p2p_send ( uint8_t *  p_data,
uint8_t  len,
bool  cad_enable 
)

◆ service_lora_p2p_recv()

int32_t service_lora_p2p_recv ( uint32_t  timeout)

◆ service_lora_p2p_get_freq()

uint32_t service_lora_p2p_get_freq ( void  )

◆ service_lora_p2p_set_freq()

int32_t service_lora_p2p_set_freq ( uint32_t  freq)

◆ service_lora_p2p_check_runtime_freq()

int32_t service_lora_p2p_check_runtime_freq ( uint32_t  freq)

◆ service_lora_p2p_get_sf()

uint8_t service_lora_p2p_get_sf ( void  )

◆ service_lora_p2p_set_sf()

int32_t service_lora_p2p_set_sf ( uint8_t  spreadfact)

◆ service_lora_p2p_check_runtime_sf()

int32_t service_lora_p2p_check_runtime_sf ( uint8_t  spreadfact)

◆ service_lora_p2p_get_bandwidth()

uint32_t service_lora_p2p_get_bandwidth ( void  )

◆ service_lora_p2p_set_bandwidth()

int32_t service_lora_p2p_set_bandwidth ( uint32_t  bandwidth)

◆ service_lora_p2p_check_runtime_bandwidth()

int32_t service_lora_p2p_check_runtime_bandwidth ( uint32_t  bandwidth)

◆ service_lora_p2p_get_codingrate()

uint8_t service_lora_p2p_get_codingrate ( void  )

◆ service_lora_p2p_set_codingrate()

int32_t service_lora_p2p_set_codingrate ( uint8_t  codingrate)

◆ service_lora_p2p_check_runtime_codingrate()

int32_t service_lora_p2p_check_runtime_codingrate ( uint8_t  codingrate)

◆ service_lora_p2p_get_preamlen()

uint16_t service_lora_p2p_get_preamlen ( void  )

◆ service_lora_p2p_set_preamlen()

int32_t service_lora_p2p_set_preamlen ( uint16_t  preamlen)

◆ service_lora_p2p_check_runtime_preamlen()

int32_t service_lora_p2p_check_runtime_preamlen ( uint16_t  preamlen)

◆ service_lora_p2p_get_powerdbm()

uint8_t service_lora_p2p_get_powerdbm ( void  )

◆ service_lora_p2p_set_powerdbm()

int32_t service_lora_p2p_set_powerdbm ( uint8_t  powerdbm)

◆ service_lora_p2p_check_runtime_powerdbm()

int32_t service_lora_p2p_check_runtime_powerdbm ( uint8_t  powerdbm)

◆ service_lora_p2p_get_crypto_enable()

bool service_lora_p2p_get_crypto_enable ( void  )

◆ service_lora_p2p_set_crypto_enable()

int32_t service_lora_p2p_set_crypto_enable ( bool  enable)

◆ service_lora_p2p_get_crypto_key()

int32_t service_lora_p2p_get_crypto_key ( uint8_t *  buff,
uint32_t  len 
)

◆ service_lora_p2p_set_crypto_key()

int32_t service_lora_p2p_set_crypto_key ( uint8_t *  buff,
uint32_t  len 
)

◆ service_lora_p2p_get_crypto_IV()

int32_t service_lora_p2p_get_crypto_IV ( uint8_t *  buff,
uint32_t  len 
)

◆ service_lora_p2p_set_crypto_IV()

int32_t service_lora_p2p_set_crypto_IV ( uint8_t *  buff,
uint32_t  len 
)

◆ service_lora_p2p_get_fdev()

uint32_t service_lora_p2p_get_fdev ( void  )

◆ service_lora_p2p_set_fdev()

int32_t service_lora_p2p_set_fdev ( uint32_t  fdev)

◆ service_lora_p2p_get_bitrate()

uint32_t service_lora_p2p_get_bitrate ( void  )

◆ service_lora_p2p_set_bitrate()

int32_t service_lora_p2p_set_bitrate ( uint32_t  bitrate)

◆ service_lora_p2p_encrpty()

int32_t service_lora_p2p_encrpty ( uint8_t *  indata,
uint16_t  inlen,
uint8_t *  outdata 
)

◆ service_lora_p2p_decrpty()

int32_t service_lora_p2p_decrpty ( uint8_t *  indata,
uint16_t  inlen,
uint8_t *  outdata 
)

◆ service_lora_p2p_register_send_cb()

int32_t service_lora_p2p_register_send_cb ( service_lora_p2p_send_cb_type  callback)

◆ service_lora_p2p_register_send_CAD_cb()

int32_t service_lora_p2p_register_send_CAD_cb ( service_lora_p2p_send_CAD_cb_type  callback)

◆ service_lora_p2p_register_recv_cb()

int32_t service_lora_p2p_register_recv_cb ( service_lora_p2p_recv_cb_type  callback)

◆ service_lora_p2p_get_public_network()

bool service_lora_p2p_get_public_network ( void  )

◆ service_lora_p2p_set_public_network()

int32_t service_lora_p2p_set_public_network ( bool  enable)

◆ service_lora_p2p_get_symbol_timeout()

uint32_t service_lora_p2p_get_symbol_timeout ( void  )

◆ service_lora_p2p_set_symbol_timeout()

int32_t service_lora_p2p_set_symbol_timeout ( uint32_t  symbol_timeout)

◆ service_lora_p2p_get_iqinverted()

bool service_lora_p2p_get_iqinverted ( void  )

◆ service_lora_p2p_set_iqinverted()

int32_t service_lora_p2p_set_iqinverted ( bool  iqinverted)

◆ service_lora_p2p_get_fix_length_payload()

bool service_lora_p2p_get_fix_length_payload ( void  )

◆ service_lora_p2p_set_fix_length_payload()

int32_t service_lora_p2p_set_fix_length_payload ( bool  enable)

◆ service_lora_p2p_get_syncword()

uint16_t service_lora_p2p_get_syncword ( void  )

◆ service_lora_p2p_set_syncword()

int32_t service_lora_p2p_set_syncword ( uint16_t  syncword)

◆ service_lora_p2p_get_CAD()

bool service_lora_p2p_get_CAD ( void  )

◆ service_lora_p2p_set_CAD()

int32_t service_lora_p2p_set_CAD ( bool  enable)

◆ service_lora_p2p_get_radio_stat()

bool service_lora_p2p_get_radio_stat ( void  )