Arduino:Библиотеки/CurieBLE/Класс BLEPeripheral/setAdvertisedServiceUuid()

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция setAdvertisedServiceUuid()[1]

Задает UUID для сервиса, «рекламируемого» периферийным BLE-устройством.

Синтаксис

yourBlePeripheralName.setAdvertisedServiceUuid(advertisedServiceUuid)

Параметры

advertisedServiceUuid  UUID для «рекламируемого» сервиса (константа). Тип данных  char

Что возвращает

Ничего.

Пример

 1 /*
 2    Правообладатель – Intel Corporation (2015).  Все права защищены.
 3 
 4    Эта библиотека является бесплатной; ее можно распространять 
 5    и/или модифицировать согласно условиям Стандартной общественной
 6    лицензии ограниченного применения GNU (т.к. она выпущена Фондом
 7    свободного ПО) – либо версии 2.1 этой лицензии, либо более поздней
 8    версии (на ваш выбор). 
 9 
10    Эта библиотека распространяется в надежде на то, что будет 
11    полезна кому-либо, но БЕЗО ВСЯКИХ ГАРАНТИЙ – даже без гарантий на 
12    коммерческое качество и пригодность применения для конкретных 
13    целей. Более подробно читайте в Стандартной общественной лицензии
14    ограниченного применения GNU. 
15 
16    Вы должны получить копию Стандартной общественной лицензии
17    ограниченного применения вместе с этой библиотекой. Если не
18    получили, напишите в Фонд бесплатного ПО на адрес: Free Software
19    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,    
20    MA  02110-1301  USA 
21 */
22 
23 
24 #include <CurieBLE.h>
25 
26 const int ledPin = 13; // задаем контакт для встроенного светодиода 
27 BLEPeripheral blePeripheral; // создаем экземпляр для периферийного устройства 
28 
29 BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214"); // создаем сервис
30 
31 // создаем характеристику для переключателя, а также разрешаем 
32 // удаленному устройству делать на ней операции записи и считывания: 
33 BLECharCharacteristic switchChar("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLEWrite);
34 
35 void setup() {
36   Serial.begin(9600);
37   pinMode(ledPin, OUTPUT); // делаем контакт для 13-ого светодиода выходным 
38 
39   // задаем локальное название для периферийного устройства: 
40   blePeripheral.setLocalName("LEDCB");
41   // задаем UUID для сервиса, который рекламирует это периферийное устройство: 
42   blePeripheral.setAdvertisedServiceUuid(ledService.uuid());
43 
44   // добавляем сервис и характеристику:
45   blePeripheral.addAttribute(ledService);
46   blePeripheral.addAttribute(switchChar);
47 
48   // присваиваем периферийному устройству обработчики событий для подключения и отключения:
49   blePeripheral.setEventHandler(BLEConnected, blePeripheralConnectHandler);
50   blePeripheral.setEventHandler(BLEDisconnected, blePeripheralDisconnectHandler);
51 
52   // присваиваем характеристике обработчик события для записи нового значения:
53   switchChar.setEventHandler(BLEWritten, switchCharacteristicWritten);
54 // задаем начальное значение для характеристики:
55   switchChar.setValue(0);
56 
57   // запускаем «рекламу» сервиса:
58   blePeripheral.begin();
59   Serial.println(("Bluetooth device active, waiting for connections..."));  //  "Bluetooth-устройство активно, ждем подключений..."
60 }
61 
62 void loop() {
63   // запускаем опрос периферийного устройства:
64   blePeripheral.poll();
65 }
66 
67 void blePeripheralConnectHandler(BLECentral& central) {
68   // обработчик события «подключение центрального устройства» 
69   Serial.print("Connected event, central: ");  //  "Событие «подключение центрального устройства», адрес: "
70   Serial.println(central.address());
71 }
72 
73 void blePeripheralDisconnectHandler(BLECentral& central) {
74   // обработчик события «отключение центрального устройства»
75   Serial.print("Disconnected event, central: ");  //  "Событие «отключение центрального устройства», адрес: "
76   Serial.println(central.address());
77 }
78 
79 void switchCharacteristicWritten(BLECentral& central, BLECharacteristic& characteristic) {
80   // центральное устройство записывает в характеристику новое значение, обновляя состояние светодиода 
81   Serial.print("Characteristic event, written: ");  //  "Событие «запись в характеристику», текущий статус: "
82 
83   if (switchChar.value()) {
84     Serial.println("LED on");  //  "Светодиод включен"
85     digitalWrite(ledPin, HIGH);
86   } else {
87     Serial.println("LED off");  //  "Светодиод выключен"
88     digitalWrite(ledPin, LOW);
89   }
90 }

См.также

  1. begin()
  2. end()
  3. setAdvertisedServiceUuid()
  4. setLocalName()
  5. setDeviceName()
  6. setAppearance()
  7. setEventHandler()
  8. addAttribute()
  9. disconnect()
  10. central()
  11. connected()

Внешние ссылки