Degree Computation
Dependencies: aconno_SEGGER_RTT LSM9DS1 Si7006A20 adc52832_common aconnoMPL115A1 aconno_bsp
Diff: source/main.cpp
- Revision:
- 0:442d98af8cc7
- Child:
- 3:b62a73dc76b7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/main.cpp Wed Dec 12 19:28:16 2018 +0100 @@ -0,0 +1,104 @@ +/* + * 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); + } +}