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
Diff: board/board.cpp
- 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 ) ); +} +