private ResultadoAcao VerificaBotao() { ResultadoAcao result = new ResultadoAcao(); byte[] buttons = State.GetButtons(); if (!buttons.Any(a => a == 128)) { result.Mensagem = "Nenhum botão pressionado"; return(result); } // botao A do controle do Xbox if (buttons[0] == 128) { result = Carro.AcenderFarol(); } // botao B do controle do Xbox if (buttons[1] == 128) { result = Carro.ApagarFarol(); } return(result); }
private ResultadoAcao VerificaSensoresLed() { ResultadoAcao resultado = new ResultadoAcao(); if (Sensores == null) { resultado.Mensagem = "Lista de sensores nula, inicialize a lista e adicione um sensor de LED Farol Frontal."; resultado.Resultado = ResultadoAcaoEnum.Erro; return(resultado); } if (Sensores.Count == 0) { resultado.Mensagem = "Lista de sensores vazia, adicione um sensor de LED Farol Frontal."; resultado.Resultado = ResultadoAcaoEnum.Erro; return(resultado); } if (!Sensores.Any(a => a.TipoSensor == TipoSensorEnum.Led)) { resultado.Mensagem = "Lista de sensores não apresenta nenhum sensor de LED Farol Frontal, adicione um sensor de LED Farol Frontal."; resultado.Resultado = ResultadoAcaoEnum.Erro; return(resultado); } return(resultado); }
private ResultadoAcao EnviarDadosFarol(bool ligar) { ResultadoAcao resultadoEnviaDadosFarol = new ResultadoAcao(); foreach (var farolFrontal in Sensores.Where(a => a.TipoSensor == TipoSensorEnum.Led).Cast <FarolFrontal>()) { if (ligar) { farolFrontal.LigarFarol(); } else { farolFrontal.DesligarFarol(); } var codificar = farolFrontal.Codificar(); var resultadoEnviarDados = Comunicacao.EnviarDados(codificar); if (resultadoEnviarDados.Resultado != ResultadoAcaoEnum.Sucesso) { resultadoEnviaDadosFarol = resultadoEnviarDados; return(resultadoEnviaDadosFarol); } resultadoEnviaDadosFarol.Mensagem += codificar + "enviado.\r\n"; } return(resultadoEnviaDadosFarol); }
/// <summary> /// Enviar comando com separador de linha para o microcontrolador /// </summary> /// <param name="comando">comando para que será implementado no microcrontrolador</param> /// <returns>Resultado do envio</returns> public ResultadoAcao EnviarLinhaDados(string comando) { ResultadoAcao resultadoAcao = VerificaPortaSerialIsOpen(); if (resultadoAcao.Resultado == ResultadoAcaoEnum.Sucesso) { _serialPort.WriteLine(comando); } return(resultadoAcao); }
private static ResultadoAcao VerificaPortaSerialIsOpen() { var resultadoAcao = new ResultadoAcao(); if (!_serialPort.IsOpen) { resultadoAcao.Mensagem = "Porta Serial não aberta. Por favor, chame o método AbrirPorta()."; resultadoAcao.Resultado = ResultadoAcaoEnum.Erro; } return(resultadoAcao); }
/// <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"); }
private ResultadoAcao VerificaMotores() { var resultado = new ResultadoAcao(ResultadoAcaoEnum.Sucesso, string.Empty); if (Motores == null) { resultado.Mensagem = "Lista de motores nula, inicialize a lista com os motores."; resultado.Resultado = ResultadoAcaoEnum.Erro; return(resultado); } if (Motores.Count == 0) { resultado.Mensagem = "Lista de motores vazia, adicione motores na lista com os motores."; resultado.Resultado = ResultadoAcaoEnum.Erro; return(resultado); } return(resultado); }
/// <summary> /// Abre porta serial para transmitir os dados /// </summary> /// <returns>Retorna Sucesso caso porta esteja ou seja aberta</returns> public ResultadoAcao AbrirPorta() { var resultadoAcao = new ResultadoAcao(ResultadoAcaoEnum.Sucesso, string.Format("Serial {0} aberta com sucesso", _serialPort.PortName)); if (_serialPort.IsOpen) { resultadoAcao.Mensagem = string.Format("Porta {0} já está aberta", _serialPort.PortName); } try { _serialPort.Open(); _serialPort.WriteBufferSize = 8; } catch (Exception exception) { resultadoAcao.Mensagem = exception.Message; resultadoAcao.Resultado = ResultadoAcaoEnum.Erro; } return resultadoAcao; }
/// <summary> /// Abre porta serial para transmitir os dados /// </summary> /// <returns>Retorna Sucesso caso porta esteja ou seja aberta</returns> public ResultadoAcao AbrirPorta() { var resultadoAcao = new ResultadoAcao(ResultadoAcaoEnum.Sucesso, string.Format("Serial {0} aberta com sucesso", _serialPort.PortName)); if (_serialPort.IsOpen) { resultadoAcao.Mensagem = string.Format("Porta {0} já está aberta", _serialPort.PortName); return(resultadoAcao); } try { _serialPort.WriteBufferSize = 8; _serialPort.Open(); } catch (Exception exception) { resultadoAcao.Mensagem = exception.Message; resultadoAcao.Resultado = ResultadoAcaoEnum.Erro; } return(resultadoAcao); }
private static ResultadoAcao VerificaPortaSerialIsOpen() { var resultadoAcao = new ResultadoAcao(); if (!_serialPort.IsOpen) { resultadoAcao.Mensagem = "Porta Serial não aberta. Por favor, chame o método AbrirPorta()."; resultadoAcao.Resultado = ResultadoAcaoEnum.Erro; } return resultadoAcao; }
/// <summary> /// Recebe Dados do tipo de comunicação /// </summary> /// <returns>Dados retornados</returns> public ResultadoAcao<string> ReceberDados() { var resultadoAcao = new ResultadoAcao<string>(); resultadoAcao.ObjetoRetorno = _serialPort.ReadLine(); return resultadoAcao; }
/// <summary> /// Acende Farol Frontal /// </summary> /// <returns>Resultado da acao de acender o farol</returns> public ResultadoAcao AcenderFarol() { var resultado = new ResultadoAcao(); var verificacaoSensoresLed = VerificaSensoresLed(); if (verificacaoSensoresLed.Resultado == ResultadoAcaoEnum.Erro) { return verificacaoSensoresLed; } throw new NotImplementedException("Implementar metodo que acende os farois"); }
private ResultadoAcao VerificaSensoresLed() { ResultadoAcao resultado = new ResultadoAcao(); if (Sensores == null) { resultado.Mensagem = "Lista de sensores nula, inicialize a lista e adicione um sensor de LED Farol Frontal."; resultado.Resultado = ResultadoAcaoEnum.Erro; return resultado; } if (Sensores.Count == 0) { resultado.Mensagem = "Lista de sensores vazia, adicione um sensor de LED Farol Frontal."; resultado.Resultado = ResultadoAcaoEnum.Erro; return resultado; } if (!Sensores.Any(a => a.TipoSensor == TipoSensorEnum.Led)) { resultado.Mensagem = "Lista de sensores não apresenta nenhum sensor de LED Farol Frontal, adicione um sensor de LED Farol Frontal."; resultado.Resultado = ResultadoAcaoEnum.Erro; return resultado; } return resultado; }
private ResultadoAcao VerificaMotores() { var resultado = new ResultadoAcao(ResultadoAcaoEnum.Sucesso, string.Empty); if (Motores == null) { resultado.Mensagem = "Lista de motores nula, inicialize a lista com os motores."; resultado.Resultado = ResultadoAcaoEnum.Erro; return resultado; } if (Motores.Count == 0) { resultado.Mensagem = "Lista de motores vazia, adicione motores na lista com os motores."; resultado.Resultado = ResultadoAcaoEnum.Erro; return resultado; } return resultado; }
/// <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"); }