InovaFiscaliza / appColeta

Aplicação de coleta de dados em monitorações do espectro de radiofrequências.
GNU General Public License v3.0
1 stars 1 forks source link

winAppColetaV2 - Controle de erro #6

Closed EricMagalhaesDelgado closed 1 year ago

EricMagalhaesDelgado commented 1 year ago

Aspecto estético:

Aspecto funcional relacionado ao RECEPTOR:

Aspecto funcional relacionado ao GPS:

Em relação ao checkbox 2, talvez um melhor approach seja manter o contador de erros e a definição de tempo aceitável (1 minuto, por exemplo) - atingindo esse tempo, a tarefa muda de "Em andamento" para "Erro" -, mas nos instantes 0 seg, 10 seg, 20 seg... até 60 seg, o app faz algumas coisas a mais pra tentar a reconexão, como acionar o TCPClient.connect ou recriar o tcpclient, por exemplo.

O errorCount vira uma estrutura com campos: CreatedTime (inicialmente, ou sempre que a conexão for bem sucedida, NaT), LastTime e Count. Quando LastTime-CreatedTime > 1min, muda-se o estado da tarefa.

EricMagalhaesDelgado commented 1 year ago

O controle de erro do RECEPTOR se dá na função "RegularTask_MainLoop". O app tentará reativar a conexão toda vez que o contador de erro atingir um múltiplo de "class.Constants.errorCountTrigger". E, além disso, caso ultrapassado o tempo (em segundos) definido em "class.Constants.errorTimeTrigger", o app trocará o estado da tarefa de "Em andamento" → "Erro".

Já o controle de erro do GPS, por outro lado, se dá diretamente aqui, nesta função, e é restrito ao caso em que o receptor é "External", ou seja, não se trata de GPS embarcado no RECEPTOR (mas de GPS conectado à porta USB do computador que executa o app, por exemplo). Caso a tarefa seja do tipo "Drive-test", toda vez que for manifestada uma desconexão, o app tentará reativar a conexão. Ou, em sendo uma tarefa de outro tipo, o app tentará reativar a conexão toda vez que o contador de erro atingir um múltiplo de "class.Constants.errorGPSCountTrigger".