/// <summary> /// Obtem Distancia do primeiro sensor ultrassom /// </summary> /// <param name="numeroSensor">Numero do sensor de ultrassom</param> /// <returns>Retorna objeto padrao de resultado, caso tenha sucesso, retorna a distancia enviada pelo microcontrolador</returns> public ResultadoAcao <decimal> ObterDistanciaUltrassom(int numeroSensor) { var resultado = new ResultadoAcao <decimal>(); if (Sensores == null) { resultado.Mensagem = "Lista de sensores nula, inicialize a lista e adicione um sensor de ULTRASSOM."; resultado.Resultado = ResultadoAcaoEnum.Erro; resultado.ObjetoRetorno = -1; return(resultado); } if (Sensores.Count == 0) { resultado.Mensagem = "Lista de sensores vazia, adicione um sensor de ULTRASSOM."; resultado.Resultado = ResultadoAcaoEnum.Erro; resultado.ObjetoRetorno = -1; return(resultado); } if (!Sensores.Any(a => a.TipoSensor == TipoSensorEnum.Ultrassom)) { resultado.Mensagem = "Lista de sensores não apresenta nenhum sensor de ULTRASSOM, adicione um sensor de ULTRASSOM."; resultado.Resultado = ResultadoAcaoEnum.Erro; resultado.ObjetoRetorno = -1; return(resultado); } Ultrassom sensor = numeroSensor == 0 ? Sensores.First(a => a.TipoSensor == TipoSensorEnum.Ultrassom) as Ultrassom : Sensores.Where(a => a.TipoSensor == TipoSensorEnum.Ultrassom).Cast <Ultrassom>().FirstOrDefault(b => b.NumeroSensor == numeroSensor); if (sensor == null) { resultado.Mensagem = "Não existe este número de sensor de ULTRASSOM."; resultado.Resultado = ResultadoAcaoEnum.Erro; resultado.ObjetoRetorno = -1; return(resultado); } throw new NotImplementedException("Implementar metodo de envio e retorno da distancia"); }