QR Code¶
Le code QR est une symbologie 2D largement utilisée pour les URL et les coordonnées.
Voir aussi
Code QR sur Wikipédia pour des informations générales sur la symbologie elle-même.
Les codes QR sont définis dans la norme ISO/IEC 18004 (Technologies de l’information – Techniques automatiques d’identification et de capture des données – Spécification de la symbologie de code à barres Code QR).
Exemple¶
from pystrich.qrcode import QRCodeEncoder
encoder = QRCodeEncoder("https://github.com/mmulqueen/pyStrich")
encoder.save_svg("qrcode-example.svg")
Dimensionnement et zone de silence¶
L’argument cellsize de save() et get_imagedata() définit la longueur de côté, en pixels, d’un module (5 par défaut).
Voir aussi
Impression des codes-barres pour des conseils sur le choix de cellsize pour une sortie imprimée.
encoder = QRCodeEncoder("https://github.com/mmulqueen/pyStrich")
encoder.save("qrcode-large.png", cellsize=10)
Formats de sortie¶
Sortie SVG¶
Pour une intégration dans des pages web ou tout flux de travail tirant parti d’une sortie indépendante de la résolution, utilisez save_svg() (ou get_svg() pour récupérer le SVG sous forme de chaîne).
from pystrich.marks import MarkShape
QRCodeEncoder("https://github.com/mmulqueen/pyStrich").save_svg("qr.svg")
QRCodeEncoder("https://github.com/mmulqueen/pyStrich").save_svg(
"qr-circles.svg", mark_shape=MarkShape.CIRCULAR_CELLS
)
Par défaut |
|
|---|---|
Le viewBox du SVG est exprimé en unités de module, tandis que width et height sont mis à l’échelle par cellsize. Le mot-clé mark_shape choisit la façon dont les cellules marquées sont dessinées – des suites horizontales de rectangles (par défaut) ou un cercle plein par cellule.
Note
Les cellules circulaires sortent de la forme de module standard et la prise en charge par les décodeurs varie. Testez avec votre lecteur cible avant tout déploiement.
Ajouté dans la version 0.12.
Sortie PNG¶
Pour une sortie matricielle, utilisez save() pour écrire un fichier PNG ou get_imagedata() pour récupérer les octets PNG bruts.
QRCodeEncoder("https://github.com/mmulqueen/pyStrich").save("qrcode.png")
Sortie EPS¶
Pour une intégration dans LaTeX (\includegraphics) ou d’autres flux d’impression vectorielle, utilisez save_eps() (ou get_eps() pour récupérer l’EPS sous forme de chaîne).
QRCodeEncoder("https://github.com/mmulqueen/pyStrich").save_eps("qr.eps")
L’argument cellsize est la longueur de côté d’un module en points PostScript (1 point = 1/72 de pouce).
Ajouté dans la version 0.12.
Sortie terminal¶
Pour un affichage rapide à l’écran, get_terminal_art() renvoie un rendu lisible par un lecteur de codes-barres à l’aide de demi-blocs Unicode. Chaque caractère représente deux lignes de la matrice et une colonne, de sorte que les cellules apparaissent à peu près carrées dans une police à chasse fixe classique de terminal.
print(QRCodeEncoder("https://github.com/mmulqueen/pyStrich").get_terminal_art())
█▀▀▀▀▀█ █▄█▀▀▀▄ ███▀▀ █▀▀▀▀▀█
█ ███ █ ▄▀██ ▀ █▀▄ ▀█ █ ███ █
█ ▀▀▀ █ ▄█▄█▀█▀▀▀▀█▄ █ ▀▀▀ █
▀▀▀▀▀▀▀ █ ▀ ▀▄█ ▀▄█ ▀ ▀▀▀▀▀▀▀
█ ▀▀ ▀▀█ ▄█▄▀▀▀▀█▀▀▄▄ █▄▄▀ ▀█
▄█ ▄▀▀▀█ ▄ ▀▄█▄▄▀█▄▄█▄▀▄ ▀▀▄
█▄ ▄█▄▀▀▀█▀█▀▄ ███ █ ▄ ▀█▄▄
▀▄▄█ ▀▀ █▀▄▄▀▄█ ▀██▄█▄▄ ▀█▀
▄▀▀▄██▀▄▀▀█ ▀▄ ▄▀ ▀▀▀ ▄▀█▄█
▄█▄██ ▀▀█▄ █ █▀▄▄ ▀ ███ █
▀ ▀ ▀▀▀▄▀██ █▄▄▄██ █▀▀▀███▄▄
█▀▀▀▀▀█ █▄▄▀ ▀ █ ▀▀█ ▀ ██ █▄
█ ███ █ ▄▄█▄▄ █▄█▀▀▄▀█▀██▄▀ ▄
█ ▀▀▀ █ ▀▀ ▀██ ▄▀▀▀ █▄ █ ▄▀▄▀
▀▀▀▀▀▀▀ ▀▀ ▀ ▀▀ ▀ ▀▀▀▀▀ ▀
Par défaut, la sortie est encadrée par des codes d’échappement ANSI qui imposent un fond blanc et un premier plan noir, afin que le symbole se lise quel que soit le thème de couleurs du terminal. Passez ansi_bg=False pour une sortie simple (correcte uniquement sur un terminal à thème clair).
Ajouté dans la version 0.12.
Sortie DXF (CAO)¶
Pour les applications de marquage direct des pièces, get_dxf() renvoie une représentation DXF du symbole que les outils de CAO et de FAO peuvent lire directement. Le cellsize est exprimé dans vos units choisies ("mm" par défaut) plutôt qu’en pixels.
encoder = QRCodeEncoder("WDBCA45D2HA327260")
with open("part.dxf", "w") as f:
f.write(encoder.get_dxf(cellsize=0.5, units="mm"))
Par défaut, inverse=True émet la géométrie des modules clairs, y compris la zone de silence – de sorte que la boîte englobante encadre le symbole. Passez inverse=False pour n’émettre que les modules sombres, ce qui correspond à l’apparence normale du symbole ; la boîte englobante épouse alors les cellules sombres et la zone de silence doit être réintroduite en aval.
Niveau de correction d’erreurs¶
Les codes QR intègrent des données redondantes afin qu’un symbole partiellement endommagé reste lisible. Le niveau de correction d’erreurs (ECL) détermine la quantité de redondance ajoutée, et vaut l’une des valeurs suivantes :
|
Faible : ~7 % des mots de code récupérables. Symbole le plus petit. |
|
Moyen : ~15 %. Par défaut si |
|
Quartile : ~25 %. |
|
Élevé : ~30 %. Symbole le plus grand ; tolère le plus de dommages. |
Les niveaux plus élevés produisent un symbole plus dense pour une même charge utile (ou, de façon équivalente, exigent un symbole plus grand pour contenir la même charge utile) ; choisissez donc le niveau le plus bas qui répond à vos besoins de robustesse. "H" est généralement réservé aux symboles susceptibles d’être partiellement masqués (par exemple par un logo) ou imprimés sur des surfaces susceptibles d’être rayées, salies ou déchirées.
QRCodeEncoder("https://en.wikipedia.org/wiki/Kings_River_(California)", ecl="H").save("qr-high.png")
GS1 Digital Link¶
GS1 Digital Link encode un GTIN (avec, en option, lot, péremption, numéro de série, etc.) sous forme d’URL. Ce n’est qu’une URL – passez-la directement à QRCodeEncoder :
QRCodeEncoder("https://id.gs1.org/01/05050070007664/10/W126").save("dl.png")
Le GS1 QR en syntaxe brute d’identifiants d’application (indicateur de mode FNC1) n’est pas pris en charge ; pour cela, utilisez Data Matrix.
Texte non ASCII¶
QRCodeEncoder accepte directement n’importe quelle chaîne Unicode et choisit le jeu de caractères le plus restreint qui convient. N’encapsulez l’entrée dans QRCodeData que si vous voulez restreindre ce choix – par exemple, pour imposer "ascii" afin qu’un caractère non ASCII isolé lève une exception au lieu d’agrandir silencieusement le symbole :
Encodage |
Comportement |
|---|---|
|
Lève |
|
Latin-1. Déclare ECI 3 au début du symbole afin que les décodeurs ne se rabattent pas sur des heuristiques Shift-JIS pour les octets supérieurs à 127. |
|
Déclare ECI 26 et encode l’entrée octet par octet. Les décodeurs conformes détectent l’encodage automatiquement. |
|
Déclare ECI 20 et active la compression en mode Kanji (13 bits par caractère JIS X 0208 contre 24 bits en UTF-8 en mode octet). Sur activation explicite ; la sélection automatique ne le choisit jamais. |
Astuce
L’encodage sélectionné automatiquement est toujours le plus restreint qui convient ; passer une simple str vous donne donc déjà le plus petit symbole. Choisir un encodage à la main sert surtout à la validation des entrées – par exemple, rejeter tout ce qui sort de l’ASCII dès l’entrée.
# Plain str: Latin-1 picked automatically, ECI 3 emitted.
QRCodeEncoder("Ich dachte, Sie wären kräftiger").save("latin1.png")
# Plain str: UTF-8 picked automatically, ECI 26 emitted.
QRCodeEncoder("€5 親切にしろ 🐻❄️").save("utf8.png")
Si vous fixez un encodage incompatible avec l’entrée, l’erreur levée suggère l’encodage qui aurait fonctionné :
>>> from pystrich.qrcode import QRCodeData
>>> QRCodeData("Ich dachte, Sie wären kräftiger", encoding="ascii")
Traceback (most recent call last):
...
pystrich.exceptions.PyStrichInvalidInput: QRCodeData encoding ASCII cannot encode the input; try QRCodeData('Ich dachte, Sie wären kräftiger', encoding='iso-8859-1') or pass auto_encoding=True to select an encoding automatically.
Japonais avec Shift_JIS¶
QRCodeEncoder(QRCodeData("親切にしろ", encoding="shift_jis")).save_svg("kanji.svg")
Fixer shift_jis active la compression en mode Kanji – 13 bits par caractère JIS X 0208 contre 24 en UTF-8 en mode octet. La sélection automatique ne le choisit pas.
Réseau Wi-Fi¶
Les téléphones proposent de rejoindre un réseau lorsqu’ils lisent un code QR contenant une charge utile WIFI:. QRCodeData.wifi_network() en construit une au format défini par la spécification WPA3 v3.5 de la Wi-Fi Alliance :
from pystrich.qrcode import QRCodeData, QRCodeEncoder
payload = QRCodeData.wifi_network(ssid="DoubleDeuceGuest", password="PainDontHurt")
QRCodeEncoder(payload).save("wifi.png")
Omettez le mot de passe pour un réseau ouvert (le champ de type est alors absent), et passez hidden=True pour un réseau qui ne diffuse pas son SSID.
Anatomie¶
Un code QR porte la charge utile dans une mer de modules de données, entourés de plusieurs motifs fonctionnels fixes qui permettent aux lecteurs de localiser, aligner et décoder le symbole. Le schéma ci-dessous annote un symbole de version 5 (37x37 modules) ; les versions plus grandes répètent les mêmes éléments et ajoutent davantage de motifs d’alignement, ainsi qu’un bloc d’information de version à partir de la version 7.
Motifs de positionnement (position detection patterns) – les trois grands carrés situés dans les coins supérieur gauche, supérieur droit et inférieur gauche. Les lecteurs s’en servent pour détecter le symbole sous n’importe quel angle et déduire son orientation du coin manquant.
Séparateurs – une bande blanche d’un module isolant chaque motif de positionnement de la zone de données, ce qui lève toute ambiguïté sur le motif de positionnement.
Motifs de synchronisation (timing patterns) – une ligne et une colonne de cellules alternativement sombres et claires, courant entre les motifs de positionnement du haut et entre ceux de gauche. Ils fixent la grille de modules sur l’ensemble du symbole.
Motif d’alignement (alignment pattern) – des carrés plus petits insérés dans la zone de données à partir de la version 2 pour corriger la distorsion projective lorsque le symbole est photographié de biais. La version 5 en compte un ; les plus grandes versions en comptent plusieurs dizaines.
Données et correction d’erreurs – le flux de mots de code masqués (charge utile plus Reed-Solomon). C’est ce qui varie avec la version.
Zone de silence (quiet zone) – quatre modules de marge blanche de chaque côté, comme l’exige la spécification QR Code.
API¶
- class QRCodeEncoder(text: str | QRCodeData, ecl: Literal['L', 'M', 'Q', 'H'] | None = None)[source]¶
Bases :
Matrix2DEncoder[int]Encode du texte sous forme de code-barres 2D QR Code.
Une simple
strest encodée avec le jeu de caractères le plus restreint qui convient : ASCII (sans ECI), Latin-1 (ECI 3) ou UTF-8 (ECI 26). Passez unQRCodeDatapour fixer l’encodage explicitement.Utilisation typique:
encoder = QRCodeEncoder("https://d-nb.info/gnd/135514053") encoder.save("qr.png")
- Variables:
matrix – Liste 2D décrivant le symbole avant le rendu.
width – Largeur en pixels de la dernière image rendue.
height – Hauteur en pixels de la dernière image rendue.
- init_renderer() QRCodeRenderer[source]¶
Construit un
QRCodeRendererpour la matrice encodée.Met à jour
widthetheightavec les dimensions du moteur de rendu et renvoie ce dernier.
- get_dxf(cellsize: float = 1.0, inverse: bool = True, units: Literal['in', 'ft', 'mi', 'mm', 'cm', 'm'] | None = 'mm', *, mark_shape: MarkShape = MarkShape.SQUARE_CELLS) str¶
Renvoie une représentation DXF (CAO) du symbole.
- Paramètres:
cellsize – Longueur de côté d’un module en
units.inverse – Si
True(par défaut), les modules clairs sont dessinés comme des cellules pleines. SiFalse, ce sont les modules sombres qui sont dessinés, ce qui correspond à l’apparence normale du symbole.units – L’une des valeurs
"in","ft","mi","mm","cm"ou"m", ouNonepour « non spécifié » ($INSUNITS=0).mark_shape – Comment les cellules marquées sont groupées et dessinées.
- Type renvoyé:
Ajouté dans la version 0.9.
Modifié dans la version 0.12:
unitsprend désormais en charge"in","ft","mi","cm","m"etNone(non spécifié) ; auparavant, toute valeur autre que"mm"était silencieusement traitée comme non spécifiée.
- get_eps(cellsize: int = 5, *, inverse: bool = False, mark_shape: MarkShape = MarkShape.HORIZONTAL_RUNS, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) str¶
Génère le symbole et renvoie le balisage EPS.
- Paramètres:
cellsize – Longueur de côté d’un module en points PostScript.
inverse – Si
True, marque les cellules claires au lieu des sombres.mark_shape – Comment les cellules marquées sont groupées et dessinées.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA, opaque. Blanc par défaut.
- Type renvoyé:
Ajouté dans la version 0.12.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- get_imagedata(cellsize: int = 5, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) bytes¶
Génère le symbole et renvoie les octets PNG.
- Paramètres:
cellsize – Longueur de côté d’un module en pixels.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Blanc par défaut.
- Renvoie:
Données d’image encodées en PNG.
- Type renvoyé:
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- get_pilimage(cellsize: int = 5, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) PILImage¶
Génère le symbole et renvoie une image Pillow.
- Paramètres:
cellsize – Longueur de côté d’un module en pixels.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Blanc par défaut.
- Renvoie:
Le symbole rendu.
- Type renvoyé:
Ajouté dans la version 0.11.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- get_rect_marks(*, inverse: bool = False, mark_shape: MarkShape = MarkShape.HORIZONTAL_RUNS) SymbolMarks¶
Renvoie les cellules sombres du symbole sous forme de rectangles en unités de module.
- Paramètres:
inverse – Si
True, marque les cellules claires au lieu des sombres.mark_shape – Comment les cellules marquées sont groupées et dessinées.
- Type renvoyé:
Ajouté dans la version 0.18.
- get_svg(cellsize: int = 5, *, inverse: bool = False, mark_shape: MarkShape = MarkShape.HORIZONTAL_RUNS, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) str¶
Génère le symbole et renvoie le balisage SVG.
- Paramètres:
cellsize – Longueur de côté d’un module en unités utilisateur.
inverse – Si
True, marque les cellules claires au lieu des sombres.mark_shape – Comment les cellules marquées sont groupées et dessinées.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Blanc par défaut.
- Type renvoyé:
Ajouté dans la version 0.12.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- get_terminal_art(*, ansi_bg: bool = True) str¶
Génère le symbole à l’aide de demi-blocs Unicode pour les terminaux.
Chaque caractère représente deux lignes de la matrice et une colonne, produisant des cellules à peu près carrées dans une police à chasse fixe classique et donnant un résultat lisible par un lecteur de codes-barres à l’écran.
- Paramètres:
ansi_bg – Si
True(par défaut), encadre chaque ligne de codes d’échappement ANSI qui imposent un fond blanc et un premier plan noir, rendant le symbole lisible quel que soit le thème de couleurs du terminal. Mettez àFalsepour une sortie simple (correcte uniquement sur un terminal à thème clair).- Type renvoyé:
Ajouté dans la version 0.12.
- png_dataurl(cellsize: int = 5, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) str¶
Génère le symbole et renvoie une chaîne d’URL
data:PNG.- Paramètres:
cellsize – Longueur de côté d’un module en pixels.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Blanc par défaut.
- Type renvoyé:
Ajouté dans la version 0.15.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- save(filename: str | os.PathLike[str], cellsize: int = 5, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) None¶
Enregistre le symbole en PNG. Passez un nom de fichier
.png.- Paramètres:
filename – Chemin de sortie PNG.
cellsize – Longueur de côté d’un module en pixels.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Blanc par défaut.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- save_eps(filename: str | os.PathLike[str], cellsize: int = 5, *, inverse: bool = False, mark_shape: MarkShape = MarkShape.HORIZONTAL_RUNS, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) None¶
Enregistre le symbole dans un fichier EPS. Passez un nom de fichier
.eps.- Paramètres:
filename – Chemin de sortie EPS.
cellsize – Longueur de côté d’un module en points PostScript.
inverse – Si
True, marque les cellules claires au lieu des sombres.mark_shape – Comment les cellules marquées sont groupées et dessinées.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA, opaque. Blanc par défaut.
Ajouté dans la version 0.12.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- save_svg(filename: str | os.PathLike[str], cellsize: int = 5, *, inverse: bool = False, mark_shape: MarkShape = MarkShape.HORIZONTAL_RUNS, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) None¶
Enregistre le symbole dans un fichier SVG. Passez un nom de fichier
.svg.- Paramètres:
filename – Chemin de sortie SVG.
cellsize – Longueur de côté d’un module en unités utilisateur.
inverse – Si
True, marque les cellules claires au lieu des sombres.mark_shape – Comment les cellules marquées sont groupées et dessinées.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Blanc par défaut.
Ajouté dans la version 0.12.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- svg_dataurl(cellsize: int = 5, *, inverse: bool = False, mark_shape: MarkShape = MarkShape.HORIZONTAL_RUNS, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) str¶
Génère le symbole et renvoie une chaîne d’URL
data:SVG.- Paramètres:
cellsize – Longueur de côté d’un module en unités utilisateur.
inverse – Si
True, marque les cellules claires au lieu des sombres.mark_shape – Comment les cellules marquées sont groupées et dessinées.
dark_hex – Couleur des modules sombres, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Noir par défaut.light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un
RGBA. Blanc par défaut.
- Type renvoyé:
Ajouté dans la version 0.15.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.
- class QRCodeData(*segments: str | MarkerT, encoding: EncT | None = None, auto_encoding: bool = False)¶
Bases :
EncodableData[Literal[“ascii”, “iso-8859-1”, “utf-8”, “shift_jis”],Never]Entrée d’encodeur avec un choix explicite de jeu de caractères.
QRCodeEncoderaccepte une simplestret sélectionne l’encodage automatiquement. N’utilisezQRCodeDataque pour fixer l’encodage – par exemple, forcer"ascii"pour rejeter une entrée non ASCII, ou"shift_jis"pour débloquer la compression en mode Kanji pour les charges utiles japonaises.Passez soit
encoding=(l’un de"ascii","iso-8859-1","utf-8","shift_jis"), soitauto_encoding=True. Avecauto_encoding=True, le constructeur choisit l’encodage le plus restreint qui convient parmi les trois premiers ;"shift_jis"est sur activation explicite uniquement.Modifié dans la version 0.15: Ajout de
"shift_jis"pour débloquer la compression en mode Kanji.- classmethod wifi_network(ssid: str, password: str | None = None, *, hidden: bool = False, transition_disable: int | None = None, password_identifier: str | None = None, public_key: str | None = None) QRCodeData¶
Construit une charge utile
WIFI:qu’un téléphone peut lire pour rejoindre un réseau.Produit l’URI WIFI définie par la spécification WPA3 v3.5 de la Wi-Fi Alliance.
- Paramètres:
ssid – Nom du réseau.
password – Mot de passe du réseau ; à omettre pour un réseau ouvert.
hidden –
Truelorsque le réseau ne diffuse pas son SSID.transition_disable – Bitmap Transition Disable, rendu en hexadécimal.
password_identifier – Identifiant de mot de passe SAE.
public_key – Clé publique SAE-PK encodée en Base64, insérée telle quelle.
Ajouté dans la version 0.15.