Master Implementation of WANOT

Dependencies:   SX1276Lib mbed

Committer:
semsem
Date:
Mon May 23 22:25:40 2016 +0000
Revision:
0:8b449140caa2
V0.2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
semsem 0:8b449140caa2 1 #include "mbed.h"
semsem 0:8b449140caa2 2 #include "sx1276-hal.h"
semsem 0:8b449140caa2 3 #include "debug.h"
semsem 0:8b449140caa2 4 #include "radio.h"
semsem 0:8b449140caa2 5 #include "Serial.h"
semsem 0:8b449140caa2 6 #include "Timeout.h"
semsem 0:8b449140caa2 7
semsem 0:8b449140caa2 8 #include "SuperSlot.h"
semsem 0:8b449140caa2 9
semsem 0:8b449140caa2 10 #include "MasterSetUp.h"
semsem 0:8b449140caa2 11 #include "MasterBeacon.h"
semsem 0:8b449140caa2 12 #include "MasterTDMA.h"
semsem 0:8b449140caa2 13
semsem 0:8b449140caa2 14 #include"GPS.h"
semsem 0:8b449140caa2 15
semsem 0:8b449140caa2 16 /*
semsem 0:8b449140caa2 17 * LoRa Default Params
semsem 0:8b449140caa2 18 */
semsem 0:8b449140caa2 19
semsem 0:8b449140caa2 20 #define TX_OUTPUT_POWER 10 // 14 dBm
semsem 0:8b449140caa2 21
semsem 0:8b449140caa2 22 #define LORA_CODINGRATE 1 // [1: 4/5]
semsem 0:8b449140caa2 23 #define LORA_PREAMBLE_LENGTH 8 // Same for Tx and Rx
semsem 0:8b449140caa2 24 #define LORA_SYMBOL_TIMEOUT 5 // Symbols
semsem 0:8b449140caa2 25 #define LORA_FIX_LENGTH_PAYLOAD_ON false
semsem 0:8b449140caa2 26 #define LORA_FHSS_ENABLED false
semsem 0:8b449140caa2 27 #define LORA_NB_SYMB_HOP 4
semsem 0:8b449140caa2 28 #define LORA_IQ_INVERSION_ON false
semsem 0:8b449140caa2 29
semsem 0:8b449140caa2 30 #define NUMBER_OF_CHANNELS 8
semsem 0:8b449140caa2 31 #define RSSI_THRESHOLD -90
semsem 0:8b449140caa2 32
semsem 0:8b449140caa2 33 /*
semsem 0:8b449140caa2 34 * Set Up Phase Params
semsem 0:8b449140caa2 35 */
semsem 0:8b449140caa2 36
semsem 0:8b449140caa2 37 #define SET_UP_LORA_SPREADING_FACTOR 7 // [SF7..SF12]
semsem 0:8b449140caa2 38 #define SET_UP_LORA_CRC_ENABLED false
semsem 0:8b449140caa2 39 #define SET_UP_LORA_BANDWIDTH 0 // [0: 125 kHz,
semsem 0:8b449140caa2 40 #define SET_UP_FREQUENCY LORA_Channels[0]
semsem 0:8b449140caa2 41 #define MIN_BACK_OFF 1000 //uS
semsem 0:8b449140caa2 42 #define RANDOM_BACK_OFF_WINDOW 10000 //uS
semsem 0:8b449140caa2 43 #define BEACON_TIMEOUT_VALUE 100000 // in us
semsem 0:8b449140caa2 44 #define TDMA_TIME_OUT_VALUE 100000
semsem 0:8b449140caa2 45
semsem 0:8b449140caa2 46
semsem 0:8b449140caa2 47 /*
semsem 0:8b449140caa2 48 * Buffer Sizes
semsem 0:8b449140caa2 49 */
semsem 0:8b449140caa2 50
semsem 0:8b449140caa2 51 #define RX_TIMEOUT_VALUE 100000 // in us
semsem 0:8b449140caa2 52 #define BUFFER_SIZE 70 // Define the payload size here
semsem 0:8b449140caa2 53 #define BUFFER_SIZE_RTS 2
semsem 0:8b449140caa2 54 #define BUFFER_SIZE_CTS 2
semsem 0:8b449140caa2 55 #define BUFFER_SIZE_JoinReq 6
semsem 0:8b449140caa2 56 #define BUFFER_SIZE_JoinAccept 14
semsem 0:8b449140caa2 57 #define BUFFER_SIZE_Ack 2
semsem 0:8b449140caa2 58 #define BUFFER_SIZE_Beacon 1
semsem 0:8b449140caa2 59 #define BUFFER_SIZE_TDMA_DATA 50
semsem 0:8b449140caa2 60
semsem 0:8b449140caa2 61 /*
semsem 0:8b449140caa2 62 * Beacons Synch Words
semsem 0:8b449140caa2 63 */
semsem 0:8b449140caa2 64
semsem 0:8b449140caa2 65 #define SETUP_BEACON_SYNCWORD 0x74
semsem 0:8b449140caa2 66 #define BEACON_SYNCWORD 0x74
semsem 0:8b449140caa2 67
semsem 0:8b449140caa2 68 /*
semsem 0:8b449140caa2 69 * SuperSlot Phases Intervals
semsem 0:8b449140caa2 70 */
semsem 0:8b449140caa2 71
semsem 0:8b449140caa2 72 #define BEACON_SET_UP_INTERVAL 1.2
semsem 0:8b449140caa2 73 #define SET_UP_INTERVAL 19.8
semsem 0:8b449140caa2 74 #define TDMA_INTERVAL 39