Resumo:
O console precisa de uma página de visão geral para gateways, complementar às nossas páginas de visão geral para aplicativos e dispositivos. Veja também #26.
A página de visão geral deve conter:
Implicitamente, trabalhar na visão geral também conterá:
Por que nós precisamos disso?
As páginas de visão geral de nossas entidades servem como acesso rápido às informações mais importantes em baixa profundidade de cliques.
O que já existe?
Os endpoints de API correspondentes. Para referência, um exemplo de resposta GET /gateways/{gateway_ids.gateway_id}
do registro do gateway:
{
"ids": {
"gateway_id": "string",
"eui": "string"
},
"created_at": "2019-03-06T08:55:43.727Z",
"updated_at": "2019-03-06T08:55:43.727Z",
"name": "string",
"description": "string",
"attributes": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"contact_info": [
{
"contact_type": "CONTACT_TYPE_OTHER",
"contact_method": "CONTACT_METHOD_OTHER",
"value": "string",
"public": true,
"validated_at": "2019-03-06T08:55:43.727Z"
}
],
"version_ids": {
"brand_id": "string",
"model_id": "string",
"hardware_version": "string",
"firmware_version": "string"
},
"gateway_server_address": "string",
"auto_update": true,
"update_channel": "string",
"frequency_plan_id": "string",
"antennas": [
{
"gain": 0,
"location": {
"latitude": 0,
"longitude": 0,
"altitude": 0,
"accuracy": 0,
"source": "SOURCE_UNKNOWN"
},
"attributes": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
],
"status_public": true,
"location_public": true,
"schedule_downlink_late": true,
"enforce_duty_cycle": true,
"downlink_path_constraint": "DOWNLINK_PATH_CONSTRAINT_NONE"
}
O que está faltando?
Como você se propõe a implementar isso?
Complementar à implementação do nosso aplicativo.
O que você pode fazer sozinho e em que precisa de ajuda?
Eu gostaria de acompanhar com um wireframe rápido, assim que tiver algumas informações sobre os requisitos.
Acho que precisamos de algumas informações aqui em breve sobre o que mostrar na página de visão geral do gateway.
cc @htdvisser @johanstokking
Eu manteria simples; ID, EUI, nome, descrição e plano de frequência.
Bom seria mostrar um indicador online pressionando o GS e verificando as estatísticas de conexão. Se 200 <= status < 300 está conectado, se 404 não está conectado e qualquer outra coisa é um erro. Esta é uma chamada por entrada mostrada, mas vale a pena e é barato servir do GS, pois vem da memória.
de https://github.com/TheThingsNetwork/lorawan-stack/issues/26#issue -404416151
exibir estatísticas de conexão por gateway (se o gateway_server_address corresponder à configuração da API do Gateway Server do console atual)
e
Bom seria mostrar um indicador online pressionando o GS e verificando as estatísticas de conexão. Se 200 <= status < 300 está conectado, se 404 não está conectado e qualquer outra coisa é um erro.
Devemos concordar com o que mostramos ao usuário.
deixei
gtw_gs_address
ser o endereço do servidor gateway configurado para o gateway
console_gs_address
ser o endereço do servidor gateway do cluster atual passado para o console
connected
gtw_gs_address
ou console_gs_address == empty
-> status unknown
. isso pode acontecer se o endereço do servidor gateway não estiver presente no cluster atual ou o endereço não foi adicionado ao criar o gateway, ou ambos.gtw_gs_address == console_gs_address
-> status disconnected
gtw_gs_address != console_gs_address
-> o gateway is not managed by this console
unknown
, a página Visão geral do gateway exibe um erroIU:
connected (1)
unknown (2.1)
disconnected (2.2)
not this console (2.3)
@johanstokking @htdvisser @kschiffer
Eu usaria uma lógica diferente para o indicador de conectividade. Deve começar com o endereço do servidor gateway, e não com a requisição ao GS (porque não faz sentido chamar um GS que já sabemos que não atende ao gateway):
console.gateway_server_address
estiver vazio, então o recurso está completamente desabilitadogateway.gateway_server_address
estiver vazio, então:console.gateway_server_address
mas também mostrar a mensagemgateway.gateway_server_address
não for igual a console.gateway_server_address
, o recurso será desabilitado para este gateway e mostrará a mensagemEu também mudaria um pouco a mensagem. Estamos tentando informar ao usuário que o gateway selecionado não está atribuído ao servidor de gateway no cluster do console atual. Ainda é possível ler/escrever coisas do gateway que está no servidor de identidade e não no servidor de gateway (basicamente tudo que não seja estado de conectividade e tráfego)
Eu também mudaria um pouco a mensagem.
Qual seria a mensagem?
Eu concordo com @htdvisser no pedido.
Então temos cinco estados:
console.gateway_server_address
for igual gateway.gateway_server_address
, então aperte o GS:gateway.gateway_server_address
estiver vazio; o gateway não é provisionado Eu também mudaria um pouco a mensagem.
Qual seria a mensagem?
De qualquer forma, não sei se a parte superior é um bom local para exibir a notificação. Para ter uma mensagem significativa, provavelmente precisamos de um texto mais longo que não ficará bem ali. Eu diria que Unknown
ou Other Cluster
como status é suficiente e devemos procurar outro lugar para informar o usuário sobre detalhes posteriormente.
Comentários muito úteis
Eu manteria simples; ID, EUI, nome, descrição e plano de frequência.
Bom seria mostrar um indicador online pressionando o GS e verificando as estatísticas de conexão. Se 200 <= status < 300 está conectado, se 404 não está conectado e qualquer outra coisa é um erro. Esta é uma chamada por entrada mostrada, mas vale a pena e é barato servir do GS, pois vem da memória.