From 05658ce2f505583683c82ef1510db202ab499cf6 Mon Sep 17 00:00:00 2001 From: alistairjordan <> Date: Fri, 5 Jan 2024 23:24:48 +0000 Subject: [PATCH] Update Region.c --- .../board/lorawan-bridge/LoraMac/LoRaMac.c | 4 ++ .../LoraMac/common/LmHandler/LmHandler.c | 4 ++ .../tools/board/lorawan-bridge/LoraMac/main.c | 35 ++++++++++++------ .../lorawan-bridge/LoraMac/region/Region.c | 17 +++++++-- .../board/lorawan-bridge/LoraMac/rtc-board.c | 4 +- .../board/lorawan-bridge/LoraMac/sx1276.c | 6 ++- sysdrv/tools/board/lorawan-bridge/rest_server | Bin 294256 -> 294256 bytes 7 files changed, 52 insertions(+), 18 deletions(-) diff --git a/sysdrv/tools/board/lorawan-bridge/LoraMac/LoRaMac.c b/sysdrv/tools/board/lorawan-bridge/LoraMac/LoRaMac.c index ac790e1b6f..5e243a56da 100644 --- a/sysdrv/tools/board/lorawan-bridge/LoraMac/LoRaMac.c +++ b/sysdrv/tools/board/lorawan-bridge/LoraMac/LoRaMac.c @@ -1568,6 +1568,7 @@ bool LoRaMacIsBusy( void ) if( LoRaMacRadioEvents.Events.RxProcessPending == 1 ) { + printf("Rx Process Pending: LoraMac Busy.\n"); return true; } @@ -1576,6 +1577,9 @@ bool LoRaMacIsBusy( void ) { return false; } + printf("Unknown Pending: LoraMac Busy.\n"); + printf("MacCtx.MacState == LORAMAC_IDLE: %s\n", MacCtx.MacState == LORAMAC_IDLE ? "True" : "False"); + printf("MacCtx.AllowRequests == LORAMAC_REQUEST_HANDLING_ON: %s\n", MacCtx.AllowRequests == LORAMAC_REQUEST_HANDLING_ON ? "True" : "False"); return true; } diff --git a/sysdrv/tools/board/lorawan-bridge/LoraMac/common/LmHandler/LmHandler.c b/sysdrv/tools/board/lorawan-bridge/LoraMac/common/LmHandler/LmHandler.c index 527b6a5ab0..1437980b14 100644 --- a/sysdrv/tools/board/lorawan-bridge/LoraMac/common/LmHandler/LmHandler.c +++ b/sysdrv/tools/board/lorawan-bridge/LoraMac/common/LmHandler/LmHandler.c @@ -361,11 +361,13 @@ bool LmHandlerIsBusy( void ) { if( LoRaMacIsBusy( ) == true ) { + printf("LoraMacIsBusy!\n"); return true; } if( LmHandlerJoinStatus( ) != LORAMAC_HANDLER_SET ) { // The network isn't yet joined, try again later. + printf("NotJoinedYet!\n"); LmHandlerJoin( ); return true; } @@ -409,12 +411,14 @@ void LmHandlerProcess( void ) // If it is the case exit function earlier if( LmHandlerPackageIsTxPending( ) == true ) { + printf("Package Tx Pending\n"); return; } // If a MAC layer scheduled uplink is still pending try to send it. if( IsUplinkTxPending == true ) { + printf("Uplink Tx Pending\n"); // Send an empty message LmHandlerAppData_t appData = { diff --git a/sysdrv/tools/board/lorawan-bridge/LoraMac/main.c b/sysdrv/tools/board/lorawan-bridge/LoraMac/main.c index 2f28281d08..c0cc585d8b 100644 --- a/sysdrv/tools/board/lorawan-bridge/LoraMac/main.c +++ b/sysdrv/tools/board/lorawan-bridge/LoraMac/main.c @@ -169,9 +169,9 @@ static void OnSysTimeUpdate( bool isSynchronized, int32_t timeCorrection ); #else static void OnSysTimeUpdate( void ); #endif -static void PrepareTxFrame( void ); +static void PrepareTxFrame( uint8_t size, char buffer[] ); static void StartTxProcess( LmHandlerTxEvents_t txEvent ); -static void UplinkProcess( void ); +static void UplinkProcess( uint8_t size, char buffer[] ); static void OnTxPeriodicityChanged( uint32_t periodicity ); static void OnTxFrameCtrlChanged( LmHandlerMsgTypes_t isTxConfirmed ); @@ -296,10 +296,18 @@ int main( void ) // CliProcess( &Uart2 ); // Processes the LoRaMac events - LmHandlerProcess( ); + LmHandlerProcess( ); // Process application uplinks management - UplinkProcess( ); + char payload[] = "Hello world!"; + printf("Sending payload: %s",payload); + UplinkProcess( sizeof(payload), payload ); + LmHandlerProcess( ); + // Array of test data + // int data_remaining = 1 + // while (data_remaining) { + // send_data(data) + // } // CRITICAL_SECTION_BEGIN( ); // if( IsMacProcessPending == 1 ) @@ -434,10 +442,11 @@ static void OnSysTimeUpdate( void ) /*! * Prepares the payload of the frame and transmits it. */ -static void PrepareTxFrame( void ) +static void PrepareTxFrame( uint8_t size, char buffer[] ) { if( LmHandlerIsBusy( ) == true ) { + printf("LmHander busy!\n"); return; } @@ -445,12 +454,14 @@ static void PrepareTxFrame( void ) AppData.Port = LORAWAN_APP_PORT; - CayenneLppReset( ); - CayenneLppAddDigitalInput( channel++, AppLedStateOn ); - CayenneLppAddAnalogInput( channel++, BoardGetBatteryLevel( ) * 100 / 254 ); + // CayenneLppReset( ); + // CayenneLppAddDigitalInput( channel++, AppLedStateOn ); + // CayenneLppAddAnalogInput( channel++, BoardGetBatteryLevel( ) * 100 / 254 ); - CayenneLppCopy( AppData.Buffer ); - AppData.BufferSize = CayenneLppGetSize( ); + // CayenneLppCopy( AppData.Buffer ); + // AppData.BufferSize = CayenneLppGetSize( ); + AppData.BufferSize = size; + AppData.Buffer = buffer; if( LmHandlerSend( &AppData, LmHandlerParams.IsTxConfirmed ) == LORAMAC_HANDLER_SUCCESS ) { @@ -481,7 +492,7 @@ static void StartTxProcess( LmHandlerTxEvents_t txEvent ) } } -static void UplinkProcess( void ) +static void UplinkProcess( uint8_t size, char buffer[] ) { uint8_t isPending = 0; CRITICAL_SECTION_BEGIN( ); @@ -490,7 +501,7 @@ static void UplinkProcess( void ) CRITICAL_SECTION_END( ); if( isPending == 1 ) { - PrepareTxFrame( ); + PrepareTxFrame( size, buffer ); } } diff --git a/sysdrv/tools/board/lorawan-bridge/LoraMac/region/Region.c b/sysdrv/tools/board/lorawan-bridge/LoraMac/region/Region.c index 01024bf12a..fc39b12a7e 100644 --- a/sysdrv/tools/board/lorawan-bridge/LoraMac/region/Region.c +++ b/sysdrv/tools/board/lorawan-bridge/LoraMac/region/Region.c @@ -30,6 +30,8 @@ */ #include "LoRaMac.h" #include "Region.h" +#include + // Setup regions //#ifdef REGION_AS923 @@ -530,67 +532,76 @@ bool RegionIsActive( LoRaMacRegion_t region ) * AS band on 923MHz */ case LORAMAC_REGION_AS923: + printf("AS923 ACTIVE\n"); AS923_IS_ACTIVE( ); break; /*! * Australian band on 915MHz */ case LORAMAC_REGION_AU915: + printf("AU915 ACTIVE\n"); AU915_IS_ACTIVE( ); break; /*! * Chinese band on 470MHz */ case LORAMAC_REGION_CN470: + printf("CN470 ACTIVE\n"); CN470_IS_ACTIVE( ); break; /*! * Chinese band on 779MHz */ case LORAMAC_REGION_CN779: + printf("CN779 ACTIVE\n"); CN779_IS_ACTIVE( ); break; /*! * European band on 433MHz */ case LORAMAC_REGION_EU433: + printf("EU433 ACTIVE\n"); EU433_IS_ACTIVE( ); break; /*! * European band on 868MHz */ case LORAMAC_REGION_EU868: + printf("EU868 ACTIVE\n"); EU868_IS_ACTIVE( ); break; /*! * South korean band on 920MHz */ case LORAMAC_REGION_KR920: + printf("KR920 ACTIVE\n"); KR920_IS_ACTIVE( ); break; /*! * India band on 865MHz */ case LORAMAC_REGION_IN865: + printf("IN865 ACTIVE\n"); IN865_IS_ACTIVE( ); break; /*! * North american band on 915MHz */ case LORAMAC_REGION_US915: + printf("US915 ACTIVE\n"); US915_IS_ACTIVE( ); break; /*! * Russia band on 864MHz */ case LORAMAC_REGION_RU864: + printf("RU864 ACTIVE\n"); RU864_IS_ACTIVE( ); break; - - + default: { - return true; // FIX THIS NOW + return false; } } } diff --git a/sysdrv/tools/board/lorawan-bridge/LoraMac/rtc-board.c b/sysdrv/tools/board/lorawan-bridge/LoraMac/rtc-board.c index df550a2ccc..82cd90aeca 100644 --- a/sysdrv/tools/board/lorawan-bridge/LoraMac/rtc-board.c +++ b/sysdrv/tools/board/lorawan-bridge/LoraMac/rtc-board.c @@ -16,8 +16,8 @@ uint32_t GettimeToTicks(struct timespec *ts) { struct timespec TicksToGettime(uint32_t time) { struct timespec ts; - ts.tv_sec += time / 1000000000; - ts.tv_nsec += time % 1000000000; + ts.tv_sec = time / 1000000000; + ts.tv_nsec = time % 1000000000; return ts; } diff --git a/sysdrv/tools/board/lorawan-bridge/LoraMac/sx1276.c b/sysdrv/tools/board/lorawan-bridge/LoraMac/sx1276.c index a2d0351ee0..bce4353558 100644 --- a/sysdrv/tools/board/lorawan-bridge/LoraMac/sx1276.c +++ b/sysdrv/tools/board/lorawan-bridge/LoraMac/sx1276.c @@ -24,6 +24,7 @@ * * \author Wael Guibene ( Semtech ) */ +#include #include #include #include "utilities.h" @@ -1298,11 +1299,13 @@ void SX1276WriteBuffer( uint32_t addr, uint8_t *buffer, uint8_t size ) //NSS = 0; //GpioWrite( &SX1276.Spi.Nss, 0 ); - SpiInOut( &SX1276.Spi, addr | 0x80 ); for( i = 0; i < size; i++ ) { + printf("Writing data %x\n", buffer[i]); + printf("HERE"); SpiInOut( &SX1276.Spi, buffer[i] ); + printf("HERE"); } //NSS = 1; @@ -1321,6 +1324,7 @@ void SX1276ReadBuffer( uint32_t addr, uint8_t *buffer, uint8_t size ) for( i = 0; i < size; i++ ) { buffer[i] = SpiInOut( &SX1276.Spi, 0 ); + printf("Reading data %x\n",buffer[i]); } //NSS = 1; diff --git a/sysdrv/tools/board/lorawan-bridge/rest_server b/sysdrv/tools/board/lorawan-bridge/rest_server index 8fe2539b5c93628ec78c1d1dc68ef88225786cc4..3bd15afc90a0bfed9440460d9658304ed198aaf6 100755 GIT binary patch delta 42835 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