Jackson Lv / Mbed 2 deprecated BLENano_RGB_Demo_DAP

Dependencies:   BLE_API ChainableLED mbed nRF51822

Fork of BLENano_RGB_Demo by Jackson Lv

Committer:
Jackson_lv
Date:
Wed Apr 27 09:52:09 2016 +0000
Revision:
2:12ee9ad6d00c
Parent:
1:e7dc9b3590dd
BLE Nano RGB demo with DAP board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jackson_lv 0:fdf9102c0736 1 /*
Jackson_lv 0:fdf9102c0736 2
Jackson_lv 0:fdf9102c0736 3 Copyright (c) 2012-2014 RedBearLab
Jackson_lv 0:fdf9102c0736 4
Jackson_lv 0:fdf9102c0736 5 Permission is hereby granted, free of charge, to any person obtaining a copy of this software
Jackson_lv 0:fdf9102c0736 6 and associated documentation files (the "Software"), to deal in the Software without restriction,
Jackson_lv 0:fdf9102c0736 7 including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
Jackson_lv 0:fdf9102c0736 8 and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
Jackson_lv 0:fdf9102c0736 9 subject to the following conditions:
Jackson_lv 0:fdf9102c0736 10 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Jackson_lv 0:fdf9102c0736 11
Jackson_lv 0:fdf9102c0736 12 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
Jackson_lv 0:fdf9102c0736 13 INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
Jackson_lv 0:fdf9102c0736 14 PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
Jackson_lv 0:fdf9102c0736 15 FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
Jackson_lv 0:fdf9102c0736 16 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Jackson_lv 0:fdf9102c0736 17
Jackson_lv 0:fdf9102c0736 18 */
Jackson_lv 0:fdf9102c0736 19
Jackson_lv 0:fdf9102c0736 20 #include "mbed.h"
Jackson_lv 0:fdf9102c0736 21 #include "ble/BLE.h"
Jackson_lv 0:fdf9102c0736 22 #include "ChainableLED.h"
Jackson_lv 0:fdf9102c0736 23
Jackson_lv 0:fdf9102c0736 24 /******************************************************
Jackson_lv 0:fdf9102c0736 25 * Macros
Jackson_lv 0:fdf9102c0736 26 ******************************************************/
Jackson_lv 0:fdf9102c0736 27 #define BLE_UUID_TXRX_SERVICE 0x0000 /**< The UUID of the Nordic UART Service. */
Jackson_lv 0:fdf9102c0736 28 #define BLE_UUID_TX_CHARACTERISTIC 0x0002 /**< The UUID of the TX Characteristic. */
Jackson_lv 0:fdf9102c0736 29 #define BLE_UUIDS_RX_CHARACTERISTIC 0x0003 /**< The UUID of the RX Characteristic. */
Jackson_lv 0:fdf9102c0736 30
Jackson_lv 0:fdf9102c0736 31 #define TXRX_BUF_LEN 5
Jackson_lv 0:fdf9102c0736 32
Jackson_lv 0:fdf9102c0736 33 #define LOCAL_NAME "RGB-L"
Jackson_lv 2:12ee9ad6d00c 34 #define BUTTON_PIN P0_11//D0
Jackson_lv 2:12ee9ad6d00c 35 #define RGB_CLK_PIN P0_10//D2
Jackson_lv 2:12ee9ad6d00c 36 #define RGB_DIO_PIN P0_8//D3
Jackson_lv 0:fdf9102c0736 37 #define DEVICE_ID 0xFF
Jackson_lv 0:fdf9102c0736 38 #define LIGHT_PIN P0_5//A3
Jackson_lv 0:fdf9102c0736 39 #define VOL_PIN P0_4//A4
Jackson_lv 0:fdf9102c0736 40
Jackson_lv 0:fdf9102c0736 41 /******************************************************
Jackson_lv 0:fdf9102c0736 42 * Variable Definitions
Jackson_lv 0:fdf9102c0736 43 ******************************************************/
Jackson_lv 0:fdf9102c0736 44
Jackson_lv 0:fdf9102c0736 45 InterruptIn button(BUTTON_PIN);
Jackson_lv 0:fdf9102c0736 46
Jackson_lv 0:fdf9102c0736 47 BLEDevice ble;
Jackson_lv 0:fdf9102c0736 48
Jackson_lv 2:12ee9ad6d00c 49 ChainableLED leds(RGB_CLK_PIN, RGB_DIO_PIN, 1);
Jackson_lv 0:fdf9102c0736 50
Jackson_lv 0:fdf9102c0736 51 AnalogIn light_sen(LIGHT_PIN);
Jackson_lv 0:fdf9102c0736 52 AnalogIn vin(VOL_PIN);
Jackson_lv 0:fdf9102c0736 53
Jackson_lv 0:fdf9102c0736 54 DigitalOut myled(P0_19);
Jackson_lv 0:fdf9102c0736 55
Jackson_lv 0:fdf9102c0736 56 static uint8_t rgb_data[5]={0xA5,0xFF,0xFF, 0xFF, 0xFF};
Jackson_lv 0:fdf9102c0736 57 static unsigned char rgb_status=0;
Jackson_lv 0:fdf9102c0736 58
Jackson_lv 0:fdf9102c0736 59 static uint8_t light_flag = 0;
Jackson_lv 0:fdf9102c0736 60
Jackson_lv 0:fdf9102c0736 61 // The Nordic UART Service
Jackson_lv 0:fdf9102c0736 62 static const uint8_t uart_base_uuid[] = {0x5A, 0x2D, 0x3B, 0xF8, 0xF0, 0xBC, 0x11, 0xE5, 0x9C, 0xE9, 0x5E, 0x55, 0x17, 0x50, 0x7E, 0x66};
Jackson_lv 0:fdf9102c0736 63 static const uint8_t uart_tx_uuid[] = {0x5A, 0x2D, 0x40, 0xEE, 0xF0, 0xBC, 0x11, 0xE5, 0x9C, 0xE9, 0x5E, 0x55, 0x17, 0x50, 0x7E, 0x66};
Jackson_lv 0:fdf9102c0736 64 static const uint8_t uart_rx_uuid[] = {0x5A, 0x2D, 0x42, 0x9C, 0xF0, 0xBC, 0x11, 0xE5, 0x9C, 0xE9, 0x5E, 0x55, 0x17, 0x50, 0x7E, 0x66};
Jackson_lv 0:fdf9102c0736 65 static const uint8_t uart_light_uuid[] = {0x5A, 0x2D, 0x43, 0x78, 0xF0, 0xBC, 0x11, 0xE5, 0x9C, 0xE9, 0x5E, 0x55, 0x17, 0x50, 0x7E, 0x66};
Jackson_lv 0:fdf9102c0736 66 static const uint8_t uart_base_uuid_rev[] = {0x66, 0x7E, 0x50, 0x17, 0x55, 0x5E, 0xE9, 0x9C, 0xE5, 0x11, 0xBC, 0xF0, 0xF8, 0x3B, 0x2D, 0x5A};
Jackson_lv 0:fdf9102c0736 67
Jackson_lv 0:fdf9102c0736 68
Jackson_lv 0:fdf9102c0736 69 uint8_t txPayload[TXRX_BUF_LEN] = {0,0,0,0,0};
Jackson_lv 0:fdf9102c0736 70 uint8_t rxPayload[TXRX_BUF_LEN] = {0,0,0,0,0};
Jackson_lv 0:fdf9102c0736 71 uint8_t lightPayload[TXRX_BUF_LEN] = {0,0,0,0,0};
Jackson_lv 0:fdf9102c0736 72 uint8_t vinPayload[TXRX_BUF_LEN] = {0,0,0,0,0};
Jackson_lv 0:fdf9102c0736 73
Jackson_lv 0:fdf9102c0736 74
Jackson_lv 0:fdf9102c0736 75 GattCharacteristic txCharacteristic (uart_tx_uuid, txPayload, 1, TXRX_BUF_LEN, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE );
Jackson_lv 0:fdf9102c0736 76
Jackson_lv 0:fdf9102c0736 77 GattCharacteristic rxCharacteristic (uart_rx_uuid, rxPayload, 1, TXRX_BUF_LEN, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ);
Jackson_lv 0:fdf9102c0736 78
Jackson_lv 0:fdf9102c0736 79 GattCharacteristic lightCharacteristic (uart_light_uuid, lightPayload, 1, TXRX_BUF_LEN, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY| GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ);
Jackson_lv 0:fdf9102c0736 80
Jackson_lv 0:fdf9102c0736 81 GattCharacteristic batCharacteristic (0x2A19, vinPayload, 1, TXRX_BUF_LEN, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY|GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ);
Jackson_lv 0:fdf9102c0736 82
Jackson_lv 0:fdf9102c0736 83 GattCharacteristic *uartChars[] = {&txCharacteristic, &rxCharacteristic,&lightCharacteristic,&batCharacteristic};
Jackson_lv 0:fdf9102c0736 84
Jackson_lv 0:fdf9102c0736 85 GattService uartService(uart_base_uuid, uartChars, sizeof(uartChars) / sizeof(GattCharacteristic *));
Jackson_lv 0:fdf9102c0736 86
Jackson_lv 0:fdf9102c0736 87
Jackson_lv 0:fdf9102c0736 88
Jackson_lv 0:fdf9102c0736 89 /******************************************************
Jackson_lv 0:fdf9102c0736 90 * Function Definitions
Jackson_lv 0:fdf9102c0736 91 ******************************************************/
Jackson_lv 0:fdf9102c0736 92
Jackson_lv 0:fdf9102c0736 93 static void connectCallBack(const Gap::ConnectionCallbackParams_t *params)
Jackson_lv 0:fdf9102c0736 94 {
Jackson_lv 1:e7dc9b3590dd 95 leds.setColorRGB(0, 0XFF, 0XFF, 0XFF);
Jackson_lv 0:fdf9102c0736 96 }
Jackson_lv 0:fdf9102c0736 97
Jackson_lv 0:fdf9102c0736 98
Jackson_lv 0:fdf9102c0736 99 void disconnectionCallBack(const Gap::DisconnectionCallbackParams_t *params)
Jackson_lv 0:fdf9102c0736 100 {
Jackson_lv 1:e7dc9b3590dd 101 leds.setColorRGB(0, 0, 0, 0);
Jackson_lv 0:fdf9102c0736 102 ble.gap().startAdvertising();
Jackson_lv 0:fdf9102c0736 103 }
Jackson_lv 0:fdf9102c0736 104
Jackson_lv 0:fdf9102c0736 105 void timeoutCallBack()
Jackson_lv 0:fdf9102c0736 106 {
Jackson_lv 0:fdf9102c0736 107
Jackson_lv 0:fdf9102c0736 108 }
Jackson_lv 0:fdf9102c0736 109
Jackson_lv 0:fdf9102c0736 110
Jackson_lv 0:fdf9102c0736 111
Jackson_lv 0:fdf9102c0736 112 // GATT call back handle
Jackson_lv 0:fdf9102c0736 113 void writtenHandle(const GattWriteCallbackParams *Handler)
Jackson_lv 0:fdf9102c0736 114 {
Jackson_lv 0:fdf9102c0736 115 uint8_t buf[TXRX_BUF_LEN];
Jackson_lv 0:fdf9102c0736 116 uint16_t bytesRead;
Jackson_lv 0:fdf9102c0736 117
Jackson_lv 0:fdf9102c0736 118 //pc.printf("Write Handle : \n");
Jackson_lv 0:fdf9102c0736 119
Jackson_lv 0:fdf9102c0736 120 if (Handler->handle == txCharacteristic.getValueAttribute().getHandle())
Jackson_lv 0:fdf9102c0736 121 {
Jackson_lv 0:fdf9102c0736 122 ble.readCharacteristicValue(txCharacteristic.getValueAttribute().getHandle(), buf, &bytesRead);
Jackson_lv 0:fdf9102c0736 123 memset(txPayload, 0, TXRX_BUF_LEN);
Jackson_lv 0:fdf9102c0736 124 memcpy(txPayload, buf, TXRX_BUF_LEN);
Jackson_lv 0:fdf9102c0736 125
Jackson_lv 0:fdf9102c0736 126 if( (buf[2] != 0x00) || (buf[3] != 0x00) || (buf[4] != 0x00) )
Jackson_lv 0:fdf9102c0736 127 {
Jackson_lv 0:fdf9102c0736 128 rgb_status = 1;
Jackson_lv 0:fdf9102c0736 129 leds.setColorRGB(0, buf[2], buf[3], buf[4]);
Jackson_lv 0:fdf9102c0736 130 rgb_data[0] = 0xA5;
Jackson_lv 0:fdf9102c0736 131 rgb_data[1] = 0xff;
Jackson_lv 0:fdf9102c0736 132 rgb_data[2] = buf[2];
Jackson_lv 0:fdf9102c0736 133 rgb_data[3] = buf[3];
Jackson_lv 0:fdf9102c0736 134 rgb_data[4] = buf[4];
Jackson_lv 0:fdf9102c0736 135 ble.updateCharacteristicValue(rxCharacteristic.getValueAttribute().getHandle(), buf, 5, true);
Jackson_lv 0:fdf9102c0736 136 }
Jackson_lv 0:fdf9102c0736 137 else
Jackson_lv 0:fdf9102c0736 138 {
Jackson_lv 0:fdf9102c0736 139 rgb_status = 0;
Jackson_lv 0:fdf9102c0736 140 leds.setColorRGB(0, 0, 0, 0);
Jackson_lv 0:fdf9102c0736 141 ble.updateCharacteristicValue(rxCharacteristic.getValueAttribute().getHandle(), buf, 5, true);
Jackson_lv 0:fdf9102c0736 142 }
Jackson_lv 0:fdf9102c0736 143 }
Jackson_lv 0:fdf9102c0736 144 }
Jackson_lv 0:fdf9102c0736 145
Jackson_lv 0:fdf9102c0736 146 //switch on/off the rgb led and notify the value
Jackson_lv 0:fdf9102c0736 147 void button_handle()
Jackson_lv 0:fdf9102c0736 148 {
Jackson_lv 0:fdf9102c0736 149 uint8_t buf[5];
Jackson_lv 0:fdf9102c0736 150 buf[0] = 0xA5;
Jackson_lv 0:fdf9102c0736 151 buf[1] = 0xff;
Jackson_lv 0:fdf9102c0736 152 if(rgb_status == 0)
Jackson_lv 0:fdf9102c0736 153 {
Jackson_lv 0:fdf9102c0736 154 rgb_status = 1;
Jackson_lv 0:fdf9102c0736 155 leds.setColorRGB(0, rgb_data[2], rgb_data[3], rgb_data[4]);
Jackson_lv 0:fdf9102c0736 156 buf[2] = rgb_data[2];
Jackson_lv 0:fdf9102c0736 157 buf[3] = rgb_data[3];
Jackson_lv 0:fdf9102c0736 158 buf[4] = rgb_data[4];
Jackson_lv 0:fdf9102c0736 159 }
Jackson_lv 0:fdf9102c0736 160 else
Jackson_lv 0:fdf9102c0736 161 {
Jackson_lv 0:fdf9102c0736 162 rgb_status = 0;
Jackson_lv 0:fdf9102c0736 163 leds.setColorRGB(0, 0, 0, 0);
Jackson_lv 0:fdf9102c0736 164 buf[2] = 0x00;
Jackson_lv 0:fdf9102c0736 165 buf[3] = 0x00;
Jackson_lv 0:fdf9102c0736 166 buf[4] = 0x00;
Jackson_lv 0:fdf9102c0736 167 }
Jackson_lv 0:fdf9102c0736 168 ble.updateCharacteristicValue(rxCharacteristic.getValueAttribute().getHandle(), buf, 5);
Jackson_lv 0:fdf9102c0736 169
Jackson_lv 0:fdf9102c0736 170 }
Jackson_lv 0:fdf9102c0736 171
Jackson_lv 0:fdf9102c0736 172 //check the light value and battery value
Jackson_lv 0:fdf9102c0736 173 void m_status_check_handle(void)
Jackson_lv 0:fdf9102c0736 174 {
Jackson_lv 0:fdf9102c0736 175 uint16_t light_value, vin_val=0;
Jackson_lv 0:fdf9102c0736 176 uint8_t light_buf[2] = {0,0};
Jackson_lv 0:fdf9102c0736 177
Jackson_lv 0:fdf9102c0736 178 uint8_t vin_buf[2] = {0,0};
Jackson_lv 0:fdf9102c0736 179
Jackson_lv 0:fdf9102c0736 180 light_value = light_sen.read_u16();
Jackson_lv 0:fdf9102c0736 181
Jackson_lv 0:fdf9102c0736 182 light_buf[0] = (light_value&0xFF00)>>8;
Jackson_lv 0:fdf9102c0736 183 light_buf[1] = light_value&0x00FF;
Jackson_lv 0:fdf9102c0736 184
Jackson_lv 0:fdf9102c0736 185 vin_val = vin.read_u16();
Jackson_lv 0:fdf9102c0736 186
Jackson_lv 0:fdf9102c0736 187 vin_buf[0] = (vin_val&0xFF00)>>8;
Jackson_lv 0:fdf9102c0736 188 vin_buf[1] = vin_val&0x00FF;
Jackson_lv 0:fdf9102c0736 189
Jackson_lv 0:fdf9102c0736 190
Jackson_lv 0:fdf9102c0736 191 ble.updateCharacteristicValue(batCharacteristic.getValueAttribute().getHandle(),vin_buf , 2,true);
Jackson_lv 0:fdf9102c0736 192 if(vin_val<0x230)
Jackson_lv 0:fdf9102c0736 193 {
Jackson_lv 0:fdf9102c0736 194 ble.updateCharacteristicValue(batCharacteristic.getValueAttribute().getHandle(),vin_buf , 2);
Jackson_lv 0:fdf9102c0736 195 }
Jackson_lv 0:fdf9102c0736 196 //trigger value is 0x100,you can change it base your environment
Jackson_lv 0:fdf9102c0736 197 if((light_value<0x100)&&(light_flag==0))
Jackson_lv 0:fdf9102c0736 198 {
Jackson_lv 0:fdf9102c0736 199 ble.updateCharacteristicValue(lightCharacteristic.getValueAttribute().getHandle(),light_buf , 2);
Jackson_lv 0:fdf9102c0736 200 light_flag = 1;
Jackson_lv 0:fdf9102c0736 201 }
Jackson_lv 0:fdf9102c0736 202 if((light_value>0x100)&&(light_flag==1))
Jackson_lv 0:fdf9102c0736 203 {
Jackson_lv 0:fdf9102c0736 204 ble.updateCharacteristicValue(lightCharacteristic.getValueAttribute().getHandle(),light_buf , 2);
Jackson_lv 0:fdf9102c0736 205 light_flag = 0;
Jackson_lv 0:fdf9102c0736 206 }
Jackson_lv 0:fdf9102c0736 207
Jackson_lv 0:fdf9102c0736 208 }
Jackson_lv 0:fdf9102c0736 209
Jackson_lv 0:fdf9102c0736 210 int main() {
Jackson_lv 0:fdf9102c0736 211
Jackson_lv 0:fdf9102c0736 212
Jackson_lv 0:fdf9102c0736 213 uint8_t buf[5] = {0xA5,0xFF,0x00, 0x00, 0x00};
Jackson_lv 0:fdf9102c0736 214
Jackson_lv 0:fdf9102c0736 215 rgb_status = 0;
Jackson_lv 0:fdf9102c0736 216 leds.setColorRGB(0, 0, 0, 0);
Jackson_lv 0:fdf9102c0736 217
Jackson_lv 2:12ee9ad6d00c 218 button.mode(PullDown);
Jackson_lv 2:12ee9ad6d00c 219 button.rise(&button_handle);
Jackson_lv 0:fdf9102c0736 220 Ticker ticker;
Jackson_lv 0:fdf9102c0736 221 ticker.attach_us(m_status_check_handle, 200000);
Jackson_lv 0:fdf9102c0736 222
Jackson_lv 0:fdf9102c0736 223 ble.init();
Jackson_lv 0:fdf9102c0736 224
Jackson_lv 0:fdf9102c0736 225 ble.onConnection(connectCallBack);
Jackson_lv 0:fdf9102c0736 226 ble.onDisconnection(disconnectionCallBack);
Jackson_lv 0:fdf9102c0736 227 ble.onDataWritten(writtenHandle);
Jackson_lv 0:fdf9102c0736 228
Jackson_lv 0:fdf9102c0736 229
Jackson_lv 0:fdf9102c0736 230 // setup adv_data and srp_data
Jackson_lv 0:fdf9102c0736 231 ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
Jackson_lv 0:fdf9102c0736 232
Jackson_lv 0:fdf9102c0736 233 ble.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME,
Jackson_lv 0:fdf9102c0736 234 (const uint8_t *)LOCAL_NAME, sizeof(LOCAL_NAME) - 1);
Jackson_lv 0:fdf9102c0736 235 ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS,
Jackson_lv 0:fdf9102c0736 236 (const uint8_t *)uart_base_uuid_rev, sizeof(uart_base_uuid_rev));
Jackson_lv 0:fdf9102c0736 237
Jackson_lv 0:fdf9102c0736 238 // add service
Jackson_lv 0:fdf9102c0736 239 ble.addService(uartService);
Jackson_lv 0:fdf9102c0736 240 // set device name
Jackson_lv 0:fdf9102c0736 241 ble.setDeviceName((const uint8_t *)LOCAL_NAME);
Jackson_lv 0:fdf9102c0736 242 // set appearance
Jackson_lv 0:fdf9102c0736 243 //ble.setAppearance(BLE_APPEARANCE_UNKNOWN);
Jackson_lv 0:fdf9102c0736 244 // set tx power,valid values are -40, -20, -16, -12, -8, -4, 0, 4
Jackson_lv 0:fdf9102c0736 245 ble.setTxPower(4);
Jackson_lv 0:fdf9102c0736 246 // set adv_type
Jackson_lv 0:fdf9102c0736 247 ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
Jackson_lv 0:fdf9102c0736 248 // set adv_interval, 100ms in multiples of 0.625ms.
Jackson_lv 0:fdf9102c0736 249 ble.setAdvertisingInterval(160);
Jackson_lv 0:fdf9102c0736 250 // set adv_timeout, in seconds
Jackson_lv 0:fdf9102c0736 251 ble.setAdvertisingTimeout(0);
Jackson_lv 0:fdf9102c0736 252 // ger BLE stack version
Jackson_lv 0:fdf9102c0736 253 //pc.printf( ble.getVersion() );
Jackson_lv 0:fdf9102c0736 254 // set RGB default status
Jackson_lv 0:fdf9102c0736 255 ble.updateCharacteristicValue(rxCharacteristic.getValueAttribute().getHandle(), buf, 5, true);
Jackson_lv 0:fdf9102c0736 256 // start advertising
Jackson_lv 0:fdf9102c0736 257 ble.startAdvertising();
Jackson_lv 0:fdf9102c0736 258
Jackson_lv 0:fdf9102c0736 259 memset(rgb_data, 0xFF, 5);
Jackson_lv 0:fdf9102c0736 260 myled = 1;
Jackson_lv 0:fdf9102c0736 261
Jackson_lv 0:fdf9102c0736 262 while(1)
Jackson_lv 0:fdf9102c0736 263 {
Jackson_lv 0:fdf9102c0736 264
Jackson_lv 0:fdf9102c0736 265 ble.waitForEvent();
Jackson_lv 0:fdf9102c0736 266
Jackson_lv 0:fdf9102c0736 267 }
Jackson_lv 0:fdf9102c0736 268
Jackson_lv 0:fdf9102c0736 269
Jackson_lv 0:fdf9102c0736 270 }
Jackson_lv 0:fdf9102c0736 271
Jackson_lv 0:fdf9102c0736 272
Jackson_lv 0:fdf9102c0736 273
Jackson_lv 0:fdf9102c0736 274
Jackson_lv 0:fdf9102c0736 275
Jackson_lv 0:fdf9102c0736 276
Jackson_lv 0:fdf9102c0736 277
Jackson_lv 0:fdf9102c0736 278
Jackson_lv 0:fdf9102c0736 279
Jackson_lv 0:fdf9102c0736 280
Jackson_lv 0:fdf9102c0736 281
Jackson_lv 0:fdf9102c0736 282
Jackson_lv 0:fdf9102c0736 283
Jackson_lv 0:fdf9102c0736 284
Jackson_lv 0:fdf9102c0736 285
Jackson_lv 0:fdf9102c0736 286
Jackson_lv 0:fdf9102c0736 287
Jackson_lv 0:fdf9102c0736 288
Jackson_lv 0:fdf9102c0736 289
Jackson_lv 0:fdf9102c0736 290
Jackson_lv 0:fdf9102c0736 291
Jackson_lv 0:fdf9102c0736 292
Jackson_lv 0:fdf9102c0736 293
Jackson_lv 0:fdf9102c0736 294
Jackson_lv 0:fdf9102c0736 295
Jackson_lv 0:fdf9102c0736 296
Jackson_lv 0:fdf9102c0736 297
Jackson_lv 0:fdf9102c0736 298
Jackson_lv 0:fdf9102c0736 299
Jackson_lv 0:fdf9102c0736 300
Jackson_lv 0:fdf9102c0736 301