C# obsługa bluetooth

0

Cześć,

mam taki problem, otóż wysyłam dane z uC przez UART do mojej aplikacji w C# i jeśli połączenie jest zrealizowane przez przejściówkę rs232->usb to wszystko jest ok, natomiast gdy użyje do tego Bluetooth dane przychodzą tak jak by z opóźnieniem, tak jak by się gdzieś zbierały w buforze. A co dziwne na innym terminalu dane przychodzą poprawnie. Do odbierania danych wykorzystuje port COM skojarzony z bluetooth. Niżej wstawię kod który służy mi do odbierania danych.

         private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {

            InputData = serialPort1.ReadTo("n");
            if (InputData != String.Empty)
            {
                SetText(InputData);
            }

        }

        private void SetText(string text)
        {
            if (this.voltage.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(SetText);
                this.Invoke(d, new object[] { text });
            }
            else
            {

                textBox2.Text += text;
                
            }

        }

Ktoś miałby jakiś pomysł dlaczego tak się dzieje?

Edit: Gdy zmienię "serialPort1.ReadTo("n");" na "serialPort1.ReadExisting();" odczytuje wszystko, jednak jest mi potrzebne to odczytywanie do pewnego znaku ze względu na komendy jakie wysyłam.

0

Jeżeli używasz .ReadExisting() to jest opóźnienie? No i jaki baudrate?

0

Czytaj znak po znaku do jakiegoś bufora, po wystąpieniu znaku kończącego, robisz sobie string z bufora i wszystko.
Liczysz jakieś sumy kuntrolne?

0

Dzięki za odpowiedzi.
Przy ReadExisting() opóźnienia nie ma, przychodzi wszystko. BaudRate: 9600.
Udało mi się rozwiązać to w ten sposób, że zamiast na końcu każdego pakietu wysyłać znak rozpoznawczy czyli 'n', wysyłam go już po wysłaniu wszystkich pakietów które mam do wysłania.
Wcześniej gdy co ok 2s wysyłałem 4 takie pakiety i na końcu każdego znak 'n' aplikacja odbierała tylko jeden pakiet, następnie przy ponownym wysłaniu danych przychodził drugi pakiet wysłany jeszcze z pierwszego razu, i tak dalej czyli wszytko się gromadziło i przychodziło z coraz większym opóźnieniem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1