Esempio n. 1
0
        /// <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");
        }