Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
lorawan.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 Manivannan Sadhasivam <mani@kernel.org>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_LORAWAN_LORAWAN_H_
8#define ZEPHYR_INCLUDE_LORAWAN_LORAWAN_H_
9
15#include <device.h>
16#include <sys/slist.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
29};
30
37};
38
59};
60
68};
69
82};
83
93};
94
96 union {
99 };
100
103
105};
106
107#define LW_RECV_PORT_ANY UINT16_MAX
108
110 /* Port to handle messages for:
111 * Port 0: TX packet acknowledgements
112 * Ports 1-255: Standard downlink port
113 * LW_RECV_PORT_ANY: All downlinks
114 */
129 void (*cb)(uint8_t port, bool data_pending,
130 int16_t rssi, int8_t snr,
131 uint8_t len, const uint8_t *data);
134};
135
152int lorawan_set_battery_level_callback(uint8_t (*battery_lvl_cb)(void));
153
160
173
183int lorawan_join(const struct lorawan_join_config *config);
184
193
212
224
233
245void lorawan_enable_adr(bool enable);
246
257
267
278void lorawan_get_payload_sizes(uint8_t *max_next_payload_size,
279 uint8_t *max_payload_size);
280
281#ifdef __cplusplus
282}
283#endif
284
285#endif /* ZEPHYR_INCLUDE_LORAWAN_LORAWAN_H_ */
void
Definition: eswifi_shell.c:15
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition: util_macro.h:44
flags
Definition: http_parser.h:131
int lorawan_set_conf_msg_tries(uint8_t tries)
Set the number of tries used for transmissions.
lorawan_datarate
LoRaWAN datarate types.
Definition: lorawan.h:42
@ LORAWAN_DR_8
Definition: lorawan.h:51
@ LORAWAN_DR_5
Definition: lorawan.h:48
@ LORAWAN_DR_10
Definition: lorawan.h:53
@ LORAWAN_DR_12
Definition: lorawan.h:55
@ LORAWAN_DR_13
Definition: lorawan.h:56
@ LORAWAN_DR_14
Definition: lorawan.h:57
@ LORAWAN_DR_11
Definition: lorawan.h:54
@ LORAWAN_DR_15
Definition: lorawan.h:58
@ LORAWAN_DR_3
Definition: lorawan.h:46
@ LORAWAN_DR_0
Definition: lorawan.h:43
@ LORAWAN_DR_4
Definition: lorawan.h:47
@ LORAWAN_DR_2
Definition: lorawan.h:45
@ LORAWAN_DR_7
Definition: lorawan.h:50
@ LORAWAN_DR_6
Definition: lorawan.h:49
@ LORAWAN_DR_1
Definition: lorawan.h:44
@ LORAWAN_DR_9
Definition: lorawan.h:52
lorawan_act_type
LoRaWAN activation types.
Definition: lorawan.h:34
@ LORAWAN_ACT_ABP
Definition: lorawan.h:36
@ LORAWAN_ACT_OTAA
Definition: lorawan.h:35
void lorawan_enable_adr(bool enable)
Enable Adaptive Data Rate (ADR)
void lorawan_register_dr_changed_callback(void(*dr_cb)(enum lorawan_datarate))
Register a callback to be called when the datarate changes.
int lorawan_set_battery_level_callback(uint8_t(*battery_lvl_cb)(void))
Add battery level callback function.
int lorawan_join(const struct lorawan_join_config *config)
Join the LoRaWAN network.
lorawan_message_type
LoRaWAN message types.
Definition: lorawan.h:66
@ LORAWAN_MSG_CONFIRMED
Definition: lorawan.h:67
int lorawan_start(void)
Start the LoRaWAN stack.
enum lorawan_datarate lorawan_get_min_datarate(void)
Get the minimum possible datarate.
int lorawan_send(uint8_t port, uint8_t *data, uint8_t len, uint8_t flags)
Send data to the LoRaWAN network.
lorawan_class
LoRaWAN class types.
Definition: lorawan.h:25
@ LORAWAN_CLASS_A
Definition: lorawan.h:26
@ LORAWAN_CLASS_B
Definition: lorawan.h:27
@ LORAWAN_CLASS_C
Definition: lorawan.h:28
void lorawan_get_payload_sizes(uint8_t *max_next_payload_size, uint8_t *max_payload_size)
Get the current payload sizes.
int lorawan_set_datarate(enum lorawan_datarate dr)
Set the default data rate.
void lorawan_register_downlink_callback(struct lorawan_downlink_cb *cb)
Register a callback to be run on downlink packets.
int lorawan_set_class(enum lorawan_class dev_class)
Set the current device class.
Single-linked list implementation.
struct _snode sys_snode_t
Definition: slist.h:33
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
__UINT16_TYPE__ uint16_t
Definition: stdint.h:59
__INT8_TYPE__ int8_t
Definition: stdint.h:42
__INT16_TYPE__ int16_t
Definition: stdint.h:43
Definition: lorawan.h:84
uint8_t * app_eui
Definition: lorawan.h:92
uint8_t * app_skey
Definition: lorawan.h:88
uint8_t * nwk_skey
Definition: lorawan.h:90
uint32_t dev_addr
Definition: lorawan.h:86
Definition: lorawan.h:95
struct lorawan_join_abp abp
Definition: lorawan.h:98
struct lorawan_join_otaa otaa
Definition: lorawan.h:97
enum lorawan_act_type mode
Definition: lorawan.h:104
uint8_t * dev_eui
Definition: lorawan.h:102
LoRaWAN join parameters for over-the-Air activation (OTAA)
Definition: lorawan.h:78
uint8_t * app_key
Definition: lorawan.h:81
uint8_t * join_eui
Definition: lorawan.h:79
uint8_t * nwk_key
Definition: lorawan.h:80
static fdata_t data[2]
Definition: test_fifo_contexts.c:15