Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bluetooth par Nicolas Zinovieff

3,931 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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)

×