TuxDroid Java API - Nouveautés de la 0.4
Le 4 octobre 2007, à 3:44 par ...

It toke me some time but I hope it worth it. This release now supports all TuxDroid features, even those which are not implemented yet (Sleep, ping, etc). Apart from that, the API now comes with a new TuxManager, a widgets based graphical application.

Core API

This is mainly a reverse ingeneered version of the very clear Python API reworked to fit Java standards.

  • All TuxDroid features (motors, captors, speech, sound, system, etc..) are supported.
  • Mostly all useful status are accessible by a getXXX() and by events (classical swing system, on event, multiple listeners). To follow the daemon philosophy, getting a status is giving you the value but also generate associated event to listeners.
  • I rewrote the protocol engine that should be fully thread-safe now, even with re-entrance (getting a status that generate an event that is getting the same status Wink
  • Lost Connection recognition and automatic reconnection.
  • Building process is using Maven. There is now a specific maven repository for all libraries so everything can be build from source very easily (just untar & maven compile)
  • JavaDoc is included with sources. It's covering about 80% of core API.

TuxManager

A Swing application that can be seen as the merge of Python Gadget Manager and tuxgi

  • Core UI simply contains a Tuxlet selector, a traces output and a status bar for all important states (AC, RF, TTS, Tuxd, etc..)
  • All other features are wrapped in a plugin (tuxlets) system.
  • Tuxlet framework is included in the API).

Tuxlets

For testing purpose, 3 "tuxlets" (gadgets) are included.

  • "Movement Tuxlet" : basically the same as tuxgi first pane.
  • "Configuration Tuxlet" : speech test and voice selection, sounds test and management, information pane juste showing all Tux components versions.
  • "Insight Tuxlet" : just a joke to demonstrate light sensor.

More tuxlets will come later. I already wrote RSS reader, Clock and Weather. They just need a proper configuration panel

That's it for now. Just to finish a big thank you to Sonny ( http://geekrc1.free.fr ) who kindly accepted to test the beast and found nice bugs Wink

Commentaires

sonny , le 4 October, 2007 - 18:18

Woah super le screenshot j'ai hâte!

Ulhume, le 4 October, 2007 - 19:00

Arf ! J'ai intérêt à te soigner, tu va être mon unique utilisateur Smiling

sonny , le 4 October, 2007 - 19:32

Tu dis ça parce que la communauté tuxdroid s'essouffle ou parce que je suis le seul à poster un commentaire lol ?

Ulhume, le 4 October, 2007 - 19:35

Un peu du 2ième mais surtout la communauté TD n'est gigantesque, tu réduit à ceux qui sont intéressés à programmer le bestiaux, puis à ceux qui s'intéresse à java, reste plus grand monde Wink

sonny , le 10 October, 2007 - 09:23

Ne me remercie pas, c'est moi qui te remercie Smiling

Ulhume, le 10 October, 2007 - 10:31

Smiling

Tu me diras si le stockage des sons est plus sur maintenant. J'ai aussi retravaillé la barre de statuts.

sonny , le 10 October, 2007 - 10:39

Je viens de remarqué un petit bug chez moi, dans l'onglet Settings puis information je n'ai pas les 5 premières versions j'ai juste des 0.0.0.0

sonny , le 10 October, 2007 - 10:45

Autre bug, tuxmanager viens de planter quand j'ai cliqué sur Store...

Ulhume, le 10 October, 2007 - 10:46

La nouvelle release ? Tu peux être plus précis sur "planter" ?

Le problème de cette partie c'est que plein de chose rentre en ligne de compte. Pour que cela fonctionne il faut :
- Alsa qui fonctionne

cat /proc/asound/cards
aplay -l

- Alsa qui reconnait correctement le dongle

aplay -D hw:0,0 test.wav

- un sox qui fonctionne
- le dongle audio qui fonctionne
- les deux démons qui fonctionne

Et pour l'instant, c'est pas encore gagné avant même d'être un problème au niveau de l'API. Par exemple j'ai passé 1/2 heure ce matin à refaire reconnaitre le dongle audio à ALSA qui refusait de jouer du son...

Un bon test reste aussi de vérifier que tu arrives à charger des sons via tuxgi. Pour tester, tu décompresses (unzip) /lib/tuxDroid-0.4.jar et tu cherches les fichier 1.wav 2.wav etc... et tu les injectes avec tuxgi. Si là ça ne marche pas non plus, c'est que le problème ne vient pas de l'API.

Dis moi ce que cela donne.

sonny , le 10 October, 2007 - 10:51

Je ne pouvais plus rien faire, j'ai attendu 20minutes et ça n'en finissait pas.
(Oui la nouvelle release)
Euh quelque chose d'étrange viens de se produire, après avoir relancer tuxmanager je me suis rendu compte que les sons qui ont été stocker sont des bous de phrase et quand je lis un par un les sons sa donne: hello world, I'm a synthe bidule, tu sait comme la phrase qu'il prononce par défaut dans le tuxgi.

