Xamarin Bluetooth не будет получать все байты - PullRequest
0 голосов
/ 26 марта 2020

Я пытался получать данные из программы windows Termite в моей программе Xamarin через Bluetooth. Это код, который я использовал для получения данных:

        public async Task BeginListenForData()
    {
        try
        {
            inStream = btSocket.InputStream;
            streamReader = new StreamReader(inStream);
        }
        catch (IOException ex)
        {
            Console.WriteLine(ex.Message);
        }

        char[] buffer = new char[256];
        int bytes;
        await Task.Run(async () =>
        {
            while (true)
            {
                try
                {
                    if ((bytes = await streamReader.ReadAsync(buffer, 0, buffer.Length)) > 0)
                    {
                        buffer = new Char[(int)streamReader.BaseStream.Length];
                        streamReader.Read(buffer, 0, (int)streamReader.BaseStream.Length);

                            System.Diagnostics.Debug.WriteLine(new String(buffer));

                            string eindtekst = new string(buffer, 0, bytes);
                            streamReader.DiscardBufferedData();

                        }
                    }
                    catch (Java.IO.IOException)
                    {
                        break;
                    }

                }
            }).ConfigureAwait(false) ;
            return;
        }

Но когда я использовал точку останова, он большую часть времени получает мое сообщение из двух частей. Например, в строке «Received» он получил сначала «R», а затем остальную часть строки «eceived». Есть ли способ получить сообщение как одну часть?

Эта часть кода: bytes = await streamReader.ReadAsync(buffer, 0, buffer.Length - это где bytes это первый 1, а затем 7 с примером строки «Received».

1 Ответ

0 голосов
/ 31 марта 2020

В другом вопросе, который я написал о другой проблеме, я решил эту проблему с ним Я разместил свой ответ на другой странице, поэтому я оставлю ссылку на другую страницу о том, как получать данные в Xamarin с помощью Bluetooth.

Как получать данные с помощью Bluetooth в xamarin

Спасибо за оказанную помощь

...