Illustre les modules 7 à 9 (6 figures)
M7 : modes Wi-Fi, requête HTTP. M8 : échanges navigateur/serveur, HTTP vs WebSocket. M9 : modèle GATT, session BLE. Diagrammes de séquence plus lisibles (étiquettes sur fond blanc, boîtes à la largeur du nom). Gabarit : figures pleine largeur par défaut. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
372c5a3e1e
commit
f4a80f4d5b
@@ -0,0 +1,48 @@
|
||||
"""Module 9 — Bluetooth Low Energy (BLE)."""
|
||||
from outils import boite, fleche, sequence, toile
|
||||
from style import BLEU, ENCRE, GRIS, ORANGE, VERT, Figure
|
||||
|
||||
|
||||
def hierarchie_gatt():
|
||||
fig, ax = toile(16, 7.0)
|
||||
boite(ax, 5.6, 3.5, 10.8, 6.6, couleur=BLEU, fond="#f5f8fe")
|
||||
ax.text(0.5, 6.4, "Serveur BLE — l'ESP32-S3", fontsize=9.5, fontweight="bold", color=BLEU)
|
||||
ax.text(0.5, 6.0, 'BLEDevice::init("ESP32-S3-Formation")', fontsize=7.5, color=GRIS, family="monospace")
|
||||
boite(ax, 5.6, 3.15, 10.0, 5.1, couleur=ORANGE)
|
||||
ax.text(0.9, 5.25, "Service", fontsize=9, fontweight="bold", color=ORANGE)
|
||||
ax.text(0.9, 4.9, "UUID 4fafc201-1fb5-459e-8fcc-c5c9c331914b", fontsize=7.5, color=ENCRE, family="monospace")
|
||||
boite(ax, 5.6, 2.55, 9.2, 3.1, couleur=VERT)
|
||||
ax.text(1.3, 3.75, "Caractéristique", fontsize=9, fontweight="bold", color=VERT)
|
||||
ax.text(1.3, 3.4, "UUID beb5483e-36e1-4688-b7f5-ea07361b26a8", fontsize=7.5, color=ENCRE, family="monospace")
|
||||
for i, (p, c) in enumerate((("READ", BLEU), ("WRITE", ORANGE), ("NOTIFY", VERT))):
|
||||
boite(ax, 2.0 + i * 1.75, 2.6, 1.5, 0.55, p, couleur=c, taille=7.5, gras=True)
|
||||
boite(ax, 8.4, 2.6, 2.6, 0.8, 'valeur : "rouge"', couleur=GRIS, taille=8)
|
||||
ax.text(5.6, 1.4, "(un service peut contenir plusieurs caractéristiques)", ha="center",
|
||||
fontsize=7.3, color=GRIS, style="italic")
|
||||
boite(ax, 14.1, 3.5, 2.8, 2.0, "Client BLE\nsmartphone\n(nRF Connect)", couleur=GRIS, taille=8.5)
|
||||
fleche(ax, (12.7, 3.0), (11.0, 3.0), "écrit", couleur=ORANGE, taille=7.5, decalage=0.08)
|
||||
fleche(ax, (11.0, 2.2), (12.7, 2.2), "notifie", couleur=VERT, taille=7.5, decalage=0.08)
|
||||
fleche(ax, (12.7, 4.1), (11.0, 4.1), "lit", couleur=BLEU, taille=7.5, decalage=0.08)
|
||||
return fig
|
||||
|
||||
|
||||
def sequence_ble():
|
||||
acteurs = ["ESP32-S3 (serveur)", "Smartphone (client)"]
|
||||
messages = [
|
||||
("ESP32-S3 (serveur)", "Smartphone (client)", "annonce (advertising) « ESP32-S3-Formation »", True),
|
||||
("Smartphone (client)", "ESP32-S3 (serveur)", "connexion"),
|
||||
("Smartphone (client)", "ESP32-S3 (serveur)", "découverte des services et caractéristiques"),
|
||||
("Smartphone (client)", "ESP32-S3 (serveur)", "WRITE « rouge »"),
|
||||
("ESP32-S3 (serveur)", "ESP32-S3 (serveur)", "onWrite() → LED rouge"),
|
||||
("ESP32-S3 (serveur)", "Smartphone (client)", "NOTIFY « 21.5 » (température)", True),
|
||||
("ESP32-S3 (serveur)", "Smartphone (client)", "NOTIFY « 21.6 » … toutes les 5 s", True),
|
||||
]
|
||||
fig, ax = sequence(acteurs, messages, largeur_cm=15, pas_cm=0.85,
|
||||
couleurs={"Smartphone (client)": GRIS})
|
||||
return fig
|
||||
|
||||
|
||||
FIGURES = [
|
||||
Figure("m09-hierarchie-gatt", hierarchie_gatt),
|
||||
Figure("m09-sequence-ble", sequence_ble),
|
||||
]
|
||||
Reference in New Issue
Block a user