diff options
-rw-r--r-- | notes/manipuler-des-codes-qr-en-cli.md | 455 |
1 files changed, 455 insertions, 0 deletions
diff --git a/notes/manipuler-des-codes-qr-en-cli.md b/notes/manipuler-des-codes-qr-en-cli.md new file mode 100644 index 0000000..b566871 --- /dev/null +++ b/notes/manipuler-des-codes-qr-en-cli.md @@ -0,0 +1,455 @@ +--- +pubDate = 2024-08-16T13:08:38+02:00 +tags = ['multimedia', 'cli', 'programmation', 'linux', 'code QR'] +lang = "fr" +type = "note" + +[author] +name = "ache" +email = "ache@ache.one" +--- + +# La manipulation de codes QR via CLI + +L'usage des codes QR (traduction de QR Codes) s'รฉtant dรฉmocratisรฉ, j'ai eu besoin d'outils pour encoder et dรฉcoder des codes QR. +Je vous prรฉsente les outils que j'utilise pour manipuler les code QR ainsi que les quelques cas d'utilisation courante de code QR. + +## Les utilitaires qrtool et rxing-cli (๐ฆ ๐ช) + +Les deux outils supportent l'encodage et le dรฉcodage et sont tous les deux รฉcrit en Rust. +J'utilise l'un pour le dรฉcodage et l'autre pour l'encodage. + +### Dรฉcodage intelligent + +Au niveau du dรฉcodage, j'utilise [rxing-cli](https://crates.io/crates/rxing-cli) qui est capable de scanner une photo et de dรฉtecter les codes QR prรฉsents. +Gรฉnรฉralement les dรฉcodeurs sont **trรจs basiques** et n'ont pas la fonctionnalitรฉ d'analyse et de correction visuelle d'un code QR. +Avoir la fonctionnalitรฉ de scanner toute une image et de rรฉaligner le code est assez rare en ligne de commande. + +```sh +$ rxing-cli qr-code_mermaid_file.jpg decode +Detection result: +(qrcode) https://www.youtube.com/watch?v=eV7z7iJ22Bo +``` + +:::note +rxing a l'avantage de supporter d'autres formats de code bar, 2D ou 3D. +Comme le [format Aztec](https://fr.wikipedia.org/wiki/Code_Aztec), notamment utilisรฉ par la SNCF. + +Ces autres formats sont souvent moins faciles ร dรฉcoder et il est important d'assister le logiciel dans le dรฉcodage en cadrant le code correctement. +::: + +### L'encodage pour tous les formats + +Au contraire, pour encoder un code QR, je prรฉfรจre de loin utiliser [qrtool](https://crates.io/crates/qrtool). +Sa fonctionnalitรฉ de dรฉcodage est basique, mais celle d'encodage est trรจs complรจte. +Ainsi, pleins de formats sont supportรฉs (BMP, JPEG, PNG, QOI (!), SVG...). + +Au niveau de l'encodage, c'est simple et puissant. +Par dรฉfaut la commande produit un PNG qu'elle imprime sur la sortie standard, mais pleins de formats sont supportรฉs. +En particulier `ansi256` pour afficher le code QR directement dans la console ou `unicode` qui essaye de rendre le code QR au format caractรจres (simple ร copier/coller dans un champ texte). +Mon prรฉfรฉrรฉ reste `svg` pour obtenir une image vectoriel. + +```sh +$ echo -n 'https://ache.one' | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โ โโโโโโ โโ โโโโโ โโโโ +โโโโ โ โ โโโโโโโโโโโ โ โ โโโโ +โโโโ โโโโโ โโโ โโโโโโ โโโโโ โโโโ +โโโโโโโโโโโโ โ โโโ โ โโโโโโโโโโโโ +โโโโ โ โโโโโโโโ โโโ โโโโโโ โโโโโ +โโโโโโโโโโโโโโโโ โ โโ โ โโโโโโโโโ +โโโโโ โโโโโโ โโ โโโโโ โ โโโ โโโโ +โโโโโโ โโโโ โโ โ โโโโโ โ โโโโโโโโ +โโโโโโโโโโโโโโโโโโโโ โโโ โ โ โโโโ +โโโโ โโโโโ โ โโโ โโโ โโโ โโ โโโโโ +โโโโ โ โ โโ โโ โโ โ โโโโโโโ +โโโโ โโโโโ โโ โโโโโโโ โโ โ โโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +## Format et donnรฉes des codes QR + +Il n'y a pas de spรฉcification standard du contenu des codes QR ! +C'est le gros problรจme de ce format. +Du coup, il en existe plusieurs ! ๐คฆ + +![[XKCD927](https://xkcd.com/927/): How standards proliferate](/notes/res/standards.png) + +> [XKCD927](https://xkcd.com/927/): How standards proliferate + +Mais un certain nombre de formats sont courants et supporter par tous les scanners. +Notamment les formats de la sociรฉtรฉ NTT DoCoMo et ceux basรฉs sur les schรฉmas d'URI (standardisation du W3C). + +### Partage d'une URL + +Les URL sont gรฉnรฉralement automatiquement reconnu et il n'y a pas besoin de format particulier. +Tout comme le texte d'ailleurs. + +:::note +N'utilisez pas le format non standard `URLTO:`. +Vous utiliserez alors un format moins reconnu que juste mettre une URL. +::: + +### Partage d'un e-mail + +Pour partager une adresse e-mail, il existe encore 2 mรฉthodes. + +- Celle standardisรฉe par le W3Cย : `mailto:ache@ache.one?subject=Test code QR&body=Thank you for your content` +- Et celle de NTT DoCoMoย : `MATMSG:TO:ache@ache.one;SUB:Test code QR;BODY:Thank you for your content;;` + +:::note +Pour partager juste une adresse e-mail, on peut simplement encoder l'adresse e-mail par exemple 'ache@ache.one'. +Mais il existe un risque que le lecteur de code QR l'interprรจte comme un texte, c'est pour cela qu'on recommande d'utiliser une des deux mรฉthodes prรฉcรฉdentes. +::: + +Dans la pratique, lorsqu'on partage juste une adresse e-mail, il est courant d'utiliser le format W3C. + +```sh +$ echo -n 'MAILTO:ache@ache.one' | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โโโโโโโโโโโ โโโโโ โโโโ +โโโโ โ โ โโ โโโ โโ โ โ โโโโ +โโโโ โโโโโ โโ โโโโโโโโ โโโโโ โโโโ +โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ +โโโโโโโ โโโโ โโโโโ โโ โ โโโโโโโโโ +โโโโโโโโโ โโโโโโ โโโ โโโโโ โโโโ +โโโโโโโ โโโโ โโ โโโโ โโโโโโ โโโโโ +โโโโโโโโ โโ โโโ โโโโ โโโโโโ โโโโโ +โโโโโโโโโโโโ โโโ โโ โโโ โ โโโโโ +โโโโ โโโโโ โโโโโ โ โโโ โ โโโโโโ +โโโโ โ โ โโโโโโโโโ โโโโโ โโโโโ +โโโโ โโโโโ โโโโโโโโโโโโ โโโโ โโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +:::note +[Le schรฉma d'URI `mailto`](https://fr.wikipedia.org/wiki/Mailto) propose beaucoup d'autres options. +Consulter la RFC 6068 pour une description complรจete. +::: + +Par-contre, lorsqu'on propose un patron d'e-mail, le format MATMSG semble plus utilisรฉ, mรชme si paradoxalement, il est moins complet. + +```sh +$ echo -n 'MATMSG:TO:ache@ache.one;SUB:Test QR-Code;BODY:Thank you for your content;;' | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โโ โโโโโโโโโโโ โโโโ โ โโโโโ โโโโ +โโโโ โ โ โ โโ โโโ โโโโโโโโโโโ โ โ โ โโโโ +โโโโ โโโโโ โ โโโโ โ โ โโโโโโโโโโโโ โโโโโ โโโโ +โโโโโโโโโโโโ โ โ โ โ โ โ โ โโโโโ โโโโโโโโโโโโ +โโโโ โโ โโโโโ โโ โ โโโโโโ โโโโโโโ โ โโโโโโโโ +โโโโโโโโ โโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโโ โ โโโ โโโโโโโโโ โโ โโโ โโโโโโโโ +โโโโโโ โโโโโโโโ โ โโโโโ โโโโโโโโโ โโโโ โโโโโ +โโโโโ โโโ โโโโโ โ โโโโโ โโ โโ โโโโ โโโ โโโโ +โโโโ โโโโ โโ โโโโโ โโ โโโ โโ โโโโโโโโโโโโโโโ +โโโโโโโ โโโโ โโโ โ โโ โโโ โโโโโ โโโโโโ โโโโโ +โโโโโ โโโโโโโโโโโโ โโ โโโโ โโ โ โโโโโโโโโโ +โโโโ โโโโโโโโโโโโโโ โโโโโโโโ โโ โโโโ โ โโโโโ +โโโโ โ โโโโ โโโโโโโ โโโโโโโโ โโโโโ โโโโ โโโโ +โโโโโโโโโโโโ โโโโโโโโโโโโโ โโ โ โโโ โ โโโโโ +โโโโ โโโโโ โโ โโโโโโโโโ โโโโโ โ โโโ โ โ โโโโ +โโโโ โ โ โ โโ โโ โโโโโ โโโ โโโ โโ โโโโ +โโโโ โโโโโ โโโโโโโ โโโโโโโ โโ โโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +### SMS + +Pour partager un format d'SMS, on utilise [le schรฉma d'URI sms](https://datatracker.ietf.org/doc/html/rfc5724). + +```sh +$ echo -n 'sms:+33623456789?body=texte%20du%20sms' | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โโโโโโโโโโ โโโโ โโโโโ โโโโ +โโโโ โ โ โโโโโโโโโโ โ โ โ โ โโโโ +โโโโ โโโโโ โโโโโโโโโโโโโโโ โโโโโ โโโโ +โโโโโโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโ +โโโโโโโโ โโโโโโ โโโโ โโ โโโโโโโโโโโโ +โโโโโ โโโโโโโ โโโโ โโ โ โ โโ โโโ โโโโ +โโโโโโโโ โโโโโโโโโ โ โโ โ โโโโโ โโโโ +โโโโโโโโ โโโ โโโโโโ โโโโ โ โ โโโโโโโ +โโโโโ โโโโ โโ โโโโ โโโ โโโ โ โโโโโ +โโโโโโโ โ โโ โโโ โ โโโโโ โ โโโโ โโโโ +โโโโโโโโโโโโ โ โโโ โ โโโ โโโ โโโ โโโโ +โโโโ โโโโโ โโโโโโโโโ โโโ โโโ โโโโโโโโ +โโโโ โ โ โโโโโโโโโ โโ โโ โ โโโโโ +โโโโ โโโโโ โโ โโโโโโโ โโโโ โโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +Un autre format existe รฉgalement oรน plutรดt que de suivre exactement la RFC 5724, le contenu du SMS est directement inscrit ร la suite du numรฉro (avec un deux-points pour les sรฉparer). +Je dรฉconseille fortement de l'utiliser. Il n'est pas standard. + +```sh +$ echo -n 'sms:+33623456789:texte%20du%20sms' | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โ โ โโโ โโ โ โโโโโ โโโโ +โโโโ โ โ โโโโโโโโโโ โโโโ โ โ โโโโ +โโโโ โโโโโ โโโโโ โโโ โโ โโ โโโโโ โโโโ +โโโโโโโโโโโโ โโโโโโโ โโโโโโโโโโโโโโโโ +โโโโ โ โโ โโโโโโโ โ โโ โโ โโโโโ โโโโ +โโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโ โโ โโโโโโโโโ โโโโโ +โโโโ โโโโโโโโ โโโโโ โ โ โโโโโโโโโโโ +โโโโโโโ โโโโโโโ โโ โ โโ โโโโ โโโโโโโ +โโโโโโโโโโโ โโ โ โโโโโโโโ โโโโโโโโโ +โโโโโโโโโโโโ โโโโโโ โ โ โโโ โ โโโโ +โโโโ โโโโโ โ โ โ โ โโโโ โโโ โโ โโโโโ +โโโโ โ โ โโโโโโโโโโโโโ โโโโโโโโ +โโโโ โโโโโ โโโโโ โโโ โ โโ โโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +On peut aussi partager un SMS vide. +L'utilisateur est ainsi invitรฉ ร le remplir. + +### Partage de contact + +Si vous souhaitez juste partager un numรฉro de tรฉlรฉphone, le plus simple est d'utiliser le format W3C. +C'est-ร -dire le schรฉma d'URI `tel` (RFC 3966). + +Extrรชmement simpleย : + +```sh +$ echo -n tel:0623456789 | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โ โโโโโ โโโโโ โโโโ +โโโโ โ โ โโโโ โโ โ โ โโโโ +โโโโ โโโโโ โโโโโ โ โโโโโ โโโโ +โโโโโโโโโโโโโโโโ โโโโโโโโโโโโ +โโโโโโโ โโโโ โ โ โโ โ โโโโโโ +โโโโโโโ โโโ โโ โโโโโโโ โโโโโโ +โโโโโโโโโโโโ โโโโ โโโ โโโโโโโ +โโโโ โโโโโ โ โโโ โ โ โโโโโโ +โโโโ โ โ โ โโ โโโโโโโโโโโโ +โโโโ โโโโโ โโ โโโโ โโโโ โโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +Sinon, on peut partager une vCard directement, mais c'est beaucoup plus lourd. +Pour plus d'information, se rรฉfรฉrer ร la [RFC6868](https://datatracker.ietf.org/doc/html/rfc6868). + +Exempleย : + +```sh +$ cat ache.vcard +BEGIN:VCARD +VERSION:4.0 +N:ache;;;Ing; +FN:ache +NICKNAME:ache +LOGO;MEDIATYPE=image/png:https://ache.one/res/ache.png +EMAIL:ache@ache.one +KEY;MEDIATYPE=application/pgp-keys:https://ache.one/ache.pgp +URL:https://ache.one +SOURCE:https://ache.one/ache.vcard +END:VCARD +$ cat ache.vcard | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โโโโ โโ โ โโโโโโโ โโ โโโโโโโโโ โโ โโโ โโโโ โโโโ โโโโโ โโโโ +โโโโ โ โ โโโโโโโโ โ โโโ โโโโโ โโโโโโโโโโโโโโ โ โโ โโโโโโ โโโ โ โ โโโโ +โโโโ โโโโโ โ โโโ โ โ โโโโโโโ โโ โโโ โโโโโโโโโโโโโ โ โโโโโโ โโโโโ โโโโ +โโโโโโโโโโโโ โ โโโโโโโ โโโ โโโโโ โ โโโ โโโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโ +โโโโ โโโ โโโ โโโโโโ โโ โโโโโโโโโโโโ โโโ โโโ โโ โโโโ โ โโโโ โโ โโโโ โโโโ +โโโโโโโโโโโโโ โโโโโโ โโโโโโโโ โโโโโโโโ โ โ โ โโโ โโโโโโโโโโโ โโโโโโโโ +โโโโโโโโโโโโโโโโโ โโ โโ โโโโ โโโ โโโโโโโ โ โ โ โโโโโโโโ โโโ โ โ โโโโโโโ +โโโโโโโโโโโโโโโโโ โ โโโ โ โโ โโโโโโโ โโ โโโโโ โ โโโโ โโโโโ โโ โโโโ +โโโโโโโโโ โ โ โ โ โโโโโโ โ โโโ โโ โโโโโโโโโโโโโโโโ โ โโ โ โโ โโโโโโโโโ +โโโโ โโโโ โโ โโโโโโ โ โ โโโโโโโ โโโ โโโโโ โโ โโโโโ โโโโโ โ โโโ โโโโโโ +โโโโโโโโ โโโโโ โ โโโ โ โโโโโโโ โโโโโโโโโ โโโโ โโโโโโ โโโโโโโโ โโโโโโโโโ +โโโโโโโโโ โโโโโ โโโโโโโโโโโโ โ โโโโ โโโโโโโโโโ โโโโโโโ โโโโโโโโ โโ โโโโโโ +โโโโโโโโ โโโ โโ โ โโโโโโโ โโโ โโ โโโโ โโ โโโโโโโ โโโ โโโโโโโโโโโโโ โโโโ +โโโโโโโโโโโโ โโโโโโ โโ โโโโ โโโโโโโ โโโโโโ โโ โโโโโ โโโโโโโโ โโโโโโ +โโโโโ โโ โโ โโโโ โโโ โ โโโโโ โโโ โ โโ โโโ โโโโโ โโโโโ โโโ โโ โโโโโโโโโโโ +โโโโ โ โ โโโ โโ โโโโโโโ โโโโโโ โโโ โโโ โโโโโ โโโโโโโโโโ โโ โโโ โโโ โโโโ +โโโโ โโโ โโโ โโโโโโโ โโโโ โ โ โ โโโ โ โ โโโ โ โโ โโ โโโ โ โโโ โโโโโโโโ +โโโโ โ โ โโ โโโโ โโ โ โ โ โโโ โโ โ โ โโโโโ โโโโโโ โโโโโโโโโโ โ โโโโโโ +โโโโโ โโโโโโโโ โโโ โโโโโ โโโโ โ โโโโโ โ โโโโโโโโโ โโโ โโโโโโโโโโโโโโ +โโโโโ โ โโโโโ โ โ โโโโโโโโโโโ โ โโโโ โ โโโ โ โโโโโโโโโ โโโโ โโโ โโ โโโโ +โโโโโ โ โโโโโโโโโโโ โโโโโ โ โ โโโโ โโโ โ โโ โโ โโ โ โโโโโ โโ โโโโโโโโ +โโโโโ โโ โโโ โโโ โโโโ โโโโโ โโโโโโโโโ โโ โโโโโโโ โโโโโ โโโโโโโ โโโโโ +โโโโโโโโโโโโ โโโโโ โโโโ โ โโโ โโโโโโโโโโ โ โ โ โโโโ โโโโโโโโ โ โโโโโโโ +โโโโ โ โ โโโ โโ โโ โ โโโ โโโโโโ โโโโ โโ โโโ โโโ โโโโโโโโโโโโ โโโโโ +โโโโ โ โ โโโโโโโโโโโโโโโโโ โ โโโโโโโ โโโโโโโโโโโโโโ โ โโโโโโโ โโโโ โโโโโ +โโโโโโโโโโโโ โโ โโ โโ โโ โโโโโโโโโ โ โโ โ โโโ โโโโ โโโ โโโโโ โโโโโโโ +โโโโ โโโโโโโโโโโโโโ โโโโโโ โ โโโโโโ โโโโโโโ โ โโโโโ โ โโโโ โโโโโโโโ โโโโ +โโโโโโโ โโโโโโโโโโโโ โโ โ โโ โโ โโ โโโโโ โโโ โโโโโ โโโ โโโโ โโโโโโ โโโโ +โโโโโโโโโโโโ โโ โโโโ โ โโโโโโ โโโ โโโโโโโโโโโโโ โโโโ โโ โโโ โโ โโโโ +โโโโ โโโโโ โโโโโโโโโ โโ โ โ โโโโโ โโโ โโโโ โโโ โโโโโโ โ โโโ โโโโโโโโ +โโโโ โ โ โโ โโโโโโโโโโโโ โโโโโ โ โโโโโโโโ โ โ โโ โโ โโโ โโโโโโโโ +โโโโ โโโโโ โโโโโ โ โโโโโ โโ โ โโโโโโโโโโ โโโโ โโโโโ โโโโ โโโโ โโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +Le problรจme est que comme on peut le voir, c'est assez lourd. +Le format vCard n'est pas prรฉvu pour รชtre succinct. + +Le format [MeCard](<https://en.wikipedia.org/wiki/MeCard_(QR_code)>) est certainement plus adaptรฉ et au moins aussi rรฉpandu dans les codes QR. + +```sh +$ echo -n 'MECARD:N:ache;EMAIL:ache@ache.one;URL=httpsยฅ://ache.one;;' | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โ โ โโ โโโ โ โโโโ โโโโโ โโโโ +โโโโ โ โ โโโโโโโโ โโ โโ โโโโ โ โ โโโโ +โโโโ โโโโโ โโโ โโโโโ โโโโโ โ โ โโโโโ โโโโ +โโโโโโโโโโโโ โ โโโโโ โ โ โโโโโโโโโโโโโโโโ +โโโโ โ โโโโโโ โโ โโโโโโ โโโโโโโโโ โ โโโโโ +โโโโโโโ โโโ โโ โโโโโ โโโโ โ โโโ โโโโโโโ +โโโโโโ โโโโ โโโโ โโ โ โโโ โโโ โ โโโโโโ +โโโโ โ โ โโโโโโ โโ โโโ โโโโโ โ โโโโโ โโโโ +โโโโโโโโโโโ โโโ โโโโ โโโโโโโโ โโโ โโโโโโ +โโโโโโโโ โโโโ โโ โโโ โโโโ โโโโโ โโโโโโโ +โโโโ โ โ โโโโโโโโโโโโโโโโ โ โ โโโโโโโโโ +โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโ โ โ โโโโโโ +โโโโโโโโโโโโ โโโ โโ โโโโ โ โโโ โโ โโโโโ +โโโโ โโโโโ โ โโโโ โ โ โโโโโโ โโโ โ โโโโ +โโโโ โ โ โโ โ โโโ โโโโโโโ โ โ โโโโโ +โโโโ โโโโโ โโโโโโโ โ โโโโโ โ โโโ โโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +Le code est effectivement beaucoup plus petit. + +:::attention +Le caractรจre `:` dans contact au format MeCard doit รชtre รฉchappรฉ. Pour cela, il faut le prรฉcรฉder de `ยฅ`, comme dans l'URL de l'exemple prรฉcรฉdent. +::: + +### Configuration Wi-Fi rapide + +Avec le prรฉfixe `WIFI`, proposรฉ par la bibliothรจque [zxing](https://github.com/zxing/zxing/wiki/Barcode-Contents#wi-fi-network-config-android-ios-11) et supporter par Android et iPhone. + +Je traduis ici la documentation de la bibliothรจque zxing, la seule rรฉfรฉrence sur ce sujetย : + +| Paramรจtre | Exemple | Description | +| --------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| T | `WPA` | Type d'authentification ; peut รชtre `WEP` ou `WPA` ou `WPA2-EAP`, ou `nopass` pour aucun mot de passe. Ou, omettre pour aucun mot de passe. | +| S | `mynetwork` | SSID du rรฉseau. Obligatoire. Encadrer avec des guillemets doubles si c'est un nom ASCII, mais pourrait รชtre interprรฉtรฉ comme hex (c'est-ร -dire `"ABCD"`) | +| P | `mypass` | Mot de passe, ignorรฉ si T est `nopass` (auquel cas il peut รชtre omis). Encadrer avec des guillemets doubles si c'est un nom ASCII, mais pourrait รชtre interprรฉtรฉ comme hex (c'est-ร -dire `"ABCD"`) | +| H | `true` | Optionnel. Vrai si le SSID du rรฉseau est cachรฉ. Notez que cela a รฉtรฉ utilisรฉ par erreur pour spรฉcifier la mรฉthode de phase 2 dans les versions jusqu'ร 4.7.8 / Scanner de code-barres 3.4.0. Si ce n'est pas un boolรฉen, il sera interprรฉtรฉ comme mรฉthode de phase 2 (voir ci-dessous) pour la compatibilitรฉ ascendante | +| E | `TTLS` | (WPA2-EAP uniquement) Mรฉthode EAP, comme `TTLS` ou `PWD` | +| A | `anon` | (WPA2-EAP uniquement) Identitรฉ anonyme | +| I | `myidentity` | (WPA2-EAP uniquement) Identitรฉ | +| PH2 | `MSCHAPV2` | (WPA2-EAP uniquement) Mรฉthode de phase 2, comme `MSCHAPV2` | + +L'ordre des champs n'a pas d'importance. Les caractรจres spรฉciaux `\`, `;`, `,`, `"` et `:` doivent รชtre รฉchappรฉs avec une barre oblique inverse (`\`) comme dans l'encodage MECARD. Par exemple, si un SSID รฉtait littรฉralement `"foo;bar\baz"` (avec les guillemets doubles faisant partie du nom du SSID lui-mรชme), il serait encodรฉ comme : `WIFI:S:\"foo\;bar\\baz\";;` + +Ainsi, grosso modo, il y a 3 champs obligatoiresย : + +- Le champ "S" pour le nom du rรฉseauย ; +- Le champ "P" pour le mot de passeย ; +- Le champ "T" pour le type de sรฉcuritรฉ en pratique toujours "WPA" pour les particuliers. + +Et l'ordre des champs n'a pas d'importance. + +Un exemple de configuration pourrait รชtreย : + +```sh +$ echo -n 'WIFI:S:MON_RESEAU;T:WPA;P:pass123;;' | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โโ โโโโโ โโ โ โ โโโโโ โโโโ +โโโโ โ โ โโโโโโโโโโโ โโโ โ โ โโโโ +โโโโ โโโโโ โโโโ โโโโโโ โโโ โโโโโ โโโโ +โโโโโโโโโโโโโโ โโโโโ โ โ โโโโโโโโโโโโ +โโโโโโ โโโโ โโโโโโโโ โโโโโโ โโโโ โโโโ +โโโโ โโโ โโโโโโโ โ โ โโโ โ โโโโโโโโ +โโโโ โโโโโโโ โโ โ โ โโโ โโ โโโโโโโโโ +โโโโโ โโโ โโโ โโโโโโ โโโโโโโโโโโโโโ +โโโโโ โโโ โโโ โโโโโโ โโโโโ โโโโโ โโโโ +โโโโโโโโ โโโโโโโ โ โโ โโโโโโ โ โโโโ +โโโโโโโโโโโโโโโ โ โ โโโ โโโ โโโโโ +โโโโ โโโโโ โโ โโโโโโ โโ โโโ โโโโโโโโ +โโโโ โ โ โโ โโโ โโ โโโโโ โโโโโโโโ +โโโโ โโโโโ โโโโโโโโโ โโโโโโโโโโ โโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +### Position GPS + +Encore une fois, on utilisera un schรฉma d'URI, [celui de `geo`](https://en.wikipedia.org/wiki/Geo_URI_scheme)^{(en)}. + +De maniรจre simple, ce sont les coordonnรฉes GPS (latitude puis longitude, dans cet ordre) format numรฉrique avec le prรฉfixe d'URI `geo:`. + +```sh +$ echo -n "geo:48.858296,2.294479" | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โ โโโโโโโโ โโโโโ โโโโ +โโโโ โ โ โโโโโ โโโโโ โ โ โโโโ +โโโโ โโโโโ โโ โโโ โโ โ โโโโโ โโโโ +โโโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโโ +โโโโ โ โ โ โ โโ โโโ โโโโโโโโโโ +โโโโโโ โโโโโ โโ โโโโ โโ โโโโโโ +โโโโโโโโโโโโ โโ โโโโโ โโโโ โโโโ +โโโโโโ โโ โ โโ โโ โโโโโโโ โโโโโ +โโโโโโโโโโโโ โโโโโโโ โโโ โโโโโโ +โโโโ โโโโโ โ โโโ โโโ โโโ โโโ โโโโ +โโโโ โ โ โโโ โ โ โโ โ โโโโโโโ +โโโโ โโโโโ โโ โโโโโโ โโโ โโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +Rรฉfรฉrez-vous ร la RFC 5870 pour plus de fonctionnalitรฉs. +Dans les grandes lignes, chaque paramรจtre est un champ sรฉparรฉ par un point-virgule. +Il est ainsi possible de choisir un systรจme de coordonnรฉes diffรฉrent de WGS 84 avec le paramรจtre "crs", mais cela ร peu d'intรฉrรชt en France. +Surtout, il est possible de prรฉciser que l'emplacement est approximatif avec le paramรจtre "u" qui donne l'รฉcart approximatif en mรจtre. + +Google Map utilise un format รฉtendu avec le paramรจtre `q` pour ยซ query ยป. +Celui-ci n'est pas introduit par un point point-virgule, mais par un point d'interrogation. +Il est ainsi possible de faire une recherche autour d'un point particulier (ou si le point de rรฉfรฉrence est 0,0 autour de votre position courante) ร partir d'un champ de texte. + +:::attention +Autre spรฉcificitรฉ de Google Map, les coordonnรฉes GPS ne sont pinnรฉs que lorsqu'on passe par une requรชte. +Ainsi pour avoir un "pin" sur Google Map, il faudra rรฉfรฉrencer l'URI: + +```sh +$ echo -n "geo:0,0?q=48.858296,2.294479" | qrtool enc -t unicode +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโ โโโโโ โ โ โโ โโโ โโโโโ โโโโ +โโโโ โ โ โโโ โโโโโโโ โ โ โโโโ +โโโโ โโโโโ โโ โโโ โ โ โโโโโ โโโโ +โโโโโโโโโโโโ โโโโโ โโโโโโโโโโโโโโ +โโโโโโโโโ โ โโโโ โโ โโโโโโโโโโโโโ +โโโโโโโโโโโ โโ โโโโโ โโ โโ โโโโโโ +โโโโโ โโโโ โโโโโโ โโโ โ โโโโ +โโโโโโโโโ โโโโโโโ โโโโโโ โโ โโโโโ +โโโโโโโโโโโโโโโโ โ โ โโโ โ โโโโโโ +โโโโ โโโโโ โ โโ โโโโ โโโ โโโโโโโโ +โโโโ โ โ โโโโโ โโโ โ โโโ โโโโ +โโโโ โโโโโ โโโโโโโโโโโ โโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ +``` + +J'ai pensรฉ qu'il est utile de prรฉciser au-vue de la position dominante de Google Map dans l'univers cartographique. +::: |