Slave Implementation of WANOT Slave

Dependencies:   SX1276Lib mbed-src

Committer:
semsem
Date:
Mon May 23 22:28:07 2016 +0000
Revision:
0:80ebf9b1dd4f
WANOT

Who changed what in which revision?

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