Degree Computation

Dependencies:   aconno_SEGGER_RTT LSM9DS1 Si7006A20 adc52832_common aconnoMPL115A1 aconno_bsp

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* 
00002  * aconno.de
00003  * Made by Jurica Resetar
00004  * Edited by Karlo Milicevic
00005  * Edited by Dominik Bartolovic
00006  * All right reserved 
00007  *
00008  */
00009 
00010 #include "mbed.h"
00011 #include "ble/BLE.h"
00012 #include "acd52832_bsp.h"
00013 #include "GapAdvertisingData.h"
00014 #include "aconnoConfig.h"
00015 #include "Si7006A20.h"
00016 #include "LSM9DS1.h"
00017 #include "adc52832_common/utilities.h"
00018 #include "acd_nrf52_saadc.h"
00019 #include "tasks.h"
00020 #include <events/mbed_events.h>
00021 #include "aconnoHelpers.h"
00022 
00023 GapAdvertisingData adv_data = GapAdvertisingData();
00024 advertising_packet advertisementPacket;
00025 DigitalOut lightPower(p28);
00026 DigitalOut temperaturePower(p31);
00027 DigitalOut shdn(p6);
00028 DigitalOut power(p2);
00029 
00030 Thread updateDataThread;
00031 Thread sendDataThread;
00032 
00033 EventQueue eventQueue;
00034 
00035 /**
00036  * Callback triggered when the ble initialization process has finished
00037  */
00038 void bleInitComplete(BLE::InitializationCompleteCallbackContext *params)
00039 {
00040     BLE &ble = BLE::Instance();
00041 
00042     advertisementPacket.header = APPLICATION_ID;
00043     /* setup advertising */
00044     ble.gap().accumulateAdvertisingPayload(
00045         GapAdvertisingData::BREDR_NOT_SUPPORTED);
00046     ble.gap().accumulateAdvertisingPayload(
00047         GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, 
00048         (uint8_t *)&advertisementPacket, sizeof(advertisementPacket));
00049     ble.gap().setAdvertisingType(
00050         GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED);    
00051     ble.gap().setAdvertisingInterval(ADV_INTERVAL_MS);
00052     ble.gap().setTxPower(TX_POWER_DB);        // Set TX power to TX_POWER 
00053 }
00054 
00055 void scheduleBleEventsProcessing(BLE::OnEventsToProcessCallbackContext* context)
00056 {
00057     BLE &ble = BLE::Instance();
00058     eventQueue.call(Callback<void()>(&ble, &BLE::processEvents));
00059 }
00060 
00061 int main()
00062 {
00063     BLE &ble = BLE::Instance();
00064     ble.init(bleInitComplete);
00065     ble.onEventsToProcess(scheduleBleEventsProcessing);
00066     while (ble.hasInitialized()  == false) { /* spin loop */ }
00067     
00068     updateDataThread.start(updateDataTask);
00069     sendDataThread.start(sendDataTask);
00070 
00071     while(true)
00072     {
00073         Thread::wait(0xFFFFFFFF);
00074     }
00075 }