Le Tux Droid

Aller au contenu | Aller au menu | Aller à la recherche

lundi, novembre 2 2009

Bientôt le retour

Suite à la dépêche sur DLFP je me suis aperçu que mon dernier billet date de longtemps :-( .

Je n'ai pas abandonné mon Tux Droid, je suivais le développement de son software la V3 et de son environnement graphique Tuxbox V2.

J'en ai profité pour écrire 3 gadgets, un pour la batterie, un pour le chargeur et le dernier en liaison avec le client de messagerie instantané Pidgin en version Linux.

Dés la semaine prochaine je vous expliquerai tout ça plus en détail.

A très bientôt pour la suite.

PS: comment vous pouvez le lire sur la dépêche de DLFP, il y a une promo sur le Tux Droid 99€ au lieu 149€.

jeudi, avril 23 2009

Le TuxShell - Suite

Dans l'article précédent sur le tuxshell nous avons vu que tux représentait l'objet TuxAPI, mais TuxAPI c'est quoi ?

C'est l'ensemble des API des objets qui représente notre Tux Droid, ce n'est pas très clair ... ha bon :(

Alors regardons le fichier  /usr/lib/tuxdroid/python-api/tuxisalive/api/TuxAPY.py

En dessous de la ligne class TuxAPI(object): il y a la fonction def __init__( , c'est la fonction d'initialisation de l'objet TuxAPI, dans cette fonction regardons les commentaires, c'est les lignes qui commencent par des guillemets ou par un # outre le fait que l'on voit que TuxAPI à besoin de connaitre l'adresse et le port du serveur HTTP du tuxware, par défaut 127.0.0.1:270, il y a aussi des ligne du genre self.flippers = TuxAPIFlippers(self) ce qui se traduirait dans tuxsh en flippers = TuxAPIFlippers(), maintenant on sait que flippers représente l'objet "ailes"

Pour résumer tux représente TuxAPI dans TuxAPI flippers représente TuxAPIFlippers, comme on n'est pas bête (puisqu'on est pocesseur d'un Tux Droid) on peut en déduire pour pour gérer les ailes de notre manchot il suffira de taper une commande qui commencera par :

tux.flippers.xxx pour connaitre par quoi on peut remplacer les xxx il suffira soit d'aller voir le contenu du fichier TuxAPIFlippers.py, si on est très curieux, soit d'aller voir la doc de l'API du tux, j'en parlerai plus tard.

Il y a aussi un TuxAPIMouthEyes, ça s'adresse aux yeux ou à la bouche ? he bien aux deux mon capitaine, hé oui on peut appliquer les mêmes méthodes aux yeux et à la bouche, ils peuvent être ouvert ou fermés, c'est pour ça qu'il y a 2 ligne avec TuxAPIMouthEyes une pour la bouche avec" mouth" et une pour les yeux avec "eyes"

La liste des différents objet :

server : pour controler l'accès au server http du tuxware TuxAPIServer

event : pour controler les évênements  TuxAPIEvent

access : pour controler les accès aux ressources de notre Tux  TuxAPIAccess

status :  le statut des différents éléments de notre Tux   TuxAPIStatus

mouth : pour controler la bouche  TuxAPIMouthEyes

eyes : pour controler les yeux  TuxAPIMouthEyes

flippers : pour controler les ailes  TuxAPIFlippers

spinning : pour controler la rotation  TuxAPISpinning

dongle : pour controler notre ami Fux le dongle usb  TuxAPIDongleRadio

radio : pour controler la liaison radio entre Fux et Tux  TuxAPIDongleRadio

attitune : pour controler les attitunes TuxAPIAttitune

led : pour controler les lumières des yeux  TuxAPILed

tts : pour controler la synthèse vocale  TuxAPITTS

soundFlash : pour flasher la mémoire des sons internes de Tux  TuxAPISoundFlash

button : pour controler les boutons du Tux et de la télécommande  TuxAPIButton

wav : pour controler les sons   TuxAPIWav

raw : pour envoyer des commandes raw (jamais utilisé) c'est une suite d'hexa ?  TuxAPIRawCommand

 

vendredi, février 27 2009

Francisation du wiki


Très bonne nouvelle le wiki concernant le TuxDroid est presque entièrement francisé, un grand merci à ceux qui ont traduit les pages.


Wiki en français

vendredi, décembre 12 2008

Le TuxShell - Généralités


Si vous connaissez le langage Python ou si vous avez lu le livre que je vous conseillais dans l'article sur le python, vous savez que le langage est livré avec un shell, pour l'utiliser en mode interactif.

Le software du Tux comprend un programme, qui charge l'API du Tux après avoir lancé le shell python, son nom est tuxsh.

Sous linux, ouvrez un terminal et tapez tuxsh

Sous windows menu Démarrer --> TuxDroid --> Tuxshell

lescau@Pastouche:~$ tuxsh
====================
tuxisalive.api-0.0.3
====================
>>> TuxAPI is connected.


Sous linux ouvrons un terminal et regardons ce programme d'un peut plus près

Ou est ce fichier ?

lescau@Pastouche:~$ whereis tuxsh
tuxsh: /usr/bin/tuxsh


Quel est le type de ce fichier ?

lescau@Pastouche:~$ file /usr/bin/tuxsh
/usr/bin/tuxsh: Bourne-Again shell script text executable


C'est un script, affichons le :

lescau@Pastouche:~$ less /usr/bin/tuxsh


#!/bin/bash
python -i /usr/share/tuxdroid/resources/misc/sh.py


python -i ; lancement de python en mode interactif

regardons le script sh.py

# -*- coding: latin1 -*-

"""
Tux shell
=========
Tux shell is the shell way to use Tuxdroid. It create an API object with the
"Free" client mode.
"""

from tuxisalive.api.version import author, date, version, licence
__author__ = author
__date__ = date
__version__ = version
__licence__ = licence
del author, date, version, licence

#    Copyright (C) 2008 C2ME Sa
#    R<E9>mi Jocaille <remi.jocaille@c2me.be>
#    Distributed under the terms of the GNU General Public License
#    http://www.gnu.org/copyleft/gpl.html

import sys
import signal
import atexit
import os

from tuxisalive.api.TuxAPIConst import *
from tuxisalive.api.TuxAPI import TuxAPI

global tux

tux = TuxAPI("127.0.0.1", 270)

verString = tux.getVersion()
verH = "".join("=" * len(verString))
print verH
print verString
print verH

if os.name != 'nt':
    if not 'readline' in sys.modules:
        print "For interctive use, run: python -i sh.py"
        sys.exit(0)

tux.server.autoConnect(CLIENT_LEVEL_FREE, "TuxShell", "NoPasswd")
tux.tts.isConsole()
def sigExit(signum, frame):
    sys.exit(signum)
   
def exit():
    tux.destroy()
    sys.exit(0)

def myExitFunct():
    tux.destroy()

signal.signal(signal.SIGTERM, sigExit)
signal.signal(signal.SIGINT, sigExit)
atexit.register(myExitFunct)


Les commandes qui concernent le Tux

from tuxisalive.api.TuxAPIConst import *

importation des constantes.

from tuxisalive.api.TuxAPI import TuxAPI

importation de l'objet TuxAPI

tux = TuxAPI("127.0.0.1", 270)

création d'une instance de l'objet TuxAPI que le nomme tux en même temps on passe comme paramètre l'adresse IP ainsi que le port du serveur HTTP (voir le tuxware)

tux.server.autoConnect(CLIENT_LEVEL_FREE, "TuxShell", "NoPasswd")

connection au serveur HTTP avec comme paramètre, le niveau du client (ici FREE), le nom de l'application (TuxShell) et le mot de passe.

tux.tts.isConsole()

fixe l'encodage du synthétiseur de paroles, comme l'encodage de la console.


vendredi, novembre 21 2008

Le Langage Python

La version 1 du soft pour le TuxDroid était écrit en Python + GTK.

La version 2, pour une meilleur compatibilité avec le système d'exploitation Windows, est écrite en Java, mais il reste des morceaux en Python.

A l'heure où j'écris ces lignes, il y n'a, vraiment, que le choix d'utiliser soit le Langage Python ou Java ceux sont les 2 APIs les plus complet, il y a aussi une ébauche en Javascript, et un utilisateur Cyrill62 écrit une API en Ruby .

Alors pourquoi utiliser le Python ?

Parce que c'est un langage très facile à apprendre et à utiliser pour faire des choses simples, pour tout ce qui est compliqué, je ne sais pas je n'en ai pas encore fait. :-)

Pour apprendre le langage je vous conseil fortement et même c'est un ordre ;-)

lisez cet ouvrage Apprendre à programmer avec Python qui est disponible en gratuitement en ligne ou en librairie.

Liens :

Le site du Python

afpy - Association Francophone Python

développez.com section Python

- page 1 de 4