private void EnviarDados() { var botaoApertado = VerificaBotao(); if (botaoApertado.Resultado != ResultadoAcaoEnum.Sucesso) { throw new Exception("Erro ao verificar botoes pressionados.. " + botaoApertado.Mensagem); } bool freioAtivo = VerificaFreioAtivo(); int frente = ObterVelocidadeFrente(); var traz = ObterVelocidadeTraz(); if (freioAtivo) { frente = 0; } else { traz = 0; } var velo = frente - traz; int veloRodaEsquerda = velo; int veloRodaDireita = velo; if (State.X >= 0) { int coeficienteRodasDireita = State.X; veloRodaDireita = (velo * (255 - coeficienteRodasDireita)) / 255; } else { int coeficienteRodasEsquerda = State.X * -1; veloRodaEsquerda = (velo * (255 - coeficienteRodasEsquerda)) / 255; } VelocidadeDireita = veloRodaDireita.ToString(); VelocidadeEsquerda = veloRodaEsquerda.ToString(); foreach (var motorDireita in Carro.Motores) { motorDireita.Potencia = motorDireita.LadoMotor == LadoMotorEnum.Direita ? veloRodaDireita : veloRodaEsquerda; } var result = Carro.AtualizarMotores(); if (result.Resultado != ResultadoAcaoEnum.Sucesso) { throw new Exception("Erro ao atualizar motores.. " + result.Mensagem); } }