Ulhume, le 10 October, 2007 - 10:52

J'ai édité mon précédent commentaire, tu as répondu trop vite, tu peux y jeter un oeil et me dire ?

sonny , le 10 October, 2007 - 10:56

Tout à l'air de fonctionner

Ulhume, le 10 October, 2007 - 10:57

même avec tuxgi ? Tu as réussi à restocker les sons d'origine ?

Ulhume, le 10 October, 2007 - 11:10

Pueux tu me mailler les traces en console correspondant au plantage ?

sonny , le 10 October, 2007 - 11:13

Je viens juste d'y arrivé Smiling

Ulhume, le 10 October, 2007 - 11:15

Avec tuxgi, avec l'API ? T'as changé quoi ? Il me faut des détails sur le crash, sur les conditions que tu as changé pour régler le problème.

sonny , le 10 October, 2007 - 11:16

J'ai vu que tu n'avais pas mis de description au son numéro 7, je te propose: "tu me fais un poutout!?" écoute Sticking out tongue

sonny , le 10 October, 2007 - 11:17

Alors j'ai remis les sons grâces au tuxgi, ton tuxmanager ne plante pas vraiment enfait, quand on clique le store n'en finis pas...
J'ai du recommencer 2 fois le stockage des sons avec le tuxgi, la première fois il me l'ai à juste lu et la deuxième il l'ai à stocké

jaguarondi, le 14 October, 2007 - 20:56

Pour alsa, tu dois utiliser plughw au lieu de hw, ça insère le plugin 'plug' qui fait le resampling, et qui permet donc de fournir n'importe quel format à alsa et c'est joué sur tux.
Y'a un truc qui manque, c'est dmix (aussi plugin alsa). Ca fait le mixage et permet à plusieurs applications d'accéder à tux en même temps, utile pour envoyer des notifications même si y'a déjà un player audio qui accède à tux. J'ai contacté la mailing list d'alsa et j'ai finalement eu un patch pour dmix. Ils l'intègreront dans la version 1.0.16 mais d'ici là faudra faire sans.

Voilà, sinon faut absolument que j'essaie tes softs, j'y connais rien à java, et presque rien à python non plus d'ailleurs Wink mais ça a l'air super. Je te tiendrai au courant des évolutions du firmware et daemon. Ici les 2 trucs les plus importants sont la mesure de lumière et on vient d'ajouter celle de batterie. Y'a 2 gadgets qui l'utilisent sur svn, il devrait y avoir un release d'ici une bonne semaine.

Ulhume, le 14 October, 2007 - 21:55

Bonsoir Smiling

Nan, je n'utilises pas plughw, la ligne de commande que j'exécute est strictement la même que celle de la version pythons (-D hw=a,b). En tout cas bonne nouvelle pour dmix, ce serait sympa aussi pour gérer le volume du tux via un kmix.

Héhé, j'ai déjà intégré le statut 0x25 (battery level) et j'attends avec impatience le firmware pour les courbes s'animent Wink

En tout cas merci pour ton retour et pour les pings s'il y a du nouveau !

jaguarondi, le 15 October, 2007 - 20:42

En fait, l'api python devrait utiliser plughw et pas hw, sauf pour l'enregistrement des sons dans la flash puisque le fichier est déjà au format 8 bits 8kHz donc pas besoin de resampling dans ce cas ci.
Mais de façon générale, quand tu veux utiliser tux et aplay, plughw est très utile.

David

Ulhume, le 16 October, 2007 - 08:22

Ok, c'est noté. Je ne suis pas un spécialiste Alsa comme tu as pu le noter Smiling Je système semble pas mal j'ai réussi à faire des truc amusant avec mais c'est vraiment l'enfer pour trouver une vraie littérature complète à son sujet. Si tu as des pointeurs d'ailleur...

A noter que ton "truc" du plughw marche très bien avec mplayer

mplayer -ao alsa:device=plughw=0,0 musique.ogg
jaguarondi, le 16 October, 2007 - 09:51

Oui, la doc d'alsa n'est pas mieux que la nôtre Wink Je crois que plughw est à peu près tout ce que tu as besoin. Y'a moyen d'implémneter un 'volume control' software (http://alsa.opensrc.org/index.php/Softvol) mais c'est à déconseiller car tu ne fais que diminuer la qualité du signal en utilisant moins que 8 bits. Vaut mieux tourner le bouton de volume. Dmix sera utile quand le patch y sera, je ferai peut être un package avec alsa 1.0.15 patché quand il sera sorti. Ah ben tiens, d'ailleurs il est sorti aujourd'hui Smiling

Ulhume, le 16 October, 2007 - 09:55

Bah, ça va arriver assez vite dans la backports je pense

Poster un nouveau commentaire

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Textual smileys will be replaced with graphical ones.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.

Plus d'informations sur les options de formatage

Connexion utilisateur
Les derniers bavardages...