Witam.
Mam problem z komunikacją komputera z urządzeniem docelowym przez bluetooth.
Komunikacja powinna wyglądać tak, że urządzenie odsyła do komputera taką samą wartość, jaką komputer wysłał do urządzenia. Po napisaniu prostej aplikacji mam taki wynik:
Jak widać, po otwarciu portu są wysyłane jakieś śmieci. Następnie dopiero po kilkukrotnym wysłaniu jednej wartości odpowiedź jest prawidłowa. Wygląda na to, że od strony urządzenia wszystko jest w porządku, bo sprawdziliśmy to oscyloskopem.
Na tym screenie wysyłana jest komenda łączenia z urządzeniem:
i po otrzymaniu przez komputer odpowiedzi połączenie nie zostaje nawiązane. Z komputera wychodzi prawidłowa wartość, bo urządzenie dobrze ją interpretuje, z urządzenia także wychodzi prawidłowa wartość, co widać na oscyloskopie, natomiast komputer jakby nie potrafił jej dobrze zinterpretować. Załączam kod z aplikacji:
private void button2_Click(object sender, EventArgs e) //wysyłanie wartości z textbox'a
{
if (serialPort1.IsOpen == true)
{
serialPort1.Write(textBox1.Text.ToString());
}
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) //oczekiwanie na odpowiedź
{
odbior = serialPort1.ReadByte();
listBox1.Items.Add("Wyslano: "+ textBox1.Text.ToString()+" Odebrano: "+Convert.ToChar(odbior).ToString());
}
Dodatkowo, jeśli łączę się z urządzeniem po kablu przez USB wszystko jest ok, cała komunikacja działa bezproblemowo. Problemy się zaczynają, jeśli chcę nawiązać połączenie przez bluetooth.
Moje pytanie w tym momencie brzmi, dlaczego tak się dzieje i co mogę zrobić, żeby komunikacja działała dobrze?