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

