Raspbian выключение из Windows IoT Core - PullRequest
0 голосов
/ 29 декабря 2018

Я создаю приложение Windows UWP в Visual Studio, которое работает на Raspberry Pi 3B.Из этого я хотел бы выключить / перезагрузить еще один Raspberry Pi с Raspbian.Это возможно и как?Заранее спасибо

1 Ответ

0 голосов
/ 31 декабря 2018

Да, это возможно.Вы можете использовать SSH-клиент, такой как Chilkat.Ssh или Asmodat.Standard.SSH.NET в приложении UWP, чтобы подключиться к Raspbian, а затем отправить команду выключения / перезагрузки (например,sudo shutdown –h now) к нему.Asmodat.Standard.SSH.NET, если бесплатная библиотека, но Chilkat.Ssh нет.Вы можете найти некоторые другие библиотеки SSH, которые могут поддерживать .Net Standard 2.0 / UAP 10.

Обновление:

Следующий фрагмент кода с использованием Asmodat.Standard.SSH.NET библиотека.Он работает в моем приложении UWP, работающем в Windows IoT Core.

C # :

    private async void ButtonReboot_Click(object sender, RoutedEventArgs e)
    {
        await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,  async () =>
        {
            using (var client = new SshClient("xxx.xxx.xxx.xxx", "xx", "xxxxxxx"))
            {
                client.Connect();
                var command = client.CreateCommand("sudo reboot -f");
                var asyncResult = command.BeginExecute();
                var reader = new StreamReader(command.OutputStream);

                while (!asyncResult.IsCompleted)
                {
                    await reader.ReadToEndAsync();
                }

                command.EndExecute(asyncResult);

                client.Disconnect();
            }
        });
    }

VB.NET

Private Async Sub ButtonReboot_Click(sender As Object, e As RoutedEventArgs)

    Await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
            Async Sub()
                Using sClient = New SshClient("XXX.XXX.XXX", "XX", "XXXX")
                    sClient.Connect()
                    If sClient.IsConnected Then
                        Dim sCommand = sClient.CreateCommand("sudo reboot -f \r\n")
                        Dim asyncResult = sCommand.BeginExecute()
                        Dim reader = New StreamReader(sCommand.OutputStream)

                        While Not asyncResult.IsCompleted
                            Await reader.ReadToEndAsync()
                        End While

                        sCommand.EndExecute(asyncResult)

                        Debug.WriteLine("Reboot")
                        sClient.Disconnect()
                    End If
                End Using
            End Sub)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...