Degree Computation

Dependencies:   aconno_SEGGER_RTT LSM9DS1 Si7006A20 adc52832_common aconnoMPL115A1 aconno_bsp

source/main.cpp

Committer:
Srishti12
Date:
2019-01-08
Revision:
4:cb3513aa9814
Parent:
3:b62a73dc76b7
Child:
5:6d20ad2a69ba

File content as of revision 4:cb3513aa9814:

/* 
 * aconno.de
 * Made by Jurica Resetar
 * Edited by Karlo Milicevic
 * Edited by Dominik Bartolovic
 * All right reserved 
 *
 */

#include "mbed.h"
#include "ble/BLE.h"
#include "acd52832_bsp.h"
#include "GapAdvertisingData.h"
#include "aconnoConfig.h"
#include "Si7006A20.h"
#include "LSM9DS1.h"
#include "adc52832_common/utilities.h"
#include "acd_nrf52_saadc.h"
#include "tasks.h"
#include <events/mbed_events.h>
#include "aconnoHelpers.h"

GapAdvertisingData adv_data = GapAdvertisingData();
advertising_packet advertisementPacket;
DigitalOut lightPower(p28);
DigitalOut temperaturePower(p31);
DigitalOut shdn(p6);
DigitalOut power(p2);

Thread updateDataThread;
Thread sendDataThread;

EventQueue eventQueue;

/**
 * Callback triggered when the ble initialization process has finished
 */
void bleInitComplete(BLE::InitializationCompleteCallbackContext *params)
{
    BLE &ble = BLE::Instance();

    //advertisementPacket.header = APPLICATION_ID;
    /* setup advertising */
    ble.gap().accumulateAdvertisingPayload(
        GapAdvertisingData::BREDR_NOT_SUPPORTED);
    ble.gap().accumulateAdvertisingPayload(
        GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, 
        (uint8_t *)&advertisementPacket, sizeof(advertisementPacket));
    ble.gap().setAdvertisingType(
        GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED);    
    ble.gap().setAdvertisingInterval(ADV_INTERVAL_MS);
    ble.gap().setTxPower(TX_POWER_DB);        // Set TX power to TX_POWER 
}

void scheduleBleEventsProcessing(BLE::OnEventsToProcessCallbackContext* context)
{
    BLE &ble = BLE::Instance();
    eventQueue.call(Callback<void()>(&ble, &BLE::processEvents));
}

int main()
{
    BLE &ble = BLE::Instance();
    ble.init(bleInitComplete);
    ble.onEventsToProcess(scheduleBleEventsProcessing);
    while (ble.hasInitialized()  == false) { /* spin loop */ }
    
    updateDataThread.start(updateDataTask);
    sendDataThread.start(sendDataTask);

    while(true)
    {
        Thread::wait(0xFFFFFFFF);
    }
}