PicoWAN SDK Documentation
Data Fields
message_interface_t Struct Reference

Data Fields

message_status_t(* message_compose )(uint8_t *encode_key, uint8_t *nwkskey, uint32_t netid, uint8_t type, uint32_t devaddr, uint8_t port, const uint8_t *payload, uint8_t payload_len, uint8_t *fopts, uint8_t fopts_len, uint16_t seqno, message_t *msg)
 compose a message according to some inputs More...
 
message_status_t(* message_compose_join_OTA )(uint8_t type, uint8_t *dev_eui, uint8_t *app_eui, uint16_t *dev_nonce, uint8_t *app_key, message_t *msg)
 compose a special message for OTA More...
 
message_status_t(* message_decode )(uint8_t *decode_key, uint8_t *nwkskey, uint8_t *buf, uint8_t buf_len, message_t *msg)
 decode a message according to format choosen More...
 
message_status_t(* message_decode_join_OTA )(uint8_t *buf, uint8_t buf_len, uint8_t *app_key, uint8_t *appskey, uint8_t *nwkskey, uint16_t *dev_nonce, uint32_t *netid, uint32_t *devaddr, uint8_t *rx1_dr_offset, uint8_t *rx2_dr, uint8_t *rx_delay, uint8_t *cf_list)
 decode a message from OTA More...
 
message_status_t(* message_authentication )(uint8_t *nwkskey, message_t *msg)
 compute message integrity check More...
 
uint16_t(* message_max_payload_length )(void)
 Return maximun allowed bytes for user payload. More...
 
message_status_t(* message_get_address )(uint8_t *buf, uint8_t buf_len, message_t *msg)
 Get the address of the frame. More...
 
message_status_t(* message_get_header )(uint8_t *buf, uint8_t buf_len, message_t *msg)
 Get frame header. More...
 

Field Documentation

message_status_t(* message_authentication) (uint8_t *nwkskey, message_t *msg)

compute message integrity check

Parameters
nwkskeyPointer to the network session AES128 key array ( 16 bytes )
msgA pointer to encoded message
Returns
message_status
message_status_t(* message_compose) (uint8_t *encode_key, uint8_t *nwkskey, uint32_t netid, uint8_t type, uint32_t devaddr, uint8_t port, const uint8_t *payload, uint8_t payload_len, uint8_t *fopts, uint8_t fopts_len, uint16_t seqno, message_t *msg)

compose a message according to some inputs

Parameters
encode_keyPointer to an AES128 key array ( 16 bytes )
nwkskeyPointer to the network session AES128 key array ( 16 bytes )
netid24 bits network identifier ( provided by network operator )
typemessage type as defined in message_common.h
devaddr32 bits device address on the network (must be unique to the network)
portpayload port (0 for mac specific message else must be > 0 for application data)
payloadA pointer to the data to send
payload_lenThe length of the data to send
seqnoframe counter
msgA pointer to composed message
Returns
message_status
message_status_t(* message_compose_join_OTA) (uint8_t type, uint8_t *dev_eui, uint8_t *app_eui, uint16_t *dev_nonce, uint8_t *app_key, message_t *msg)

compose a special message for OTA

Parameters
typemessage type
dev_euipointer to the device EUI array (8 bytes)
app_euipointer to the application EUI array (8 bytes)
app_keypointer to the application AES128 key array (16 bytes)
Returns
message_status
message_status_t(* message_decode) (uint8_t *decode_key, uint8_t *nwkskey, uint8_t *buf, uint8_t buf_len, message_t *msg)

decode a message according to format choosen

Parameters
decode_keyPointer to an AES128 key array ( 16 bytes )
nwkskeyPointer to the network session AES128 key array ( 16 bytes )
bufA pointer to the data to decode
buf_lenThe length of the data to decode
msgA pointer to decoded message
Returns
message_status
message_status_t(* message_decode_join_OTA) (uint8_t *buf, uint8_t buf_len, uint8_t *app_key, uint8_t *appskey, uint8_t *nwkskey, uint16_t *dev_nonce, uint32_t *netid, uint32_t *devaddr, uint8_t *rx1_dr_offset, uint8_t *rx2_dr, uint8_t *rx_delay, uint8_t *cf_list)

decode a message from OTA

Parameters
bufA pointer to the data to decode
buf_lenThe length of the data to decode
app_keypointer to the application AES128 key array (16 bytes)
appskeyPointer to the application session AES128 key array ( 16 bytes )
nwkskeyPointer to the network session AES128 key array ( 16 bytes )
dev_nonceramdom nonce to create session keys
netid24 bits network identifier ( provided by network operator )
devaddr32 bits device address on the network (must be unique to the network)
rx1_dr_offsetdatarate offset between uplink and downlink on first window
rx2_drdatarate on the second window
rx_delaydelay to wait before starting the first windows
cf_listchannels available
Returns
message_status
message_status_t(* message_get_address) (uint8_t *buf, uint8_t buf_len, message_t *msg)

Get the address of the frame.

Parameters
bufA pointer to the data to decode
buf_lenThe length of the data to decode
msgA pointer to save address message
Returns
message_status
message_status_t(* message_get_header) (uint8_t *buf, uint8_t buf_len, message_t *msg)

Get frame header.

Parameters
bufA pointer to the data to decode
buf_lenThe length of the data to decode
msgA pointer to save header message
Returns
message_status
uint16_t(* message_max_payload_length) (void)

Return maximun allowed bytes for user payload.

Returns
max payload length

The documentation for this struct was generated from the following file: