Bonjour à tous,
J'ai écumé le web, mais Google ne m'a pas aidé des masses
Je pose mon problème :

J'ai pour projet de gérer des robots à distance via CORBA.
J'ai pour cela, un serveur (Entrepôt) dans lequel les robots s'enregistrent et via lequel les clients demandent le pilotage des robots.
Jusque là, tout va bien, les tests fonctionnent nickel

Pour rendre le projet attractif et présentable, je dispose de robots Lego NXT.
Ces robots ont une petite VM Java du nom de leJOS
(en vrai ils ont la VM lejosRT mais c'est la même base, juste des dispositions au temps réel en plus )
Ils peuvent communiquer en Bluetooth, se qui est assez facile via leJOS.

Mais, leJOS ne peut pas embarquer de CORBA
J'ai donc pensé à un serveur Bluetooth qui ferait l'intermédiaire ...
Quand j'ai vu la JSR 82 (APIs for Bluetooth) je me suis dit "Youhou, ça va être easy !!".
J'ai rapidement déchanté
Je m'attendais à des fonctions comme :
search / connect / disconnect / read / write / ...
Mais à part pour les plateformes comme Android, rien n'est simple
Et les docs et exemples ne sont pas assez explicites à mon gout

Voila un exemple de code sur la brique Lego avec leJOS :
(je l'ai pris sur le net à l'instant, mon code étant plus fourni et inutile ici (faire bouger le robot ))

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
boolean isrunning = true;
while (true)
{
    LCD.drawString("waiting",0,0);
    LCD.refresh();
 
    //Listen for incoming connection
    NXTConnection btc = Bluetooth.waitForConnection();
    btc.setIOMode(NXTConnection.RAW);
 
    LCD.clear();
    LCD.drawString("connected",0,0);
    LCD.refresh();
 
    //The InputStream for read data
    DataInputStream dis=btc.openDataInputStream();
 
    //loop for read data
    while(isrunning){
        Byte n=-1;
        n=dis.readByte();
        LCD.clear();
        LCD.drawInt(n, 4, 4);
    }
    dis.close();
    Thread.sleep(100); // wait for data to drain
}
LCD.clear();
LCD.drawString("closing",0,0);
LCD.refresh();
btc.close();
LCD.clear();
Voyez comme c'est facile avec leJOS
Mais pour le serveur basé sur l'API bluecove ...
J'ai cru comprendre qu'il fallait utiliser des "services"
Mais leJOS n'a pas la possibilité des les utiliser (pas le même DiscoveryListener et pas la classe UUID).

Ma question est donc en 2 parties :
1. Quelqu'un aurait-il une documentation/tutoriel/... simple ?
2. J'arrive à récupérer aisément un RemoteDevice de mon robot, comment me connecter dessus pour y faire des read / write ?

Merci