this is a test about ble and so on
Dependencies: BLE_API LinkNode_TemperatureAdvertising mbed nRF51822
Fork of LinkNode_Temperatur by
Diff: main.cpp
- Revision:
- 7:f84b0235958a
- Parent:
- 6:b3d3351aadc6
--- a/main.cpp Mon Feb 22 08:55:35 2016 +0000 +++ b/main.cpp Thu Apr 14 05:20:39 2016 +0000 @@ -14,14 +14,17 @@ BLE ble; Sensors tempSensor; -DigitalOut led(P0_20); +DigitalOut led_r(P0_20); +DigitalOut buzzer(P0_22); +InterruptIn btn(P0_28); +InterruptIn btn1(P0_29); static bool triggerTempValueUpdate = false; -const static char DEVICE_NAME[8] = "ls_test"; /*The size of the DEVICE_NAME[] can't change */ +static bool start_flag = false; +const static char DEVICE_NAME[8] = "Linkab"; /*The size of the DEVICE_NAME[] can't change */ void periodicCallback(void) { /* Do blinky on LED1 while we're waiting for BLE events */ - led = !led; triggerTempValueUpdate = true; } @@ -45,7 +48,7 @@ ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, (uint8_t *)&appData, sizeof(ApplicationData_t)); /* Set data */ /* Setup advertising parameters */ ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED); - ble.gap().setAdvertisingInterval(500); + ble.gap().setAdvertisingInterval(300); /* Start advertising */ ble.gap().startAdvertising(); } @@ -64,23 +67,71 @@ ble.gap().startAdvertising(); } +void start_mode(void) +{ + led_r=0; + wait(0.2); + led_r=1; + wait(0.2); + led_r=0; + wait(0.2); + led_r=1; + ble.gap().startAdvertising(); +} +void stop_mode(void) +{ + led_r=0; + wait(0.5); + led_r=1; + wait(0.5); + led_r=0; + wait(0.5); + led_r=1; + ble.gap().stopAdvertising(); +} + +void change_startmode(void) +{ + + start_flag=!start_flag; + if(start_flag==true) + { + start_mode(); + } + else + { + stop_mode(); + } + printf("The state is %d\n",start_flag); +} + + int main(void) { Ticker ticker; - /* Enable trigger every 2 seconds */ - ticker.attach(periodicCallback, 2); - + ticker.attach(periodicCallback,300); ble.init(); - /* Start data advertising */ + led_r=1; + buzzer=0; temperatureValueAdvertising(); - - while (true) { - if (triggerTempValueUpdate) + btn.fall(&change_startmode); + btn1.fall(&updateSensorValueInAdvPayload); + printf("This is a test!\n"); + while(true) + { + if(start_flag==true) + { + if (triggerTempValueUpdate) + { + updateSensorValueInAdvPayload(); + triggerTempValueUpdate = false; + } + ble.waitForEvent(); + } + else { - /* Update data value */ - updateSensorValueInAdvPayload(); - triggerTempValueUpdate = false; + ble.gap().stopAdvertising(); + ble.waitForEvent(); } - ble.waitForEvent(); - } + } }