PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile (earlier versions) → [WM17] Communication BlueTooth
[WM17] Communication BlueTooth
Started by frank, Mar., 18 2013 4:04 PM - 2 replies
Posted on March, 18 2013 - 4:04 PM
Bonjour,
Je souhaite faire communiquer un appareil Android avec des robots en BlueTooth (Lego NXT, Aspirateur Roomba et cartes Arduino). La connexion se fait (notamment récupération de l'adresse mac) mais pas moyen d'envoyer ou de lire qqc.
Je suis partis de l'exemple system Android (juste la partie BlueTooth) et dans la partie "Sélection d'une ligne ZR périphérique" j'ai rajouté :
RésultatConnexion=SocketConnecteBluetooth(SocketEnCours,"SerialPortServiceClass_UUID",ATT_MAC)

Qui semble marcher (retourne 1)
J'ai ensuite tenté d'envoyer un télégramme en faisant :

TélégrammeBuffer est un Buffer
EnTêteBuffer[[1]]=5 // nombre d'octet à transmettre lsb page 4 doc NXT
EnTêteBuffer[[2]]=0// nombre d'octet à transmettre msbpage 4 doc NXT

TélégrammeBuffer[[1]]=0x80 // Commande directe sans attente de réponse
TélégrammeBuffer[[2]]=0x05 // SetInputMode
TélégrammeBuffer[[3]]=0x00 // Port 0 (=1)
TélégrammeBuffer[[4]]=0x05 // Allumer la lumière
TélégrammeBuffer[[5]]=0x00 // Sensor mode

Résultat=SocketEcrit(SocketEnCours,TélégrammeBuffer)

Mais rien ne se passe.
Je n'ai pas bien compris la différence entre les fonctions SocketCréeBluetooth et SocketConnecteBluetooth.
SocketCréeBluetooth me renvoie systématiquement l'erreur "not able to register SDP record for".
Par contre la fonction SocketConnecteBluetooth semble marcher sauf qu’ensuite ni SocketLit ni SocketEcrit ne fond rien.
Il est dit que "La connexion est établie au premier succès de la fonction SocketLit sur le serveur" J'ai donc rajouté une fonction SocketLit mais elle ne renvoie jamais rien.
Mes écritures (avec SocketEcrit) ont l'air de marcher (coté Android) mais rien ne se passe en face (coté NXT).

Les fonctions de BlueTooth marchent elles dans WM ? Ca fait plus d'une semaine que j'essaye sans succés.

J'apprécierais vraiment un peu d'aide.

Merci.
Frank
Posted on November, 01 2014 - 8:39 AM
J'ai un problème similaire. Avez-vous trouvé une solution, finalement?

P.s : je déplore le fait que vous n'avez toujours pas reçu de solution de la part de Pcsoft.
Posted on July, 04 2016 - 10:22 PM
Bonjour, Je rencontre le même problème.

Je souhaiterais aussi dans un premier temps envoyer des commandes en Bluetooth à partir de Windev à une carte Arduino.
La première étape est de trouver l'adresse MAC de la carte Arduino :
Le code de l'exemple WD Bluetooth permet de dresser la liste des périphériques.

Jusque là tout va bien. La carte Arduino est visible et je dispose de son adresse MAC.
Ensuite une tentative de connexion avec le code suivant :
e est un booléen
SocketEnCours ="so01"
MacDispositif ="00:08:09:03:20:b2"

e =SocketConnecteBluetooth(SocketEnCours,"SerialPortServiceClass_UUID",MacDispositif)

SI e ALORS
RetourExiste=SocketExiste(SocketEnCours)
LIB_01="Connexion établie avec : " + SocketEnCours + RC+ "Adresse MAC : " +MacDispositif+RC+"SocketExiste : "+RetourExiste
SINON
LIB_01="Connexion impossible "
FIN

Je reçois le message d'erreur "Connexion impossible"
Je n'ai pas trouvé d'exemple sur la méthode à utiliser pour établir une connexion Bluetooth avec Windev. L'exemple WD bluetooth permet de voir les périphériques et leurs services mais pas de s'y connecter.

Quelqu'un pourrait-il me donner une piste à suivre ?
Merci pour votre temps.