68 lines
2.6 KiB
C#
68 lines
2.6 KiB
C#
using AgroBase.Models;
|
|
using AgroBase.Services;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace AgroMonitor
|
|
{
|
|
public class VariaveisMonitoramento
|
|
{
|
|
public static LoRaService ComunicacaoLoRa = new LoRaService();
|
|
public static Dictionary<byte, LoRaProtocoloTransmissaoModel> EquipamentosConectados
|
|
{
|
|
get
|
|
{
|
|
var Equipamentos = new Dictionary<byte, LoRaProtocoloTransmissaoModel>()
|
|
{
|
|
{ ComunicacaoLoRa.parametros.address, new LoRaProtocoloTransmissaoModel() }
|
|
};
|
|
|
|
if (LoRaService.Iniciado)
|
|
{
|
|
// Mensagens dos equipamentos conectados dentro dos ultimos 10 segundos
|
|
var Mensagens = LoRaService.LeituraDadosOperacao.Where(x => x.Momento.AddMilliseconds(VariaveisEquipamento.TempoEntrePingsConexao) < DateTime.Now).ToList();
|
|
var _equipamentos = Mensagens
|
|
.GroupBy(x => x.EnderecoCarro)
|
|
.OrderBy(x => x.Key)
|
|
.ToDictionary(x => x.Key, x => x.OrderByDescending(y => y.Momento).FirstOrDefault());
|
|
foreach (var item in _equipamentos)
|
|
{
|
|
Equipamentos.Add(item.Key, item.Value);
|
|
}
|
|
}
|
|
|
|
return Equipamentos;
|
|
}
|
|
}
|
|
public static Dictionary<byte, List<LoRaProtocoloTransmissaoModel>> EquipamentosConectadosLogs
|
|
{
|
|
get
|
|
{
|
|
var Equipamentos = new Dictionary<byte, List<LoRaProtocoloTransmissaoModel>>()
|
|
{
|
|
{ ComunicacaoLoRa.parametros.address, new List<LoRaProtocoloTransmissaoModel>() }
|
|
};
|
|
|
|
if (LoRaService.Iniciado)
|
|
{
|
|
// Mensagens dos equipamentos conectados dentro dos ultimos 10 segundos
|
|
var Mensagens = LoRaService.LeituraDadosOperacao.Where(x => x.Momento.AddMilliseconds(VariaveisEquipamento.TempoEntrePingsConexao) < DateTime.Now).ToList();
|
|
var _equipamentos = Mensagens
|
|
.GroupBy(x => x.EnderecoCarro)
|
|
.ToDictionary(x => x.Key, x => x.OrderBy(y => y.Momento).ToList());
|
|
foreach (var item in _equipamentos)
|
|
{
|
|
Equipamentos.Add(item.Key, item.Value);
|
|
}
|
|
}
|
|
|
|
return Equipamentos;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|