Master Implementation of WANOT

Dependencies:   SX1276Lib mbed

Revision:
0:8b449140caa2
diff -r 000000000000 -r 8b449140caa2 MasterBeacon.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MasterBeacon.cpp	Mon May 23 22:25:40 2016 +0000
@@ -0,0 +1,84 @@
+#include"WANOT.h"
+
+/*
+ *  Global variables declarations
+ */
+
+extern SuperSlotStates SuperSlotState; 
+
+extern RadioEvents_t RadioEvents;
+extern SX1276MB1xAS Radio;
+
+extern uint16_t BufferSize;
+extern uint8_t Buffer[];
+
+extern int16_t RssiValue;
+extern int8_t SnrValue;
+
+extern uint32_t LORA_Channels[NUMBER_OF_CHANNELS];
+
+extern uint8_t SlotNumber;
+extern uint8_t TDMAChannel;
+
+
+volatile uint8_t Beacon_Tx_Done = 0;
+void SetUp_Beacon_OnTxDone(void)
+{
+    Beacon_Tx_Done = 1;
+    debug("Beacon Tx Done!!\n\r");
+}
+
+
+void SetUp_Beacon(void)
+{
+    debug("Master Set Up Beacon Started...\n\r");
+    
+    Radio.SetTxConfig(MODEM_LORA, TX_OUTPUT_POWER, 0, SET_UP_LORA_BANDWIDTH,
+                      SET_UP_LORA_SPREADING_FACTOR, LORA_CODINGRATE,
+                      LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON,
+                      SET_UP_LORA_CRC_ENABLED, LORA_FHSS_ENABLED, LORA_NB_SYMB_HOP,
+                      LORA_IQ_INVERSION_ON, 2000000);
+
+    Radio.SetRxConfig(MODEM_LORA, SET_UP_LORA_BANDWIDTH, SET_UP_LORA_SPREADING_FACTOR,
+                      LORA_CODINGRATE, 0, LORA_PREAMBLE_LENGTH,
+                      LORA_SYMBOL_TIMEOUT, LORA_FIX_LENGTH_PAYLOAD_ON, 0,
+                      SET_UP_LORA_CRC_ENABLED, LORA_FHSS_ENABLED, LORA_NB_SYMB_HOP,
+                      LORA_IQ_INVERSION_ON, true);
+    Radio.SetChannel(SET_UP_FREQUENCY);
+
+    Beacon_Tx_Done = 0;
+    RadioEvents.TxDone = SetUp_Beacon_OnTxDone;
+    Radio.Init(&RadioEvents);
+
+    if (TDMAChannel != 0)
+        Radio.Sleep();
+    
+    wait_us(TDMAChannel * BEACON_TIMEOUT_VALUE);
+
+    Buffer[0] = SETUP_BEACON_SYNCWORD;
+    Buffer[1] = TDMAChannel;
+
+    Radio.Send(Buffer, BUFFER_SIZE_RTS);
+
+    while(Beacon_Tx_Done != 1);
+
+    debug("Beacon Sent\n\r");
+
+    Radio.SetTxConfig(MODEM_LORA, TX_OUTPUT_POWER, 0, SET_UP_LORA_BANDWIDTH,
+                      SET_UP_LORA_SPREADING_FACTOR, LORA_CODINGRATE,
+                      LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON,
+                      SET_UP_LORA_CRC_ENABLED, LORA_FHSS_ENABLED, LORA_NB_SYMB_HOP,
+                      LORA_IQ_INVERSION_ON, 2000000);
+
+    Radio.SetRxConfig(MODEM_LORA, SET_UP_LORA_BANDWIDTH, SET_UP_LORA_SPREADING_FACTOR,
+                      LORA_CODINGRATE, 0, LORA_PREAMBLE_LENGTH,
+                      LORA_SYMBOL_TIMEOUT, LORA_FIX_LENGTH_PAYLOAD_ON, 0,
+                      SET_UP_LORA_CRC_ENABLED, LORA_FHSS_ENABLED, LORA_NB_SYMB_HOP,
+                      LORA_IQ_INVERSION_ON, true);
+
+
+    Radio.SetChannel(LORA_Channels[TDMAChannel]);
+     
+    debug("Master Set Up Beacon Done!!\n\r");
+    //Sleep untill setup phase RTC
+}
\ No newline at end of file