Configuração do provedor - ravexProvider
O arquivo tracking-ravex.war deve ser salvo na pasta webapps do Tomcat.
O arquivo application-tracking-ravex.properties deve ser salvo na pasta 'CPLConfig' e deve ser editado.
Configurando application-tracking-ravex.properties
É necessário editar as propriedades dentro do arquivo da seguinte maneira:
- server.port: mesma porta que está configurada para o tomcat utilizar (Exemplo: 8080)
- ravex.username: Usuário cadastrado para acesso ao serviço da Ravex
- ravex.password: Senha do usuário cadastrado para acesso ao serviço da Ravex
- ravex.url: Url de acesso ao serviço da ravex (Exemplo: http://api.risco.sistema.ravex.com.br)
Fluxo Sinais e macros
- O provedor Ravex chama o webservice de Token ao ser subido, gerando um token de autenticação de 14 dias, porém, para evitar perda de sinais por autenticação, o processo de renovação de token ocorre a cada 10 dias;
- Após ser autenticado, o provedor chama os webservices de ObterPacotePosicoesV2 e ObterMensagemRecebidaDeEquipamentoV1, nos quais obtemos os 200 primeiros sinais de posição (sinal com temperatura e velocidade, sem macro) e sinais de mensagem (sinal com macro, sem temperatura e velocidade) do dia corrente;
- Em seguida, é armazenado o último id de cada tipo de sinal recebido para a próxima busca;
- Ambos os sinais recebidos são convertidos para o padrão de sinal recebido pelo Tracking Central (RavexSignal);
- Caso haja sinais iguais (mesmo provider_id, timestamp e device_id) entre as listas, prevalece o sinal de posição com o acréscimo da macro;
- Os sinais são enviados ao Tracking Central.
Simulando sinais
1. Dar checkout no projeto dentro da branch Execution/TrackingProviders/RavexMock;
2. Abrir propmt de comando (cmd) e rodar os seguintes comandos na pasta do projeto: npm install && npm run json-server;
3. Configure a property 'ravex.url' em 'application-tracking-ravex.properties' para apontar para seu mock;
4. Suba o provedor. Por padrão, à cada 30 segundos, o mock criado será chamado e as posições e mensagens serão enviadas para o rastreamento.
Editar arquivo db.json levando em consideração que:
- ObterPacotePosicoesV2: é o mock referente aos sinais de posição no qual deve ser editado o conteúdo de "ListaPosicoes", podendo ter até 200 elementos
- ObterMensagemRecebidaDeEquipamentoV1: é o mock referente aos sinais de mensagem no qual deve ser editado o conteúdo de "ListaMensagens", podendo ter até 200 elementos
Exemplo de db.json
{ "Token": {}, "ObterPacotePosicoesV2": { "ListaPosicoes": [ { "IdPosicao": 1, "IdRastreador": 40902, "IdVeiculo": 6724, "Placa": "EKL9482", "IdEvento": 101, "NomeEvento": "Posição com ignição desligada", "Evento_Datahora": "2021-07-20T00:55:20Z", "GPS_Latitude": -23.322201, "GPS_Longitude": -46.720776, "GPS_Direcao": 192, "GPS_Velocidade": 1, "Hodometro": 35090, "Temperatura1": 21, "Ignicao": false, "IdInstalacaoTipo": 1010, "RastreadorPrincipalTipo": { "Nome": "GPRS-MP-RST-RST-LCv3", "TipoRastreadorPrincipal": 40 } } ] }, "ObterMensagemRecebidaDeEquipamentoV1": { "ListaMensagens": [ { "IdMensagemRecebida": 2, "IdEquipamento": 12535, "Placa": "LUC9405", "TipoMacro": 59, "DataCriacaoNoEquipamento": "2021-07-21T19:57:20Z", "Texto": "01640787038;", "IdVeiculo": 5941, "IdPosicoesEmEquipamento": null, "GPS_Latitude": -23.4901, "GPS_Longitude": -46.7662 } ] } }
Configurações em properties
MBR
- application-mbr.properties
- database.server.schema=${database.server.schema.gtw:DATABASE_NAME} -----> DATABASE_NAME sendo o nome da base utilizada no GTW
Monitoring
- application-monitoring.properties
- database.server.schema=${database.server.schema.gtw:DATABASE_NAME} -----> DATABASE_NAME sendo o nome da base utilizada no GTW
Tracking
- application-tracking.properties
- database.server.schema=${database.server.schema.gtw:DATABASE_NAME} -----> DATABASE_NAME sendo o nome da base utilizada no GTW
- tracking.providers.list[1] = ravex
Tracking Client
- application-tracking-client.properties
- neolog.tracking.central.url= apontar para URL do Tracking Central, no caso de ambientes de PROD/QA, é utilizada a URL de uma VM nossa.
Tracking Central
- application-database.properties
- spring.datasource.url=jdbc:postgresql://${database.server.host:nlg32v:5432}/${database.server.schema:DATABASE_SERVER_NAME} -----> DATABASE_SERVER_NAME sendo uma base distinta da base do GTW vazia que receba os sinais dos provedores
- application-tracking-central.properties
- database.server.schema=DATABASE_SERVER_NAME -----> DATABASE_SERVER_NAME sendo uma base distinta do GTW vazia que receba os sinais dos provedores