Dependencies:   BLE_API mbed BLE_nRF8001 DebounceIn

Committer:
sitakumar
Date:
Sat Mar 21 17:48:29 2015 +0000
Revision:
2:f266f102ca80
Parent:
0:adcc621e5713
Child:
3:b3153fd49501
BLE connection established, communicates button presses via serial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sitakumar 0:adcc621e5713 1 #include "mbed.h"
sitakumar 2:f266f102ca80 2 //#include "DebounceIn.h"
sitakumar 2:f266f102ca80 3 #include "BLEPeripheral.h"
sitakumar 2:f266f102ca80 4
sitakumar 2:f266f102ca80 5 Serial serial(USBTX, USBRX);
sitakumar 2:f266f102ca80 6
sitakumar 2:f266f102ca80 7 // The SPI construct, REQN and RDYN IO construct should be modified manually
sitakumar 2:f266f102ca80 8 // It depend on the board you are using and the REQN&RDYN configuration on BLE Shield
sitakumar 2:f266f102ca80 9 SPI spi(PTD2, PTD3, PTD1);
sitakumar 2:f266f102ca80 10 DigitalInOut BLE_RDY(PTD5);
sitakumar 2:f266f102ca80 11 DigitalInOut BLE_REQ(PTD0);
sitakumar 2:f266f102ca80 12 DigitalInOut BLE_RESET(PTA13);
sitakumar 2:f266f102ca80 13 DigitalIn pb(D4);
sitakumar 2:f266f102ca80 14 int count = 0;
sitakumar 2:f266f102ca80 15 unsigned char txbuf[16] = {0};
sitakumar 2:f266f102ca80 16 unsigned char txlen = 0;
sitakumar 2:f266f102ca80 17
sitakumar 2:f266f102ca80 18 /*----- BLE Utility -------------------------------------------------------------------------*/
sitakumar 2:f266f102ca80 19 // create peripheral instance, see pinouts above
sitakumar 2:f266f102ca80 20 BLEPeripheral blePeripheral = BLEPeripheral(&BLE_REQ, &BLE_RDY, NULL);
sitakumar 2:f266f102ca80 21
sitakumar 2:f266f102ca80 22 // create service
sitakumar 2:f266f102ca80 23 BLEService uartService = BLEService("713d0000503e4c75ba943148f18d941e");
sitakumar 2:f266f102ca80 24
sitakumar 2:f266f102ca80 25 // create characteristic
sitakumar 2:f266f102ca80 26 BLECharacteristic txCharacteristic = BLECharacteristic("713d0002503e4c75ba943148f18d941e", BLENotify, 20);
sitakumar 2:f266f102ca80 27 BLECharacteristic rxCharacteristic = BLECharacteristic("713d0003503e4c75ba943148f18d941e", BLEWriteWithoutResponse, 20);
sitakumar 2:f266f102ca80 28 /*--------------------------------------------------------------------------------------------*/
sitakumar 2:f266f102ca80 29
sitakumar 2:f266f102ca80 30 unsigned int interval = 0;
sitakumar 2:f266f102ca80 31 unsigned char count_on = 0;
sitakumar 2:f266f102ca80 32
sitakumar 2:f266f102ca80 33 int main()
sitakumar 2:f266f102ca80 34 {
sitakumar 2:f266f102ca80 35 serial.printf("Hello SmartD!\n");
sitakumar 2:f266f102ca80 36 //serial.baud(115200);
sitakumar 2:f266f102ca80 37 serial.printf("Serial begin!\r\n");
sitakumar 2:f266f102ca80 38
sitakumar 2:f266f102ca80 39 pb.mode(PullUp);
sitakumar 2:f266f102ca80 40 wait(.001);
sitakumar 2:f266f102ca80 41
sitakumar 2:f266f102ca80 42 /*----- BLE Utility ---------------------------------------------*/
sitakumar 2:f266f102ca80 43 // set advertised local name and service UUID
sitakumar 2:f266f102ca80 44 blePeripheral.setLocalName("Sita");
sitakumar 2:f266f102ca80 45
sitakumar 2:f266f102ca80 46 blePeripheral.setAdvertisedServiceUuid(uartService.uuid());
sitakumar 2:f266f102ca80 47
sitakumar 2:f266f102ca80 48 // add service and characteristic
sitakumar 2:f266f102ca80 49 blePeripheral.addAttribute(uartService);
sitakumar 2:f266f102ca80 50 blePeripheral.addAttribute(rxCharacteristic);
sitakumar 2:f266f102ca80 51 blePeripheral.addAttribute(txCharacteristic);
sitakumar 2:f266f102ca80 52
sitakumar 2:f266f102ca80 53 // begin initialization
sitakumar 2:f266f102ca80 54 blePeripheral.begin();
sitakumar 2:f266f102ca80 55 /*---------------------------------------------------------------*/
sitakumar 2:f266f102ca80 56
sitakumar 2:f266f102ca80 57 serial.printf("BLE UART Peripheral begin!\r\n");
sitakumar 2:f266f102ca80 58
sitakumar 2:f266f102ca80 59 while(1)
sitakumar 2:f266f102ca80 60 {
sitakumar 2:f266f102ca80 61 BLECentral central = blePeripheral.central();
sitakumar 2:f266f102ca80 62
sitakumar 2:f266f102ca80 63 if (central)
sitakumar 2:f266f102ca80 64 {
sitakumar 2:f266f102ca80 65 // central connected to peripheral
sitakumar 2:f266f102ca80 66 serial.printf("Connected to central\r\n");
sitakumar 2:f266f102ca80 67 while (central.connected())
sitakumar 2:f266f102ca80 68 {
sitakumar 2:f266f102ca80 69 // central still connected to peripheral
sitakumar 2:f266f102ca80 70 if (!pb)
sitakumar 2:f266f102ca80 71 {
sitakumar 2:f266f102ca80 72 count++;
sitakumar 2:f266f102ca80 73 wait(.5);
sitakumar 2:f266f102ca80 74 //serial.printf("%d",count);
sitakumar 2:f266f102ca80 75 }
sitakumar 2:f266f102ca80 76 if(count>0)
sitakumar 2:f266f102ca80 77 {serial.printf("button pressed\r\n");
sitakumar 2:f266f102ca80 78 count = 0;
sitakumar 2:f266f102ca80 79 wait (.5);}
sitakumar 2:f266f102ca80 80 }
sitakumar 2:f266f102ca80 81 }
sitakumar 2:f266f102ca80 82
sitakumar 2:f266f102ca80 83 // central disconnected
sitakumar 2:f266f102ca80 84 else
sitakumar 2:f266f102ca80 85 {
sitakumar 2:f266f102ca80 86 serial.printf("Disconnected from central\r\n");
sitakumar 2:f266f102ca80 87 }
sitakumar 2:f266f102ca80 88 }
sitakumar 2:f266f102ca80 89 }
sitakumar 0:adcc621e5713 90
sitakumar 0:adcc621e5713 91
sitakumar 2:f266f102ca80 92