Skip to main content

Onboarding Service Provider

No contexto do serviço de Tracking, um Service Provider é um provedor USS que é capaz de receber dos seus drones os dados de localização em tempo real, e disponibilizar esses dados on demand em uma API também em tempo real.

Pré-requisitos técnicos

Para um USS se tornar um provedor 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:

  1. Possuir um servidor HTTP para solicitar e receber as requisições listadas abaixo
  2. Possuir infraestrutura para obter os dados de posição instantânea do drone. Esses dados devem estar disponíveis em tempo real no servidor HTTP

Autenticação

Para o ensaio, a autenticação será feita em um serviço OAuth centralizado do DECEA.

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 Service Provider precisará


GET /uss/flights
Query Parameters
view Área da solicitação, representada por dois pontos no formato lat1,lng1,lat2,lng2. Os pontos são as extremidades da diagonal de um quadrado, onde esse quadrado representa a área da solicitação 29.978,31.132,29.980,31.135
recent_positions_duration

Se for maior que zero, indica que a requisição deve enviar todas as posições do drone nos últimos N segundos. Valor máximo: 60.

Se for zero, indica que deve ser enviado apenas a última posição do drone

60
Response
{
  "timestamp": {
    "value": "1985-04-12T23:20:50.52Z",
    "format": "RFC3339"
  },
  "flights": [
    {
      "id": "uss1.JA6kHYCcByQ-6AfU",
      "aircraft_type": "Helicopter",
      "current_state": RIDAircraftState,
      "operating_area": OperatingArea,
      "simulated": false,
      "recent_positions" = [ RIDRecentAircraftPosition ]
    }
  ],
  "no_isas_present": false
}
timestamp Horário em que o Service Provider recebeu a requisição
flights.id

ID único do provedor que identifica um voo em particular

 

flights.aircraft_type Tipo de aeronave no padrão ICAO. Para drones, o tipo = Helicopter. Para drones de asa fixa que conseguem decolar verticalmente, o tipo = "HybridLift"
flights.current_state Dados do tracking de fato da aeronave, no momento atual.
flights.operating_area A área que a aeronave se encontra. Deve ser usado apenas quando o campo "flights.current_state" não está preenchido.
flights.recent_positions Lista de posições recentes da aeronave. Deve ser informado apenas quando as "recent_positions" foram requisitadas.
no_isas_present Indica se o provedor não possui nenhuma ISA na região informada. Caso esse valor retorne verdadeiro, o requisitante deve parar de realizar requisições para a área.

GET /uss/flights/{id}/details
Path Parameters
id ID único do provedor para identificar o voo uss1.JA6kHYCcByQ-6AfU
Response
{
  "details": {
    "id": "uss1.JA6kHYCcByQ-6AfU",
    },
    "uas_id": {
      "registration_id": "PP-031101998",
    },
    "operator_id": "HUKMBB",
    "operator_location": {
      "position": {
        "lng": -118.456,
        "lat": 34.123
      },
      "altitude": {
        "value": 19.5,
        "reference": "W84",
        "units": "M"
      },
      "altitude_type": "Takeoff"
    },
    "operation_description": "Descrição do voo, mesma descrição informada no SARPAS"
  }
}
uas_id Registro da aeronave no SISANT
operator_id Código SARPAS do operador
operator_location Localização do operador. Opcional
operation_description Descrição da Operação conforme solicitação no SARPAS

GET /uss/identification_service_areas/{id}
Path Parameters
id UUID da área possuída pelo provedor UUID
Response
{
  "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"
    }
  }
}
volume Volume 4D da área específica