Ce code fonctionne très bien en utilisant Java Bluecove Bluetooh Library. C'est juste une méthode principale pour sonder une connexion directe RFCCOMM.Connexion directe Bluetooth RFCOMM: de BlueCove à la main 32Feet
J'essaie de faire la même chose en C# basé sur "In The Hand 32Feet" utilitaire libray je voudrais envoyer une commande de texte et recevoir une réponse de l'appareil.
Pour Java Sur BlueCove (fonctionne très bien!)
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();
Pour C# Basé sur dans la main 32 pieds
Ceci est ma tentative actuelle convertir en C#. ... mais le problème est que je n'ai pas accès à peerStream est fermé? (retourne toujours CanRead à false).
Comme vous pouvez le voir dans l'exemple Java BlueCove est possible d'ouvrir une connexion avec un double objectif: OutputStream pour écrire des commandes et un InputStream pour lire le résultat en séquence
Puis-je faire cela d'une autre manière?
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();
Merci beaucoup! Votre réponse fonctionne correctement. – Sara