Geo beacon for VF.
Dependencies: MMA8452 aconno_bsp adc52832_common
Diff: main.cpp
- Revision:
- 22:8d106fd5fa84
- Parent:
- 21:10c3b8176be0
- Child:
- 23:729717272b31
--- a/main.cpp Mon Aug 28 14:12:10 2017 +0000 +++ b/main.cpp Mon Aug 28 19:58:11 2017 +0000 @@ -13,6 +13,7 @@ #include "mma8452.h" #include "AckService.h" #include "nrf52_uart.h" +#include "nrf52_digital.h" #define DEBUG (0) #define DEBUG_ACC (0) @@ -21,9 +22,9 @@ #define DEBUG_CONNECTION (0) #define USE_ACC (0) -#define SLEEP_TIME_S (5.0) /* Sleep time (in s) */ -#define ADV_TIMER_TIME_S (5.0) /* Advertising time (in s) */ -#define SCAN_TIMER_TIME_S (5.0) /* Scanning time (in s) */ +#define SLEEP_TIME_S (9.0) /* Sleep time (in s) */ +#define ADV_TIMER_TIME_S (0.5) /* Advertising time (in s) */ +#define SCAN_TIMER_TIME_S (0.5) /* Scanning time (in s) */ #define FREE_TIME_S (0.1) /* Time between end of a scanning and sleep mode */ #define AWAKE_TIME_S (ADV_TIMER_TIME_S+SCAN_TIMER_TIME_S+FREE_TIME_S) /* Was 0.15 */ #define SHORT_SLEEP_TIME_S (0.5) /* Shorter sleep time (s) */ @@ -84,7 +85,6 @@ Ticker WakeSleepT; Ticker turnBuzzOffT; Ticker sleepChanger; -//PwmOut buzzer(BUZZER); NRF52_DigitalOut buzzer(BUZZER); #if USE_ACC DigitalOut accPower(p7); @@ -95,7 +95,7 @@ BLE &ble = BLE::Instance(); ACKService<4> *ackServicePtr; -#if DEBUG || DEBUG_MAC +#if DEBUG || DEBUG_MAC || DEBUG_CONNECTION DigitalOut advLED(p22); // Red DigitalOut scanLED(p23); // Blue DigitalOut connectedLED(p24); // Green @@ -105,6 +105,16 @@ DigitalOut int_led(p22); #endif +void buzz(uint16_t period_us, uint32_t duration_ms){ + int32_t counter; + for(counter=0; counter<((duration_ms*1000)/(period_us*1.0)); counter++){ + buzzer.toggle(); + wait_us(period_us/2); + buzzer.toggle(); + wait_us(period_us/2); + } + buzzer = 0; +} void onConnectionCallback(const Gap::ConnectionCallbackParams_t *params){ #if DEBUG_CONNECTION @@ -166,11 +176,9 @@ connectedLED = 1; wait_ms(100); #endif - //buzzer.period(0.0009F); - //buzzer.write(0.5F); + buzz(900,1000); WakeSleepT.detach(); - turnBuzzOffT.detach(); - turnBuzzOffT.attach(TurnBuzzOff, BUZZ_TIME_S); + WakeSleepT.attach(WakeMeUp, FREE_TIME_S); /* This function should make advertiser stop */ @@ -304,11 +312,9 @@ if ((params->advertisingData[msdOffset+2]) == 0x00){ if(CheckMac(params, myMacAddress, msdOffset)){ //ble.gap().stopScan(); - //buzzer.period(0.0009F); - //buzzer.write(0.5F); + buzz(900,1000); WakeSleepT.detach(); - turnBuzzOffT.detach(); - turnBuzzOffT.attach(TurnBuzzOff, BUZZ_TIME_S); + WakeSleepT.attach(WakeMeUp, FREE_TIME_S); } } }