1 /* 2 * Copyright (c) 2024 A Labs GmbH 3 * Copyright (c) 2024 tado GmbH 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8 #ifndef ZEPHYR_INCLUDE_LORAWAN_EMUL_H_ 9 #define ZEPHYR_INCLUDE_LORAWAN_EMUL_H_ 10 11 #include <stdbool.h> 12 #include <stdint.h> 13 14 #include <zephyr/lorawan/lorawan.h> 15 16 /** 17 * @brief Defines the emulator uplink callback handler function signature. 18 * 19 * @param port LoRaWAN port 20 * @param len Payload data length 21 * @param data Pointer to the payload data 22 */ 23 typedef void (*lorawan_uplink_cb_t)(uint8_t port, uint8_t len, const uint8_t *data); 24 25 /** 26 * @brief Emulate LoRaWAN downlink message 27 * 28 * @param port Port message was sent on 29 * @param data_pending Network server has more downlink packets pending 30 * @param rssi Received signal strength in dBm 31 * @param snr Signal to Noise ratio in dBm 32 * @param len Length of data received, will be 0 for ACKs 33 * @param data Data received, will be NULL for ACKs 34 */ 35 void lorawan_emul_send_downlink(uint8_t port, bool data_pending, int16_t rssi, int8_t snr, 36 uint8_t len, const uint8_t *data); 37 38 /** 39 * @brief Register callback for emulated uplink messages 40 * 41 * @param cb Pointer to the uplink callback handler function 42 */ 43 void lorawan_emul_register_uplink_callback(lorawan_uplink_cb_t cb); 44 45 #endif /* ZEPHYR_INCLUDE_LORAWAN_EMUL_H_ */ 46