lmame
Messages postés12Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention 9 mai 2008
-
1 juin 2004 à 00:57
lmame
Messages postés12Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention 9 mai 2008
-
16 févr. 2006 à 15:12
Bonjour :)
J'essaie d'utiliser le "protocole" Obex qui permets de récupérer / envoyer des données (cartes de visites entre autres) d'un PC à un GSM...
Le GSM et le PC sont "liés" via Infrarouge, Bluetooth ou câble, en tous cas pour le PC c'est tout simplement un port COM...
Pour passer le GSM en mode "Obex" il faut lui envoyer en écrivant dans son port série:
"AT*EOBEX" (ou équivalent) et le GSM passe en mode obex.
Là pas de soucis...
Par contre ensuite il faut accéder au GSM en ouvrant une socket sur Obex... Et là je ne sais pas faire...
J'ai un peu tout essayé avec Winsock (AF_INET etc...) et je n'arrive pas à grand chose... Quelqu'un aurait'il déjà bossé dessus?
lmame
Messages postés12Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention 9 mai 2008 16 févr. 2006 à 15:12
Salut :)
En fait entre temps j'ai enfin compris comment ça marchait.
Il y a deux choses différentes, soit converser en "vrai" OBEX, soit utiliser un moyen détourné souvent dispo avec les GSM Sony Ericsson, AT*EOBEX.
En fait mon erreur a été ensuite d'essayer de me connecter via un socket alors qu'en fait une fois reçu le message 'OK' du GSM après le AT*EOBEX il suffit d'envoyer directement dans le port COM les chaînes de commande.
En fait les commandes s'envoient directement en caractères ASCII (à traduire ensuite en hexa), genre on envoie pour une demande de connexion:
80000710000400
et là on reçoit une réponse elle aussi codée en ascii (ici le code hexa):
A0
qui veut dire "OK"
80 veut en fait dire connexion demandée
00 07 veut dire 7 octets (longueur de cette trame ici)
10 version OBEX (1.0)
00 un flag
04 00 veut dire que les trames font 1024 octets
Bref tout con mais il fallait le réaliser.
En revanche, pour accéder directement à un GSM en OBEX, là c'est plus hard car il faut passer apparemment par la couche OBEX du driver BT et d'un driver à l'autre (fabriquant, genre TDK etc...) ça change... Et comme les SDK sont payants, c'est assez rébarbatifs.