MAX20361 Demo with LoRa Module on LP0 mode

Dependencies:   SX1276GenericLib USBDevice

Fork of NonPingPong_PICO_LoRa_LP0 by Walter Luu

Committer:
walterluu
Date:
Fri Oct 16 06:50:42 2020 +0000
Revision:
7:c0872971aef4
Parent:
6:51f492ca61a2
MAX20361 Demo with LoRa Module on LP0 mode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
walterluu 3:85fc843a9d7d 1 /*
walterluu 3:85fc843a9d7d 2 / _____) _ | |
walterluu 3:85fc843a9d7d 3 ( (____ _____ ____ _| |_ _____ ____| |__
walterluu 3:85fc843a9d7d 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
walterluu 3:85fc843a9d7d 5 _____) ) ____| | | || |_| ____( (___| | | |
walterluu 3:85fc843a9d7d 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
walterluu 3:85fc843a9d7d 7 ( C )2014 Semtech
walterluu 3:85fc843a9d7d 8
walterluu 3:85fc843a9d7d 9 Description: Contains the callbacks for the IRQs and any application related details
walterluu 3:85fc843a9d7d 10
walterluu 3:85fc843a9d7d 11 License: Revised BSD License, see LICENSE.TXT file include in the project
walterluu 3:85fc843a9d7d 12
walterluu 3:85fc843a9d7d 13 Maintainer: Miguel Luis and Gregory Cristian
walterluu 3:85fc843a9d7d 14 */
walterluu 3:85fc843a9d7d 15
walterluu 3:85fc843a9d7d 16 /*
walterluu 3:85fc843a9d7d 17 * This file contains a copy of the master content sx1276PingPong
walterluu 3:85fc843a9d7d 18 * with adaption for the SX1276Generic environment
walterluu 3:85fc843a9d7d 19 * (c) 2017 Helmut Tschemernjak
walterluu 3:85fc843a9d7d 20 * 30826 Garbsen (Hannover) Germany
walterluu 3:85fc843a9d7d 21 */
walterluu 3:85fc843a9d7d 22
walterluu 3:85fc843a9d7d 23 #ifndef __SX1276PINGPONG_H__
walterluu 3:85fc843a9d7d 24 #define __SX1276PINGPONG_H__
walterluu 3:85fc843a9d7d 25
walterluu 3:85fc843a9d7d 26 #include "global_buffers.h"
walterluu 3:85fc843a9d7d 27 #include "USBSerial.h"
walterluu 3:85fc843a9d7d 28 /*
walterluu 3:85fc843a9d7d 29 #ifdef FEATURE_LORA
walterluu 3:85fc843a9d7d 30 int SX1276PingPong(void);
walterluu 3:85fc843a9d7d 31 #else
walterluu 3:85fc843a9d7d 32 #define SX1276PingPong(x) void()
walterluu 3:85fc843a9d7d 33 #endif
walterluu 3:85fc843a9d7d 34 */
walterluu 3:85fc843a9d7d 35
walterluu 3:85fc843a9d7d 36
walterluu 6:51f492ca61a2 37 //const uint8_t PingMsg[] = { 0xff, 0xff, 0x00, 0x00, 'P', 'I', 'N', 'G'};// "PING"; // 255, 255, 0, 0, 80, 73, 78, 71
walterluu 6:51f492ca61a2 38 const uint8_t PingMsg[] = {0xff};
walterluu 6:51f492ca61a2 39 //const uint8_t PongMsg[] = { 0xff, 0xff, 0x00, 0x00, 'P', 'O', 'N', 'G'};// "PONG"; // 255, 255, 0, 0, 80, 79, 78, 71
walterluu 6:51f492ca61a2 40 const uint8_t PongMsg[] = {0x00};
walterluu 3:85fc843a9d7d 41
walterluu 3:85fc843a9d7d 42 // This keeps track of how many times a transmission times out.
walterluu 3:85fc843a9d7d 43 static int RxTimeoutCount = 0;
walterluu 3:85fc843a9d7d 44
walterluu 3:85fc843a9d7d 45 /*!
walterluu 3:85fc843a9d7d 46 * @brief Function that sets up the LoRa radio device
walterluu 3:85fc843a9d7d 47 */
walterluu 3:85fc843a9d7d 48 int SX1276PingPongSetup(uint8_t *BufferTxFromMain, uint8_t *BufferRxFromMain, USBSerial *_pc);
walterluu 3:85fc843a9d7d 49
walterluu 3:85fc843a9d7d 50 /*!
walterluu 3:85fc843a9d7d 51 * @brief Function that is called in main program to handle LoRa communications
walterluu 3:85fc843a9d7d 52 */
walterluu 3:85fc843a9d7d 53 int SX1276PingPong(void);
walterluu 3:85fc843a9d7d 54
walterluu 3:85fc843a9d7d 55 /*!
walterluu 3:85fc843a9d7d 56 * @brief Function that is called in the Slave/Sensor node to send sensor data
walterluu 3:85fc843a9d7d 57 */
walterluu 3:85fc843a9d7d 58 int SX1276SensorSend(void);
walterluu 3:85fc843a9d7d 59
walterluu 3:85fc843a9d7d 60 /*!
walterluu 3:85fc843a9d7d 61 * @brief Function that is called in the Master/Gateway to receive sensor data
walterluu 3:85fc843a9d7d 62 */
walterluu 3:85fc843a9d7d 63 int SX1276GateWayReceive(int TimeOut);
walterluu 3:85fc843a9d7d 64
walterluu 3:85fc843a9d7d 65 /*!
walterluu 3:85fc843a9d7d 66 * @brief Function that is computes time on air for transmission
walterluu 3:85fc843a9d7d 67 */
walterluu 3:85fc843a9d7d 68 int TimeOnAirSend(void);
walterluu 3:85fc843a9d7d 69
walterluu 3:85fc843a9d7d 70 /*
walterluu 3:85fc843a9d7d 71 * Callback functions prototypes
walterluu 3:85fc843a9d7d 72 */
walterluu 3:85fc843a9d7d 73 /*!
walterluu 3:85fc843a9d7d 74 * @brief Function to be executed on Radio Tx Done event
walterluu 3:85fc843a9d7d 75 */
walterluu 3:85fc843a9d7d 76 void OnTxDone(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 77
walterluu 3:85fc843a9d7d 78 /*!
walterluu 3:85fc843a9d7d 79 * @brief Function to be executed on Radio Rx Done event
walterluu 3:85fc843a9d7d 80 */
walterluu 3:85fc843a9d7d 81 void OnRxDone(void *radio, void *userThisPtr, void *userData, uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr );
walterluu 3:85fc843a9d7d 82
walterluu 3:85fc843a9d7d 83 /*!
walterluu 3:85fc843a9d7d 84 * @brief Function executed on Radio Tx Timeout event
walterluu 3:85fc843a9d7d 85 */
walterluu 3:85fc843a9d7d 86 void OnTxTimeout(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 87
walterluu 3:85fc843a9d7d 88 /*!
walterluu 3:85fc843a9d7d 89 * @brief Function executed on Radio Rx Timeout event
walterluu 3:85fc843a9d7d 90 */
walterluu 3:85fc843a9d7d 91 void OnRxTimeout(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 92
walterluu 3:85fc843a9d7d 93 /*!
walterluu 3:85fc843a9d7d 94 * @brief Function executed on Radio Rx Error event
walterluu 3:85fc843a9d7d 95 */
walterluu 3:85fc843a9d7d 96 void OnRxError(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 97
walterluu 3:85fc843a9d7d 98 /*!
walterluu 3:85fc843a9d7d 99 * @brief Function executed on Radio Fhss Change Channel event
walterluu 3:85fc843a9d7d 100 */
walterluu 3:85fc843a9d7d 101 void OnFhssChangeChannel(void *radio, void *userThisPtr, void *userData, uint8_t channelIndex);
walterluu 3:85fc843a9d7d 102
walterluu 3:85fc843a9d7d 103 /*!
walterluu 3:85fc843a9d7d 104 * @brief Function executed on CAD Done event
walterluu 3:85fc843a9d7d 105 */
walterluu 3:85fc843a9d7d 106 void OnCadDone(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 107
walterluu 3:85fc843a9d7d 108 /*!
walterluu 3:85fc843a9d7d 109 * @brief Returns how many times a transmition is not received
walterluu 3:85fc843a9d7d 110 */
walterluu 3:85fc843a9d7d 111 int numOfRxTimeouts();
walterluu 3:85fc843a9d7d 112
walterluu 7:c0872971aef4 113 bool SX1276MasterCheckForNewData(void);
walterluu 7:c0872971aef4 114
walterluu 7:c0872971aef4 115 void SX1276SlaveSendData(void);
walterluu 7:c0872971aef4 116
walterluu 3:85fc843a9d7d 117 #endif // __MAIN_H__