Lorawan-stack: Mostrar código QR do dispositivo final

Criado em 1 out. 2019  ·  8Comentários  ·  Fonte: TheThingsNetwork/lorawan-stack

Resumo

Mostrar código QR do dispositivo final no console

Por que nós precisamos disso?

Para testar, validar e salvar em arquivo

O que já existe? O que você vê agora?

Suporte CLI em andamento, consulte #1392;

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

O que está faltando? O que você quer ver?

Ser capaz de ver e salvar códigos QR no Console

Existem vários tipos de códigos QR que o usuário precisa poder escolher.

Como você se propõe a implementar isso?

Sugiro gerar o código QR no navegador, usando por exemplo qrcode.react

A questão é principalmente de onde vem o conteúdo. Provavelmente temos um "código QR de reivindicação" que precisa do claim_authentication_code armazenado em JS, mas também podemos ter outros códigos QR que precisem de outros componentes.

Temos algumas opções;

  1. Implemente a geração de código QR em pkg/webui , para que ele saiba quais campos precisa e como tudo está formatado. É essencialmente assim que a CLI também funciona, pois importa pkg/qrcode
  2. Adicionar rpcs a serviços que podem gerar códigos QR, ou seja, estender EndDeviceRegistry e JsEndDeviceRegistry com rpcs para listar formatos e gerar valores de código QR. Isso permite que o Console descubra códigos QR e evita a implementação de códigos QR em Javascript (embora não seja ciência de foguetes)

Você pode fazer isso sozinho e enviar um Pull Request?

@htdvisser o que você acha?

Pode revisar

console needux uweb

Comentários muito úteis

Claro, mas na V3 não há "backend", especialmente quando os campos relacionados estão espalhados por vários componentes.

Poderíamos:

  • adicionar um serviço gRPC que lista os formatos de código QR e sua máscara de campo necessária
  • permitir que os chamadores obtenham os campos da maneira normal (ou seja, entre em contato com os registros do dispositivo)
  • deixe o chamador fornecer o EndDevice (futuro também Gateway ) com a máscara de campo solicitada
  • passe EndDevice para o serviço gRPC e deixe-o renderizar o código QR (retorne como blob de imagem e/ou [][]bool bitmap e/ou valor de texto)

Todos 8 comentários

Eu vejo valor em uma abordagem em que o back-end gera códigos QR. Dessa forma, também podemos disponibilizá-los por meio de nossas APIs, talvez até renderizados em svg/png/pdf. Não precisaríamos reimplementar a renderização QR em todos os clientes (no caso de querermos clientes iOS/Android/...) e podemos apenas usar as imagens renderizadas diretamente.

Claro, mas na V3 não há "backend", especialmente quando os campos relacionados estão espalhados por vários componentes.

Poderíamos:

  • adicionar um serviço gRPC que lista os formatos de código QR e sua máscara de campo necessária
  • permitir que os chamadores obtenham os campos da maneira normal (ou seja, entre em contato com os registros do dispositivo)
  • deixe o chamador fornecer o EndDevice (futuro também Gateway ) com a máscara de campo solicitada
  • passe EndDevice para o serviço gRPC e deixe-o renderizar o código QR (retorne como blob de imagem e/ou [][]bool bitmap e/ou valor de texto)

Também estou bem em gerar o código QR no front-end, mas concordo com @htdvisser que uma abordagem de back-end seria mais versátil.

Já está em andamento, veja aqui; https://github.com/TheThingsNetwork/lorawan-stack/pull/1413/files#diff -9cb528d150f69af9e93f350e10df9c7fR86

Adicionando ajuda desejada para o novo contratado para pegar isso

Acho que precisamos de alguma entrada de @kschiffer para UX, pois parece que o lado do servidor está pronto e pode gerar códigos qr para dispositivos finais.

Vamos pegar isso em uma próxima versão.

Referências:


Com o suporte de API atual, deve ser realmente simples. A imagem é gerada em formato PNG no tamanho desejado e só precisa ser mostrada em algum lugar.

@kschiffer para ideias de onde colocar a imagem.

BTW, seria muito bom poder salvar a imagem também.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ecities picture ecities  ·  5Comentários

rvolosatovs picture rvolosatovs  ·  9Comentários

adriansmares picture adriansmares  ·  8Comentários

htdvisser picture htdvisser  ·  9Comentários

htdvisser picture htdvisser  ·  4Comentários