0% acharam este documento útil (0 voto)
6 visualizações8 páginas

Integração com o Sistema SobControle

Este documento fornece instruções sobre como integrar um sistema com o sistema de sincronização SobControle, incluindo detalhes sobre acesso à fila SQS, formato das mensagens e exemplos de código para consumir as mensagens.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações8 páginas

Integração com o Sistema SobControle

Este documento fornece instruções sobre como integrar um sistema com o sistema de sincronização SobControle, incluindo detalhes sobre acesso à fila SQS, formato das mensagens e exemplos de código para consumir as mensagens.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Manual de Integração
SobControle

Sistema de Sincronização

Requisitos

Acesso

Você receberá junto com este manual os dados de acesso para o sistema de sincronização
SobControle. Estes dados serão específicos ao seu usuário e, portanto, não devem ser
compartilhados ou comprometidos.

- Id de acesso AWS (Access Key ID)


- Chave de acesso AWS (Secret Access Key)
- URL da fila SQS (SQS Endpoint)

1
SDK AWS

Para integrar com o sistema de sincronização recomendamos que seja usado o SDK da AWS.
O SDK está disponível pela própria AWS em diversas linguagens. Aqui estão algumas
referências:

- SDK da AWS
- SDK da AWS para [Link]
- Instalação do SDK para [Link]

Integração

Para realizar a integração, tendo as configurações citadas acima, é necessário simplesmente


acessar a fila SQS e consumir as mensagens. Esta operação é amplamente documentada pela
AWS. Alguns exemplos:

- Receber mensagens SQS - [Link]


- Receber mensagens SQS - .NET

Formato das mensagens

O formato de cada mensagem é detalhado da seguinte maneira:

{
"id": "uuid",
"tenant_id": "uuid",
"client_id": "uuid",
"asset_id": "uuid",
"tracker_id": "uuid",
"address_id": "uuid",
"point_location": {
"type": "Point",
"coordinates": [
number,
number
]
},
"point_direction": "N|S|W|E|NW|SW|NE|SE",
"point_speed": number,
"extras": {
"block": boolean,
"ignition": boolean,
"odometer": number,
"driver_id": "uuid",

2
"hourmeter": number,
"battery_voltage": number
},
"generated_at": "timestamp",
"received_at": "timestamp",
"created_at": "timestamp",
"updated_at": "timestamp"
}

id

Id da posição, uuid

string

tenant_id

Id da franquia, uuid

string

client_id

Id do cliente, uuid

string

asset_id

Id do ativo rastreado, uuid

string

3
tracker_id

Id do rastreador, uuid

string

address_id

Id do endereço, uuid

string

point_location

Informação geográfica da posição

point_location.type

Tipo de informação geográfica. Padrão "Point"

string

point_location.coordinates

Array de coordenadas, longitude e latitude respectivamente

Array<number>

point_direction

Direção apontada pelo rastreador

4
string

point_speed

Velocidade de movimento em Km/h

number

extras

Objeto contendo múltiplas informações sobre a posição

[Link]

Valor referente ao estado de bloqueio do rastreador

boolean

[Link]

Valor referente ao estado de ignição do ativo (veículo)

boolean

[Link]

Valor referente ao hodômetro do ativo (veículo) no momento em que a posição foi gerada

number

5
extras.driver_id

Id do motorista presente no momento em que a posição foi gerada

string

[Link]

Valor referente ao horímetro do ativo (veículo) no momento em que a posição foi gerada

number

extras.battery_voltage

Valor reference à bateria do ativo (veículo) em volts

number

generated_at

Data em que a posição foi gerada

timestamp

received_at

Data em que a posição foi recebida

timestamp

6
created_at

Data em que a posição foi criada no sistema

timestamp

updated_at

Data da última modificação feita no dado, incluindo criação

timestamp

Obtendo informações dos motoristas

Para obter informações dos motoristas é possível invocar a API REST da SobControle da
seguinte maneira:

Endpoint

GET /api/v1/drivers

Resultado

[
{
"id": "uuid",
"name": "string",
"phone": "string",
"address": {},
"state_document": "",
"federal_document": "",
"driver_identifier": {
"id": "uuid",
"code": number,
"hardware_code": number
}
}
]

7
Exemplo em Python

import boto3
import json
sqs = [Link]('sqs',
aws_access_key_id='access_key_id',
aws_secret_access_key='aws_secret_access_key')
queue = sqs.get_queue_by_name(QueueName='queue_endpoint')
def receive_message():
for message in queue.receive_messages(WaitTimeSeconds=20,
MaxNumberOfMessages=10):
jsonData = [Link]([Link])
print([Link](jsonData, indent=2))
# Avisa a fila que ja processou o dado
[Link]()
receive_message()
receive_message()

Você também pode gostar