Lorawan-stack: Afficher le code QR de l'appareil final

Créé le 1 oct. 2019  ·  8Commentaires  ·  Source: TheThingsNetwork/lorawan-stack

Sommaire

Afficher le code QR de l'appareil final dans la console

Pourquoi avons nous besoin de ça?

Pour les tests, la validation et l'enregistrement dans un fichier

Qu'y a-t-il déjà ? Que voyez-vous maintenant ?

Support CLI en cours, voir #1392 ;

$ ttn-lw-cli device generate-qr app1 dev1 --file qr.png

Que manque-t-il? Qu'est-ce que tu veux voir?

Pouvoir voir et enregistrer les codes QR dans la console

Il existe plusieurs types de codes QR que l'utilisateur doit pouvoir choisir.

Comment proposez-vous de mettre cela en œuvre ?

Je suggérerais de générer le code QR dans le navigateur, en utilisant par exemple qrcode.react

La question est surtout de savoir d'où vient le contenu. Nous avons probablement un "code QR de réclamation" qui nécessite le claim_authentication_code stocké dans JS, mais nous pourrions également avoir d'autres codes QR qui nécessitent d'autres composants.

Nous avons quelques options;

  1. Implémentez la génération de code QR dans pkg/webui , afin qu'il sache de quels champs il a besoin et comment tout est formaté. C'est essentiellement ainsi que fonctionne la CLI, car elle importe pkg/qrcode
  2. Ajoutez rpcs aux services qui peuvent générer des codes QR, c'est-à-dire étendez EndDeviceRegistry et JsEndDeviceRegistry avec rpcs pour lister les formats et générer des valeurs de code QR. Cela permet à la console de découvrir les codes QR et évite d'implémenter des codes QR en Javascript (bien que ce ne soit pas sorcier)

Pouvez-vous le faire vous-même et soumettre une demande d'extraction ?

@htdvisser qu'en pensez-vous ?

Peut revoir

console needux uweb

Commentaire le plus utile

Bien sûr, mais dans la V3, il n'y a pas de "backend", en particulier lorsque les champs concernés sont répartis sur plusieurs composants.

Nous pourrions:

  • ajouter un service gRPC qui répertorie les formats de code QR et leur masque de champ requis
  • laisser les appelants obtenir les champs par la voie normale (c'est-à-dire contacter les registres d'appareils)
  • laissez l'appelant fournir le EndDevice (futur également Gateway ) avec le masque de champ demandé
  • passez EndDevice au service gRPC et laissez-le restituer le code QR (retour sous forme de blob d'image et/ou [][]bool bitmap et/ou valeur de texte)

Tous les 8 commentaires

Je vois de la valeur dans une approche où le backend génère des codes QR. De cette façon, nous pouvons également les rendre disponibles via nos API, peut-être même rendus en svg/png/pdf. Nous n'aurions pas à réimplémenter le rendu QR dans chaque client (au cas où nous voudrions des clients iOS/Android/...) et pouvons simplement utiliser les images rendues directement.

Bien sûr, mais dans la V3, il n'y a pas de "backend", en particulier lorsque les champs concernés sont répartis sur plusieurs composants.

Nous pourrions:

  • ajouter un service gRPC qui répertorie les formats de code QR et leur masque de champ requis
  • laisser les appelants obtenir les champs par la voie normale (c'est-à-dire contacter les registres d'appareils)
  • laissez l'appelant fournir le EndDevice (futur également Gateway ) avec le masque de champ demandé
  • passez EndDevice au service gRPC et laissez-le restituer le code QR (retour sous forme de blob d'image et/ou [][]bool bitmap et/ou valeur de texte)

Je suis d'accord pour générer le code QR sur le frontend également, mais je suis d'accord avec @htdvisser qu'une approche backend serait plus polyvalente.

C'est déjà en cours, voir ici; https://github.com/TheThingsNetwork/lorawan-stack/pull/1413/files#diff -9cb528d150f69af9e93f350e10df9c7fR86

Ajout de l'aide recherchée pour une nouvelle recrue pour ramasser cela

Je pense que nous avons besoin d'une contribution de @kschiffer pour UX car il semble que le côté serveur soit prêt et puisse générer des codes qr pour les périphériques finaux.

Reprenons cela dans une prochaine version.

Les références:


Avec la prise en charge actuelle de l'API, cela devrait être très simple. L'image est générée au format PNG dans la taille souhaitée et doit seulement être affichée quelque part.

@kschiffer pour des idées sur l'endroit où mettre l'image.

BTW, ce serait vraiment bien de pouvoir également enregistrer l'image.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

ecities picture ecities  ·  5Commentaires

MatteMoveSRL picture MatteMoveSRL  ·  7Commentaires

bafonins picture bafonins  ·  5Commentaires

johanstokking picture johanstokking  ·  5Commentaires

rvolosatovs picture rvolosatovs  ·  9Commentaires