Degree Computation

Dependencies:   aconno_SEGGER_RTT LSM9DS1 Si7006A20 adc52832_common aconnoMPL115A1 aconno_bsp

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);
+    }
+}