Bluetooth par Nicolas Zinovieff

3,588 views
3,547 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,588
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Bluetooth par Nicolas Zinovieff

  1. 1. Bluetooth BT, BTLE, "BT Smart" @krugazor
  2. 2. Objets connectés • Petite taille, petite batterie, grosses fonctionnalités • La consommation énergétique est fonction de distance (puissance) et débit (modulation) • Bluetooth est courte portée et faible débit pour économiser la batterie @krugazor
  3. 3. Bluetooth • 1994 : "port série réseau" • 1MB/s jusqu'a 24 MB/s • Distance maxi théorique de 100m @krugazor
  4. 4. Connexion typique Coucou, j'existe! Fais voir ce que tu sais faire Voila la liste de mes services Tiens voila une commande pour XYZ (Opt) OK! @krugazor
  5. 5. CoreBluetooth • Device manager (discovery) • Services (top level) • Characteristics/descriptors (I/O) @krugazor
  6. 6. Découverte • CBCentralManager : découverte/connexion asynchrone • retrieveConnectedPeripheralsWithServices: • retrievePeripheralsWithIdentifiers: • scanForPeripheralsWithServices:options: @krugazor
  7. 7. Delegate • centralManager:didRetrievePeripherals: • centralManager:didRetrieveConnectedPeripherals: • centralManager:didDiscoverPeripheral:
 advertisementData:RSSI: @krugazor
  8. 8. Connexion • CBPeripheral • connectPeripheral:options: • cancelPeripheralConnection: @krugazor
  9. 9. Delegate • centralManager:didConnectPeripheral: • centralManager:didDisconnectPeripheral:error: • centralManager:didFailToConnectPeripheral:error: @krugazor
  10. 10. Services/Characteristics • discoverServices: • discoverCharacteristics:forService: @krugazor
  11. 11. Delegate • peripheral:didDiscoverServices: • peripheral:didDiscoverCharacteristicsForService:
 error: @krugazor
  12. 12. Lecture/Ecriture • CBCharacteristic/CBDescriptor • Piège : appelé sur le CBPeripheral • readValueForCharacteristic: • writeValue:forCharacteristic:type: (avec/sans réponse) @krugazor
  13. 13. Delegate • peripheral:didUpdateValueForCharacteristic:error: • peripheral:didWriteValueForCharacteristic:error: • NSData, baby! @krugazor
  14. 14. Caveats • Communication radio : ni fiable, ni instantanée (attention à vos timers) • Complètement asynchrone (attention à vos boucles) • Extrêmement dépendant des manipulations utilisateur (attention à l'état de vos données) • Très old school niveau échanges (niveau commandes AT, au mieux) @krugazor
  15. 15. Merci! • LightBlue (gratis) : permet d’interagir basiquement avec n’importe quoi • Outils spécifiques (TI Multitool par ex, pour les kits a base de CP2540/CP2541)

×