MAX20361 Demo with LoRa Module on LP1 mode

Dependencies:   SX1276GenericLib USBDevice

Fork of NonPingPong_PICO_LoRa_LP1 by Walter Luu

Committer:
walterluu
Date:
Mon Oct 12 21:55:22 2020 +0000
Revision:
3:85fc843a9d7d
Child:
6:51f492ca61a2
MAX20361 Demo Firmware version 1.0

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 3:85fc843a9d7d 37 const uint8_t PingMsg[] = { 0xff, 0xff, 0x00, 0x00, 'P', 'I', 'N', 'G'};// "PING"; // 255, 255, 0, 0, 80, 73, 78, 71
walterluu 3:85fc843a9d7d 38 const uint8_t PongMsg[] = { 0xff, 0xff, 0x00, 0x00, 'P', 'O', 'N', 'G'};// "PONG"; // 255, 255, 0, 0, 80, 79, 78, 71
walterluu 3:85fc843a9d7d 39
walterluu 3:85fc843a9d7d 40 // This keeps track of how many times a transmission times out.
walterluu 3:85fc843a9d7d 41 static int RxTimeoutCount = 0;
walterluu 3:85fc843a9d7d 42
walterluu 3:85fc843a9d7d 43 /*!
walterluu 3:85fc843a9d7d 44 * @brief Function that sets up the LoRa radio device
walterluu 3:85fc843a9d7d 45 */
walterluu 3:85fc843a9d7d 46 int SX1276PingPongSetup(uint8_t *BufferTxFromMain, uint8_t *BufferRxFromMain, USBSerial *_pc);
walterluu 3:85fc843a9d7d 47
walterluu 3:85fc843a9d7d 48 /*!
walterluu 3:85fc843a9d7d 49 * @brief Function that is called in main program to handle LoRa communications
walterluu 3:85fc843a9d7d 50 */
walterluu 3:85fc843a9d7d 51 int SX1276PingPong(void);
walterluu 3:85fc843a9d7d 52
walterluu 3:85fc843a9d7d 53 /*!
walterluu 3:85fc843a9d7d 54 * @brief Function that is called in the Slave/Sensor node to send sensor data
walterluu 3:85fc843a9d7d 55 */
walterluu 3:85fc843a9d7d 56 int SX1276SensorSend(void);
walterluu 3:85fc843a9d7d 57
walterluu 3:85fc843a9d7d 58 /*!
walterluu 3:85fc843a9d7d 59 * @brief Function that is called in the Master/Gateway to receive sensor data
walterluu 3:85fc843a9d7d 60 */
walterluu 3:85fc843a9d7d 61 int SX1276GateWayReceive(int TimeOut);
walterluu 3:85fc843a9d7d 62
walterluu 3:85fc843a9d7d 63 /*!
walterluu 3:85fc843a9d7d 64 * @brief Function that is computes time on air for transmission
walterluu 3:85fc843a9d7d 65 */
walterluu 3:85fc843a9d7d 66 int TimeOnAirSend(void);
walterluu 3:85fc843a9d7d 67
walterluu 3:85fc843a9d7d 68 /*
walterluu 3:85fc843a9d7d 69 * Callback functions prototypes
walterluu 3:85fc843a9d7d 70 */
walterluu 3:85fc843a9d7d 71 /*!
walterluu 3:85fc843a9d7d 72 * @brief Function to be executed on Radio Tx Done event
walterluu 3:85fc843a9d7d 73 */
walterluu 3:85fc843a9d7d 74 void OnTxDone(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 75
walterluu 3:85fc843a9d7d 76 /*!
walterluu 3:85fc843a9d7d 77 * @brief Function to be executed on Radio Rx Done event
walterluu 3:85fc843a9d7d 78 */
walterluu 3:85fc843a9d7d 79 void OnRxDone(void *radio, void *userThisPtr, void *userData, uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr );
walterluu 3:85fc843a9d7d 80
walterluu 3:85fc843a9d7d 81 /*!
walterluu 3:85fc843a9d7d 82 * @brief Function executed on Radio Tx Timeout event
walterluu 3:85fc843a9d7d 83 */
walterluu 3:85fc843a9d7d 84 void OnTxTimeout(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 85
walterluu 3:85fc843a9d7d 86 /*!
walterluu 3:85fc843a9d7d 87 * @brief Function executed on Radio Rx Timeout event
walterluu 3:85fc843a9d7d 88 */
walterluu 3:85fc843a9d7d 89 void OnRxTimeout(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 90
walterluu 3:85fc843a9d7d 91 /*!
walterluu 3:85fc843a9d7d 92 * @brief Function executed on Radio Rx Error event
walterluu 3:85fc843a9d7d 93 */
walterluu 3:85fc843a9d7d 94 void OnRxError(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 95
walterluu 3:85fc843a9d7d 96 /*!
walterluu 3:85fc843a9d7d 97 * @brief Function executed on Radio Fhss Change Channel event
walterluu 3:85fc843a9d7d 98 */
walterluu 3:85fc843a9d7d 99 void OnFhssChangeChannel(void *radio, void *userThisPtr, void *userData, uint8_t channelIndex);
walterluu 3:85fc843a9d7d 100
walterluu 3:85fc843a9d7d 101 /*!
walterluu 3:85fc843a9d7d 102 * @brief Function executed on CAD Done event
walterluu 3:85fc843a9d7d 103 */
walterluu 3:85fc843a9d7d 104 void OnCadDone(void *radio, void *userThisPtr, void *userData);
walterluu 3:85fc843a9d7d 105
walterluu 3:85fc843a9d7d 106 /*!
walterluu 3:85fc843a9d7d 107 * @brief Returns how many times a transmition is not received
walterluu 3:85fc843a9d7d 108 */
walterluu 3:85fc843a9d7d 109 int numOfRxTimeouts();
walterluu 3:85fc843a9d7d 110
walterluu 3:85fc843a9d7d 111 #endif // __MAIN_H__