<< Clique para Mostrar o Sumário >>
Consultas de Dados de Playback |
A quantidade de dados disponível para playback pode ser enorme, dependendo do aplicativo. Para tornar a navegação de Telas mais suave, o E3Playback executa consultas ao banco de dados em períodos de tempo chamados Fatias.
Cada fatia de dados de playback tem uma largura fixa de um dia. Sempre que o relógio é posicionado em uma determinada data e hora, o E3Playback cria ou encontra a fatia de tempo que contém a data e hora atual. Cada fatia de dados possui as seguintes informações:
•Período de tempo da fatia (data e hora inicial e final)
•Uma lista dos Tags que já têm os seus dados carregados na fatia
•Para cada Tag armazenado em uma fatia, são mantidos os seguintes dados:
•O último evento do Tag anterior ao início da fatia
•Todos os eventos do Tag dentro do intervalo da fatia
•O próximo evento do Tag após o final da fatia
•O sumário de alarmes no momento do início da fatia
•Todos os eventos de alarmes que ocorreram durante o intervalo da fatia
•O próximo evento de alarme de cada Fonte de Alarme após o final da fatia
Quando o relógio de playback é movido sobre uma fatia de tempo, o E3Playback analisa se todos os Tags necessários já estão carregados na fatia, e se todas as informações de alarme também já foram carregadas. Se estiver faltando algum dado, então é gerada uma consulta assíncrona para carregar os dados necessários do banco de dados. Uma consulta de dados de playback é composta dos seguintes parâmetros:
•Período que vai ser consultado (data e hora inicial e final)
•Conjunto de Tags que devem ser consultados (pode estar vazio). Para cada Tag deve ser retornado:
•O último evento anterior ao início da consulta
•Todos os eventos ocorridos durante o período da consulta
•O próximo evento que ocorreu após o período da consulta
•Informações de alarmes que devem ser consultadas, que podem ser zero ou mais das seguintes opções:
•Sumário de alarmes anterior (estado de cada Fonte de Alarme na data e hora inicial da consulta)
•Eventos de alarmes no período
•Sumário de alarmes posterior (próximo evento de cada Fonte de Alarme após a data e hora final do período)
Para executar uma consulta a dados de playback, normalmente são necessárias várias consultas ao banco de dados. O servidor de dados de playback efetua estas consultas de forma assíncrona e em um thread separado, coleta os dados e só os retorna quando todas as consultas tiverem terminado.
Quando uma consulta de playback é completada, os dados são imediatamente adicionados à fatia correspondente e o E3Playback automaticamente dispara consultas para atualizar as fatias vizinhas. Desta forma, à medida que o relógio de playback avança, as consultas de dados vão sendo realizadas, e quando o relógio passa para a próxima fatia é bem provável que esta já tenha todos os seus dados carregados.
Caso o relógio de playback esteja no modo Reproduzir e entre em uma fatia sem dados ou com dados incompletos, o E3Playback permanece temporariamente pausado aguardando até que as consultas daquela fatia sejam completadas.
O E3Playback também busca minimizar o acesso ao banco de dados, aproveitando as informações dos campos Último evento anterior, Próximo evento após, Sumário anterior e Sumário posterior para evitar que estes dados sejam consultados novamente. Por exemplo:
•Se uma consulta a um Tag não retornou o próximo evento após o período da consulta, é sinal de que este Tag não possui nenhum evento após a data e hora final da consulta, e portanto este Tag não precisa ser consultado nas fatias de tempo posteriores
•Se uma consulta retornou o sumário anterior, eventos de alarmes no período e o sumário posterior para uma fatia, é possível calcular o sumário anterior da próxima fatia simplesmente combinando o sumário anterior e os eventos ocorridos durante a fatia atual. Desta forma, torna-se desnecessário consultar no banco de dados o sumário anterior da próxima fatia