Lizzy project
Dependencies: aconno_I2C Lis2dh12 adc52832_common aconno_SEGGER_RTT
Diff: tasks/tasks.cpp
- Branch:
- SimpleGATTExample
- Revision:
- 22:7dae8496b97c
- Parent:
- 19:2681edc2f2b9
--- a/tasks/tasks.cpp Thu Sep 13 12:20:35 2018 +0200 +++ b/tasks/tasks.cpp Thu Sep 13 15:14:14 2018 +0200 @@ -2,7 +2,6 @@ * Aconno.de */ -#include "bsp_buzz.h" #include "bspLed.h" #include "aconno_ble.h" #include "tasks.h" @@ -10,158 +9,32 @@ #include "aconnoConfig.h" #include "bsp.h" -Buzz buzzer(NRF_PWM2, BUZZER_PIN); +#define SHORT_DELAY_MS (75) static advertising_packet advertisementPacket; static GapAdvertisingData adv_data = GapAdvertisingData(); - -#if TEST_LEDS_BUZZ -Ticker test_ticker; -#endif - - -void tasks_init() +void updateBuzzLedsF() { -#if TEST_LEDS_BUZZ - test_ticker.attach(led_tick, 0.5); -#endif -} - -#if TEST_LEDS_BUZZ -void buzz_tick() -{ - static int start = 1; - - if (start) - { - buzzer.enable(); - start = 0; - } - else - { - buzzer.disable(); - start = 1; - led_tick(); - test_ticker.detach(); - test_ticker.attach(led_tick, 0.5); - } -} - -void led_tick() -{ - static int count = 0; - - switch(count) - { - case 0: - redLed = 0; - break; - - case 1: - redLed = 1; - greenLed = 0; - break; - - case 2: - greenLed = 1; - blueLed = 0; - break; - - default: - blueLed = 1; - count = -1; - buzz_tick(); - test_ticker.detach(); - test_ticker.attach(buzz_tick, BUZZ_TIME_S); - } - - count++; -} -#endif - -void measureF(Lis2dh12 *mems) -{ - while (1) - { - advertisementPacket.header = APPLICATION_ID; - advertisementPacket.type = 0x00; - advertisementPacket.gyroscope[0] = (int16_t)0; - advertisementPacket.gyroscope[1] = (int16_t)0; - advertisementPacket.gyroscope[2] = (int16_t)0; - advertisementPacket.magnetometer[0] = (int16_t)0; - advertisementPacket.magnetometer[1] = (int16_t)0; - advertisementPacket.magnetometer[2] = (int16_t)0; - - lisPowerCtrl(LIS_ON); - wait_ms(POWER_UP_DELAY_MS); - /* - //mems.setMode(LOW_POWER); - mems.setMode(HIGH_RES); - mems.enableAxes(X_axis); - mems.enableAxes(Y_axis); - mems.enableAxes(Z_axis); - mems.setODR(ODR_50Hz); - //mems.setScale(_16g); - mems.setScale(_2g); - mems.int1Setup(0x40); // IntActivity 1 driven to INT1 pad - mems.int1Latch(0x01); // Enable int1 latch - mems.int1Threshold(INT1_THRESHOLD); - mems.int1Duration(INT1_DUR); - mems.int1Config(0x2A); // Enable XHigh, YHigh and ZHigh - */ - - advertisementPacket.accelerometer[0] = (int16_t)mems->readXAxis(); - advertisementPacket.accelerometer[1] = (int16_t)mems->readYAxis(); - advertisementPacket.accelerometer[2] = (int16_t)mems->readZAxis(); - - advertisementPacket.acc_lsb_value = LSB_VALUE; - - updateServiceT.signal_set(MEAS_DONE); - bleT.signal_set(MEAS_DONE); - - lisPowerCtrl(LIS_OFF); - Thread::wait(MEASURE_INTERVAL_MS); - } -} - -void updateServiceF() -{ - while (1) - { - Thread::signal_wait(MEAS_DONE); - updateServiceT.signal_clr(MEAS_DONE); - - lizzy_service->set_acc_data(advertisementPacket.accelerometer); - } -} - -void updateBuzzLedsF() -{ - while (1) + while (true) { Thread::signal_wait(UPDATE_BUZZ_LEDS); updateBuzzLedsT.signal_clr(UPDATE_BUZZ_LEDS); - if (buzzer.get_state() != (lizzy_service->get_buzz_state())) - { - if (lizzy_service->get_buzz_state()) - buzzer.enable(); - else - buzzer.disable(); - } - if (!redLed != (lizzy_service->get_red_state())) + if (lizzy_service->get_red_state()) { - redLed = !(lizzy_service->get_red_state()); + redLed = LED_ON; + wait_ms(SHORT_DELAY_MS); + redLed = LED_OFF; + lizzy_service->set_red_state(LED_OFF); } - if (!greenLed != (lizzy_service->get_green_state())) + if (lizzy_service->get_green_state()) { - greenLed = !(lizzy_service->get_green_state()); - } - if (!blueLed != (lizzy_service->get_blue_state())) - { - blueLed = !(lizzy_service->get_blue_state()); + greenLed = LED_ON; + wait_ms(SHORT_DELAY_MS); + greenLed = LED_OFF; + lizzy_service->set_green_state(LED_OFF); } } } @@ -173,50 +46,9 @@ Thread::signal_wait(MEAS_DONE); bleT.signal_clr(MEAS_DONE); - /* - printf("%6d\t", advertisementPacket.accelerometer[0]); - printf("%6d\t", advertisementPacket.accelerometer[1]); - printf("%6d\r\n", advertisementPacket.accelerometer[2]); - */ - - //updatePayload(ble, &advertisementPacket); - - /* setup advertising */ - - - /* - GapAdvertisingData advetisementData = GapAdvertisingData(); - advetisementData = ble->getAdvertisingData(); - advetisementData.updateData(advetisementData.MANUFACTURER_SPECIFIC_DATA, (uint8_t *)&advertisementPacket, sizeof(advertising_packet)); - ble->setAdvertisingData(advetisementData); - */ adv_data = ble->getAdvertisingData(); - adv_data.updateData(adv_data.MANUFACTURER_SPECIFIC_DATA, (uint8_t *)&advertisementPacket, sizeof(advertisementPacket)); + adv_data.updateData(adv_data.MANUFACTURER_SPECIFIC_DATA, + (uint8_t *)&advertisementPacket, sizeof(advertisementPacket)); ble->setAdvertisingData(adv_data); - - - //printf("Ble advertisement is ON.\r\n"); - - #if DEBUG_LED - redLed = 0; - #endif - //ble->gap().startAdvertising(); - //wait_ms(1000); - - //wait_ms(MEASURE_INTERVAL_MS); - //wait_ms(1000); - - //printf("Ble advertisement is OFF.\r\n\r\n"); - #if DEBUG_LED - redLed = 1; - #endif - //ble->gap().stopAdvertising(); - /* - GapAdvertisingData advetisementData = GapAdvertisingData(); - advetisementData = ble->getAdvertisingData(); - advetisementData.updateData(advetisementData.MANUFACTURER_SPECIFIC_DATA, (uint8_t *)&advertisementPacket, sizeof(advertising_packet)); - ble->setAdvertisingData(advetisementData); - */ - //wait_ms(100); } }