private async Task<SshCommand> ExecuteCommandAsync(string command) { if (status.SelectedNAO == null) { LogError("No address selected for NAO"); } else { NAORemote.NAORemote remote = new NAORemote.NAORemote(status.SelectedNAO.IP, "nao", "nao", "/home/nao"); remote.Error += remote_Error; bool connected = await remote.ConnectAsync(); if (connected) { var remoteCommand = await remote.ExecuteCommandAsync(command); remote.Disconnect(); return remoteCommand; } } return null; }
public async void Start() { status.IsSearchingForNAO = true; while (status.IsSearchingForNAO) { await naoDiscoverer.DiscoverNAO(); if (naoDiscoverer.NAOs.Count > 0) { naoRemote = new NAORemote.NAORemote(naoDiscoverer.NAOs[0].IP, "nao", "nao"); naoRemote.Connect(); status.IsSearchingForNAO = false; status.DiscoveredNAOs = new ObservableCollection<NAOHost>(naoDiscoverer.NAOs); status.SelectedNAO = naoDiscoverer.NAOs[0]; } } string character = Environment.GetCommandLineArgs().Length > 1 ? Environment.GetCommandLineArgs()[1] : ""; naoThalamusClient = await ConnectThalamusAsync(character, status.SelectedNAO.IP); CheckPythonInstalledAsync(); CheckBehavioursInstalledAsync(); await shellControl.Connect(status.SelectedNAO.IP, "nao", "nao"); if (!await CheckIsPythonRunning()) { RunPythonAsync(); PythonChecker(); NaoQiChecker(); } else { LogError("Python already running. You have to manually stop it and run again this application"); } }