Dependencies: BLE_API mbed BLE_nRF8001 DebounceIn
main.cpp@2:f266f102ca80, 2015-03-21 (annotated)
- 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?
User | Revision | Line number | New 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 |