Dieser Code funktioniert gut mit Java Bluecove Bluetooh Library. Es ist nur eine Hauptmethode, um eine direkte RFCCOMM-Verbindung zu testen.RFCOMM Bluetooth Direktverbindung: von BlueCove zu In der Hand 32Feet
Ich versuche, das gleiche in C# basierend auf "In The Hand 32Feet" Dienstprogramm libray zu tun Ich möchte einen Textbefehl senden und eine Antwort vom Gerät erhalten.
für Java-basierte On BlueCove (Adaequat!)
String serverURL = "btspp://XXXXXXXXXXXX:1;authenticate=false;encrypt=false;master=false";
StreamConnection sc = (StreamConnection) MicroeditionConnector.open(serverURL);
DataOutputStream os = sc.openDataOutputStream();
String text = "Send command";
byte data[] = text.getBytes();
os.write(data);
os.flush();
os.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(sc.openInputStream()));
StringBuilder out = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
out.append(line);
}
System.out.println("Receive data" + out.toString());
reader.close();
für C# in der Hand 32 Feet
Dies ist mein aktueller Versuch Umwandlung in C# basiert. ... aber das Problem ist, dass ich nicht auf peerStream zugreifen kann geschlossen ist? (gibt immer CanRead auf false zurück).
Wie Sie in dem Java BlueCove Beispiel sehen können, ist möglich, eine Verbindung mit einem doppelten Zweck zu öffnen: Output auf Befehle zu schreiben und ein Input das Ergebnis zu lesen sequenziell
Kann ich dies tun, in einer anderen Art und Weise?
String address = "00:00:00:00:00:00";
Guid mUUID = new Guid("00000000-0000-0000-0000-0000500b34fb");
BluetoothAddress addr = BluetoothAddress.Parse(address);
var btEndpoint = new BluetoothEndPoint(addr, mUUID);
var btClient = new BluetoothClient();
btClient.connect(btEndpoint);
Stream peerStream = btClient.GetStream();
using (StreamWriter sw = new StreamWriter(peerStream))
{
sw.WriteLine("Send command");
sw.Flush();
sw.Close();
}
if (peerStream.CanRead)
{
using (StreamReader sr = new StreamReader(peerStream))
{
while (sr.Peek() >= 0)
{
Debug.WriteLine("Receive data" + sr.ReadLine());
}
sr.Close();
}
}
btClient.Close();
btClient.Dispose();
Vielen Dank! Ihre Antwort funktioniert ordnungsgemäß. – Sara