Degree Computation
Dependencies: aconno_SEGGER_RTT LSM9DS1 Si7006A20 adc52832_common aconnoMPL115A1 aconno_bsp
source/main.cpp
- Committer:
- jurica238814
- Date:
- 2018-12-12
- Revision:
- 0:442d98af8cc7
- Child:
- 3:b62a73dc76b7
File content as of revision 0:442d98af8cc7:
/*
* 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;
LSM9DS1 *mems;
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()
{
//printf("Main started.\r\n");
BLE &ble = BLE::Instance();
ble.init(bleInitComplete);
ble.onEventsToProcess(scheduleBleEventsProcessing);
while (ble.hasInitialized() == false) { /* spin loop */ }
updateDataThread.start(updateDataTask);
sendDataThread.start(sendDataTask);
/*
//DigitalOut bar(I2C_DATA);
//DigitalOut foo(I2C_CLK);
I2C *i2c;
float result;
while(true)
{
power = 1;
ThisThread::sleep_for(500);
i2c = new I2C(I2C_DATA, I2C_CLK);
//I2C i2c(I2C_DATA, I2C_CLK);
Si7006 si(i2c);
si.getHumidity(&result);
printf("Humidity is: %f\r\n", result);
power = 0;
//wait_ms(1000);
//foo = 1;
//bar = 1;
//I2C fooI2C(I2C_DATA, I2C_CLK);
ThisThread::sleep_for(1000);
}
*/
while(true)
{
Thread::wait(0xFFFFFFFF);
}
}

