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()