private static void AlterarEstadoBraco(Braco braco, EBracoEstado bracoEstado) { bool estadoAlterado = braco.AlterarEstado(bracoEstado); if (!estadoAlterado) { Console.Clear(); Console.WriteLine($"Não é possível alterar o estado do braço para {bracoEstado} no momento."); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } }
private static void AtualizarMenuBraco(Drone drone, EBracoLado bracoLado) { string opcaoMenuBraco; bool continuarNoMenuBraco = true; Braco braco = drone.BracoEsquerdo; if (bracoLado == EBracoLado.Direito) { braco = drone.BracoDireito; } while (continuarNoMenuBraco) { Console.Clear(); Console.WriteLine("-----------------------------------------------------------------"); Console.WriteLine($"### Braço {bracoLado} ###"); Console.WriteLine($"Estado atual do braço {bracoLado}: {braco.EstadoAtual}"); Console.WriteLine($"Braço {bracoLado} ocupado: {(braco.Ocupado ? "Sim" : "Não")}"); Console.WriteLine($"Estado atual do cotovelo {bracoLado}: {braco.Cotovelo.EstadoAtual}"); Console.WriteLine($"Ângulo atual do pulso {bracoLado}: {braco.Pulso.AnguloRotacao}"); Console.WriteLine($"R- Colocar braço {bracoLado} em atividade."); Console.WriteLine($"T- Colocar braço {bracoLado} em repouso."); Console.WriteLine($"Y- Contrair ou Descontrair cotovelo {bracoLado}."); Console.WriteLine($"D- Aumentar a rotação do ângulo do pulso {bracoLado} progressivamente."); Console.WriteLine($"A- Diminuir a rotação do ângulo do pulso {bracoLado} progressivamente."); Console.WriteLine($"4- Especificar a rotação do ângulo do pulso {bracoLado}."); Console.WriteLine($"F- Ferramenta Pegar do braço {bracoLado}."); Console.WriteLine($"G- Armazenar do braço {bracoLado}."); if (bracoLado == EBracoLado.Esquerdo) { Console.WriteLine($"B- Ferramenta Bater."); } else { Console.WriteLine($"X- Ferramenta Cortar."); Console.WriteLine($"C- Ferramenta Coletar."); } Console.WriteLine("V- Voltar para menu principal."); Console.WriteLine("-----------------------------------------------------------------"); var readKeyMenuBraco = Console.ReadKey(); opcaoMenuBraco = readKeyMenuBraco.KeyChar.ToString().ToUpper(); continuarNoMenuBraco = LerOpcaoDoMenuBraco(braco, opcaoMenuBraco, bracoLado); } }
private static bool LerOpcaoDoMenuBraco(Braco braco, string opcaoMenuBraco, EBracoLado bracoLado) { switch (opcaoMenuBraco) { case "R": AlterarEstadoBraco(braco, EBracoEstado.EmAtividade); break; case "T": AlterarEstadoBraco(braco, EBracoEstado.EmRepouso); break; case "Y": braco.Cotovelo.MudarEstadoCotovelo(); break; case "D": braco.Pulso.ModificarAnguloDeRotacao(EDirecaoAngulo.Positivo); break; case "A": braco.Pulso.ModificarAnguloDeRotacao(EDirecaoAngulo.Negativo); break; case "4": Console.Clear(); Console.WriteLine("Informe o ângulo: "); ushort valorAngulo = Convert.ToUInt16(Console.ReadLine()); braco.Pulso.ModificarAnguloDeRotacao(valorAngulo); break; case "F": if (!braco.Pegar()) { Console.Clear(); Console.WriteLine($"{MsgFerramentaIndisponivelParaUso} E cotovelo deve estar contraído."); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } break; case "G": if (!braco.ArmazenarObjeto()) { Console.Clear(); Console.WriteLine($"{MsgFerramentaIndisponivelParaUso} E cotovelo deve estar em repouso."); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } break; case "B": if (bracoLado == EBracoLado.Esquerdo) { if (!((BracoEsquerdo)braco).Bater()) { Console.Clear(); Console.WriteLine($"{MsgFerramentaIndisponivelParaUso} E cotovelo deve estar contraído."); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } } break; case "X": if (bracoLado == EBracoLado.Direito) { if (!((BracoDireito)braco).Cortar()) { Console.Clear(); Console.WriteLine($"{MsgFerramentaIndisponivelParaUso} E cotovelo deve estar contraído."); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } } break; case "C": if (bracoLado == EBracoLado.Direito) { if (!((BracoDireito)braco).Coletar()) { Console.Clear(); Console.WriteLine($"{MsgFerramentaIndisponivelParaUso} E cotovelo deve estar em repouso."); Console.WriteLine("Pressione qualquer tecla para continuar..."); Console.ReadKey(); } } break; case "V": return(false); default: return(true); } return(true); }