From b010a927a69af3532dcab920de762bab9a63c0f5 Mon Sep 17 00:00:00 2001 From: Aidan Date: Sun, 11 May 2025 12:54:43 -0400 Subject: [PATCH 1/2] Include TX/RX callbacks --- src/include/pico/lorawan.h | 5 +++++ src/lorawan.c | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/include/pico/lorawan.h b/src/include/pico/lorawan.h index be0a71f..1d4fcd7 100644 --- a/src/include/pico/lorawan.h +++ b/src/include/pico/lorawan.h @@ -16,6 +16,7 @@ extern "C" { #include "hardware/spi.h" #include "LoRaMac.h" +#include "LmHandler.h" struct lorawan_sx1276_settings { struct { @@ -62,6 +63,10 @@ int lorawan_process_timeout_ms(uint32_t timeout_ms); int lorawan_send_unconfirmed(const void* data, uint8_t data_len, uint8_t app_port); +void lorawan_set_tx_callback(void (*callback)(LmHandlerTxParams_t* params)); + +void lorawan_set_rx_callback(void (*callback)(LmHandlerRxParams_t* params)); + int lorawan_receive(void* data, uint8_t data_len, uint8_t* app_port); void lorawan_debug(bool debug); diff --git a/src/lorawan.c b/src/lorawan.c index dc24e60..ce67d82 100644 --- a/src/lorawan.c +++ b/src/lorawan.c @@ -586,11 +586,23 @@ static void OnJoinRequest( LmHandlerJoinParams_t* params ) } } +void (*tx_callback)(LmHandlerTxParams_t* params) = NULL; +void (*rx_callback)(LmHandlerRxParams_t* params) = NULL; + static void OnTxData( LmHandlerTxParams_t* params ) { if (Debug) { DisplayTxUpdate( params ); } + + if (tx_callback != NULL) { + tx_callback( params ); + } +} + +void lorawan_set_tx_callback( void (*callback)(LmHandlerTxParams_t*) ) +{ + tx_callback = callback; } static void OnRxData( LmHandlerAppData_t* appData, LmHandlerRxParams_t* params ) @@ -602,6 +614,15 @@ static void OnRxData( LmHandlerAppData_t* appData, LmHandlerRxParams_t* params ) memcpy(AppRxData.Buffer, appData->Buffer, appData->BufferSize); AppRxData.BufferSize = appData->BufferSize; AppRxData.Port = appData->Port; + + if (rx_callback != NULL) { + rx_callback( params ); + } +} + +void lorawan_set_rx_callback( void (*callback)(LmHandlerRxParams_t*) ) +{ + rx_callback = callback; } static void OnClassChange( DeviceClass_t deviceClass ) From c0c87fe4456bdda5f1a8eb3252b49d180359a05e Mon Sep 17 00:00:00 2001 From: Aidan Date: Sun, 11 May 2025 13:00:49 -0400 Subject: [PATCH 2/2] Revise names for CamelCase --- src/lorawan.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lorawan.c b/src/lorawan.c index ce67d82..70681c4 100644 --- a/src/lorawan.c +++ b/src/lorawan.c @@ -586,8 +586,8 @@ static void OnJoinRequest( LmHandlerJoinParams_t* params ) } } -void (*tx_callback)(LmHandlerTxParams_t* params) = NULL; -void (*rx_callback)(LmHandlerRxParams_t* params) = NULL; +void (*txCallback)(LmHandlerTxParams_t* params) = NULL; +void (*rxCallback)(LmHandlerRxParams_t* params) = NULL; static void OnTxData( LmHandlerTxParams_t* params ) { @@ -595,14 +595,14 @@ static void OnTxData( LmHandlerTxParams_t* params ) DisplayTxUpdate( params ); } - if (tx_callback != NULL) { - tx_callback( params ); + if (txCallback != NULL) { + txCallback( params ); } } void lorawan_set_tx_callback( void (*callback)(LmHandlerTxParams_t*) ) { - tx_callback = callback; + txCallback = callback; } static void OnRxData( LmHandlerAppData_t* appData, LmHandlerRxParams_t* params ) @@ -615,14 +615,14 @@ static void OnRxData( LmHandlerAppData_t* appData, LmHandlerRxParams_t* params ) AppRxData.BufferSize = appData->BufferSize; AppRxData.Port = appData->Port; - if (rx_callback != NULL) { - rx_callback( params ); + if (rxCallback != NULL) { + rxCallback( params ); } } void lorawan_set_rx_callback( void (*callback)(LmHandlerRxParams_t*) ) { - rx_callback = callback; + rxCallback = callback; } static void OnClassChange( DeviceClass_t deviceClass )