Le Tux Droid

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

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