Может ли Raspberry Pi с Win10 IoT одновременно использовать как Wi-Fi, так и Bluetooth-соединение? - PullRequest
0 голосов
/ 15 мая 2019

Я все еще новичок в программировании. Я столкнулся с проблемой моей проблемы, когда пи не могли использовать Wi-Fi и Bluetooth одновременно. Это потому, что изначально код без элемента bluetooth работает нормально. Но когда я добавил код Bluetooth в программу, это просто странно. Он не мог получить какие-либо данные из Firebase через Wi-Fi. Действительно ли они не могут работать вместе в одно и то же время или это неправильно с кодом. Это из-за сокетстрима что-то вроде этого? Действительно спасибо за помощь.

Ссылка на код слишком длинная.

1 Ответ

0 голосов
/ 16 мая 2019

Я проверил с вашим кодом. Приложение получит исключение «Доступ запрещен», что приведет к сбою приложения. Поэтому вам нужно добавить try catch в функцию DeviceWatcher_Added, чтобы приложение не сбрасывало память, когда Bluetooth не мог подключиться.

    private async void DeviceWatcher_Added(DeviceWatcher sender, DeviceInformation args)
    {
        try
        {
            var device = await BluetoothDevice.FromIdAsync(args.Id);

            var services = await device.GetRfcommServicesAsync();
            if (services.Services.Count > 0)
            {
                var service = services.Services[0];

                stream = new StreamSocket();
                await stream.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);

                rx = new DataReader(stream.InputStream);
                tx = new DataWriter(stream.OutputStream);

                await this.Dispatcher.RunAsync(
                    Windows.UI.Core.CoreDispatcherPriority.Normal,
                    () => { Device_9.IsEnabled = true; });

                deviceWatcher.Stop();
            }
        }
        catch(Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(ex.Message);
        }
    }

Кстати, вы можете сослаться на пример, упомянутый в моем первом комментарии, он показывает, как подключить RfcommService для связи с Bluetooth. Обратите внимание, что в этом примере сервер создает RfcommServiceProvider с помощью guid, и клиент соединяет сервер с RfcommService из этого guid как uuid.

        var rfcommServices = await bluetoothDevice.GetRfcommServicesForIdAsync(
            RfcommServiceId.FromUuid(Constants.RfcommChatServiceUuid), BluetoothCacheMode.Uncached);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...