Forum openmoko-fr.org

Forum de la communauté francophone autour du projet OpenMoko

Vous n'êtes pas identifié.

Annonce

Bienvenue sur ce forum.

Face à un afflux de spammers, les inscriptions ont été désactivée.
Si vous souhaitez vous inscrire, il faudra en faire la demande auprès du webmaster (voir la section "Contact" sur le Blog).

#1 15-06-2010 04:47:28

misc
Addicted-Moko
Lieu: Clamart
Date d'inscription: 10-04-2009
Messages: 724

Faire apparaitre le FR comme smartphone quand on utilise le bluetooth

En cherchant une fonctionnalité encore non codé de bluez, je suis tombé sur une page web qui explique comme changer la class donné par son appareil bluetooth. La classe, c'est ce qui permet notament d'avoir une icone de téléphone, d'ordinateur, etc, dans les interfaces graphiques. Et je doit reconnaitre que j'ai toujours été un peu chagriné de voir que le FR n'apparait pas comme téléphone dans blueman.

Et donc, à force d'expérimentation, j'ai trouvé la commande :

# hciconfig hci0 class 0x22020C

ce qui donne :

# hciconfig hci0 class
hci0:    Type: BR/EDR  Bus: USB
    BD Address: 00:06:6E:18:EF:34  ACL MTU: 384:8  SCO MTU: 64:8
    Class: 0x22020c
    Service Classes: Networking, Audio
    Device Class: Phone, Smart phone

Alors pour grosso modo expliquer, la classe est composé de 3 octets successifs. Le premier, 0x22, c'est le champ qui apparait à la ligne service class. Il y a 8 drapeaux, numéroté de 0 à 7 :

"Positioning" ( 0 )
"Networking",
"Rendering",
"Capturing",
"Object Transfer",
"Audio",
"Telephony",
"Information" ( 7 )

On peut combiner, donc dans mon cas, j'ai 0x20 ( soit 32, soit 2^5 ) + 0x02 ( soit 2^1 ) pour avoir les classes Networking & Audio.

Ensuite, on a le numéro de périphérique majeur. Il y en a aussi 8 ( mais en pratique, il y a de la place pour 2^6 numéro  ), mais c'est plus des drapeaux, c'est des entiers sequentiels. Donc le 01, c'est "computer", le 02, c'est "phone", etc, etc.

Enfin, il y a le numéro mineur, qui dépend du mode majeur. Pour ça, il faut décaler de 2 bits la gauche, car la norme demande à finir par 2 zeros consecutifs.

Par exemple, si je veut avoir "smartphone", qui a le numéro 3 d'un device de type "phone"., je prends 3, je décale vers la gauche ( 3 << 2 , soit une multiplication par 4, si vous suivez bien ), et je converti ça en hexa ( soit 0x0C ).

J'ai donc la classe 0x22020C .

Pour connaitre les différentes chaines, j'ai regardé 2 choses : 1 document "non public" du groupe bluez ( qu s'obtient via google en cherchant "bluez assigned numbers" ), et les sources de bluez, dans tools/hciconfig.c


Donc voila, si vous voulez faire joujou avec les icones dans les différents softs, c'est la solution ( surtout maintenant que bluez permet de se faire passer pour un casque bluetooth a2dp ). Je précise que ça ne change rien d'autres que la façon dont votre systéme s'annonce, ça n'active rien de plus, ni de moins.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.20
Traduction par FluxBB.fr

Hébergé par :
Bearstech