[Tracking] Onboarding Display Provider
No contexto do serviço de Tracking, um Display Provider é um provedor USS que tem objetivo de exibir a posição de drones em tempo real para seus usuários.
Pré-requisitos técnicos
Para um USS se tornar um provedor de display de Tracking existem os seguintes pré-requisitos técnicos que não estão no escopo dessa documentação, ficando a critério do provedor como implementar esses pré-requisitos:
- Possuir um servidor HTTP para solicitar e receber requisições
- Possuir App para visualização de posição de drones
Autenticação
Para o ensaio, a autenticação será feita em um serviço OAuth centralizado do DECEA, ainda a ser descrito.
Endpoints
A dinâmica de comunicação entre Service Provider, Display Provider e DSS está descrita na norma ASTM 3411-22a. Para facilitar o entendimento, alguns possíveis cenários de utilização estão descritos na página Cenários.
O padrão seguido no ensaio será o descrito em https://github.com/uastech/standards/tree/astm_rid_api_2.1/remoteid
Conforme o padrão OpenAPI acima, os endpoints que o Display Provider precisará prover:
POST | /uss/identification_service_areas/{id} |
Path Parameters
id | UUID da ISA |
Request Body
Interação com DSS
O Service Provider, conforme definido no padrão ASTM3411-22a, deve criar entidades de Subscription em uma área específica, para encontrar os atuais Service Providers, e também para receberem notificações caso novos provedores se registrem na área. Os endpoints expostos pelo DSS estão descritos no arquivo OpenAPI descrito acima.
Como exemplo, o endpoint abaixo é para criação de Subscriptions:
PUT | /dss/subscriptions/{id} |
Path Parameters
id | UUID da Subscription, criado pelo Display Provider |
Request Body
{
"extents": {
"volume": {
"outline_circle": {
"center": {
"lng": -118.456,
"lat": 34.123
},
"radius": {
"value": 300.183,
"units": "M"
}
},
"outline_polygon": {
"vertices": [
{
"lng": -118.456,
"lat": 34.123
},
{
"lng": -118.456,
"lat": 34.123
},
{
"lng": -118.456,
"lat": 34.123
}
]
},
"altitude_lower": {
"value": 19.5,
"reference": "W84",
"units": "M"
},
"altitude_upper": {
"value": 19.5,
"reference": "W84",
"units": "M"
}
},
"time_start": {
"value": "1985-04-12T23:20:50.52Z",
"format": "RFC3339"
},
"time_end": {
"value": "1985-04-12T23:20:50.52Z",
"format": "RFC3339"
}
},
"uss_base_url": "https://example.com/rid"
}
Campos notáveis
volume | Polígono OU círculo da área, idêntico ao definido no SARPAS |
altitude_lower, altitude_upper |
Altitude geodésica (WSG84, W84) máxima e mínima em metros. |
time_start, time_end |
Horário de início e fim da área. Todos os horários devem estar no timezone Zulo (UTC+0). O único formato suportado é "RFC3339" |
uss_base_url |
URL a qual o Service Provider irá responder à solicitações. Não deve conter uma barra '/' ao final. Sugere-se utilizar uma URL e não um IP. |
Response Body
{
"service_areas": [],
"subscription": {
"id": "string",
"uss_base_url": "https://example.com/rid",
"owner": "myuss",
"notification_index": 0,
"time_end": {
"value": "1985-04-12T23:20:50.52Z",
"format": "RFC3339"
},
"time_start": {
"value": "1985-04-12T23:20:50.52Z",
"format": "RFC3339"
},
"version": "string"
}
}
service_areas | Lista de ISAs já existentes no volume 4D. Caso a lista não esteja vazia, o Display Provider deve solicitar os dados de telemetria para as URLs definidas na lista |
version | Versão da Subscription, gerado pelo DSS, para garantia de integridade. É necessário utilizar esse campo para atualizar ou deletar uma Subscription. |