Reference    Language | Libraries | Comparison | Changes
CurieBLE : BLECharacteristic class
BLECharacteristic constructor
Description
Characteristics contain at least two attributes: a characteristic declaration, which contains
metadata about the data, and the characteristic value, which contains the data itself.
Since characteristics have:
- names
- UUIDs
- values
- read/write/notify property
There are many Characteristic constructors depending on the data type you plan to use, like showed below.
Syntax
- BLEBoolCharacteristic yourCharacteristicName(UUID, properties)
- BLECharCharacteristic yourCharacteristicName(UUID, properties)
- BLEUnsignedCharCharacteristic yourCharacteristicName(UUID, properties)
- BLEShortCharacteristic yourCharacteristicName(UUID, properties)
- BLEUnsignedShortCharacteristic yourCharacteristicName(UUID, properties)
- BLEIntCharacteristic yourCharacteristicName(UUID, properties)
- BLEUnsignedIntCharacteristic yourCharacteristicName(UUID, properties)
- BLELongCharacteristic yourCharacteristicName(UUID, properties)
- BLEUnsignedLongCharacteristic yourCharacteristicName(UUID, properties)
- BLEFloatCharacteristic yourCharacteristicName(UUID, properties)
- BLEDoubleCharacteristic yourCharacteristicName(UUID, properties)
Note: BLE characteristics are typed.
Parameters
- UUID: standard 16-bit characteristic UUID
- properties: what remote clients will be able to get notifications if this characteristic changes. It can assume the following values:
- BLERead
- BLEWrite
- BLENotify
 
Example
  /*
 * Copyright (c) 2016 Intel Corporation.  All rights reserved.
 * See the bottom of this file for the license terms.
 */
#include <CurieBLE.h>
BLEPeripheral blePeripheral;  // BLE Peripheral Device (the board you're programming)
BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214"); // BLE LED Service
// BLE LED Switch Characteristic - custom 128-bit UUID, read and writable by central
BLEUnsignedCharCharacteristic switchCharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLEWrite);
const int ledPin = 13; // pin to use for the LED
void setup() {
  Serial.begin(9600);
  // set LED pin to output mode
  pinMode(ledPin, OUTPUT);
  // set advertised local name and service UUID:
  blePeripheral.setLocalName("LED");
  blePeripheral.setAdvertisedServiceUuid(ledService.uuid());
  // add service and characteristic:
  blePeripheral.addAttribute(ledService);
  blePeripheral.addAttribute(switchCharacteristic);
  // set the initial value for the characeristic:
  switchCharacteristic.setValue(0);
  // begin advertising BLE service:
  blePeripheral.begin();
  Serial.println("BLE LED Peripheral");
}
void loop() {
  // listen for BLE peripherals to connect:
  BLECentral central = blePeripheral.central();
  // if a central is connected to peripheral:
  if (central) {
    Serial.print("Connected to central: ");
    // print the central's MAC address:
    Serial.println(central.address());
    // while the central is still connected to peripheral:
    while (central.connected()) {
      // if the remote device wrote to the characteristic,
      // use the value to control the LED:
      if (switchCharacteristic.written()) {
        if (switchCharacteristic.value()) {   // any value other than 0
          Serial.println("LED on");
          digitalWrite(ledPin, HIGH);         // will turn the LED on
        } else {                              // a 0 value
          Serial.println(F("LED off"));
          digitalWrite(ledPin, LOW);          // will turn the LED off
        }
      }
    }
    // when the central disconnects, print it out:
    Serial.print(F("Disconnected from central: "));
    Serial.println(central.address());
  }
}
/*
   Copyright (c) 2016 Intel Corporation.  All rights reserved.
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.
   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.
   You should have received a copy of the GNU Lesser General Public
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*/
 
 
See Also
Reference Home
Corrections, suggestions, and new documentation should be posted to the Forum.
The text of the Arduino reference is licensed under a
Creative Commons Attribution-ShareAlike 3.0 License.  Code samples in the reference are released into the public domain.