LR Initial Publish

Dependencies:   X_NUCLEO_IKS01A2 driver_mbed_TH02 mbed LoRaWAN-lib-v1_0_1 SX1272Lib

Fork of Training-Aug2018-SX1272-X-NUCLEO-IKS01A2 by Uttam Bhat

Revision:
0:6cc76d70e2a1
Child:
1:428dbf097fe6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/board/board.cpp	Thu Apr 06 21:59:50 2017 +0000
@@ -0,0 +1,74 @@
+/*
+ / _____)             _              | |
+( (____  _____ ____ _| |_ _____  ____| |__
+ \____ \| ___ |    (_   _) ___ |/ ___)  _ \
+ _____) ) ____| | | || |_| ____( (___| | | |
+(______/|_____)_|_|_| \__)_____)\____)_| |_|
+    (C)2015 Semtech
+
+Description: Target board general functions implementation
+
+License: Revised BSD License, see LICENSE.TXT file include in the project
+
+Maintainer: Miguel Luis and Gregory Cristian
+*/
+#include "mbed.h"
+#include "board.h"
+
+DigitalIn I2cInterrupt( PB_4 );
+I2C I2c(I2C_SDA, I2C_SCL);
+
+DigitalOut Pc7( PC_7 );
+DigitalIn Pc1( PC_1 );
+
+DigitalIn UsrButton( PC_13 );
+
+#ifdef USE_IKS01A1_SENSOR
+X_NUCLEO_IKS01A1 *mems_expansion_board = X_NUCLEO_IKS01A1::Instance();
+MotionSensor *accelerometer = mems_expansion_board->GetAccelerometer();
+HumiditySensor *humidity_sensor = mems_expansion_board->ht_sensor;;
+PressureSensor *pressure_sensor = mems_expansion_board->pt_sensor;
+TempSensor *temp_sensor1 = mems_expansion_board->ht_sensor;
+TempSensor *temp_sensor2 = mems_expansion_board->pt_sensor;
+#endif
+
+SX1272MB2xAS Radio( NULL );
+
+void BoardInit( void )
+{
+    TimerTimeCounterInit( );
+}
+
+uint8_t BoardGetBatteryLevel( void ) 
+{
+    return 0xFE;
+}
+
+uint32_t BoardGetRandomSeed( void )
+{
+    return ( ( *( uint32_t* )ID1 ) ^ ( *( uint32_t* )ID2 ) ^ ( *( uint32_t* )ID3 ) );
+}
+
+void BoardGetDevEUI( uint8_t *id )
+{
+    uint32_t *pDevEuiHWord = ( uint32_t* )&id[4];
+
+    if( *pDevEuiHWord == 0 )
+    {        
+        *pDevEuiHWord = BoardGetRandomSeed( );
+    }
+    
+}
+
+void BoardGetUniqueId( uint8_t *id )
+{
+    id[7] = ( ( *( uint32_t* )ID1 )+ ( *( uint32_t* )ID3 ) ) >> 24;
+    id[6] = ( ( *( uint32_t* )ID1 )+ ( *( uint32_t* )ID3 ) ) >> 16;
+    id[5] = ( ( *( uint32_t* )ID1 )+ ( *( uint32_t* )ID3 ) ) >> 8;
+    id[4] = ( ( *( uint32_t* )ID1 )+ ( *( uint32_t* )ID3 ) );
+    id[3] = ( ( *( uint32_t* )ID2 ) ) >> 24;
+    id[2] = ( ( *( uint32_t* )ID2 ) ) >> 16;
+    id[1] = ( ( *( uint32_t* )ID2 ) ) >> 8;
+    id[0] = ( ( *( uint32_t* )ID2 ) );
+}
+