JMRI est...

Script

Information sur l'écriture des scripts pour contrôler JMRI plus en détail:

Python

Les Scripts JMRI sont dans Python, un langage informatique multi-sujet

Outils Généraux

Les Objets généraux disponibles pour commander votre réseau.

JMRI: Le langage Python/Jython

Python est un langage de script couramment utilisé qui est disponible sur de nombreux types d'ordinateurs. Une variante basée sur Java, appelé Jython , a été intégré avec JMRI pour rendre facile le contrôle d'un chemin de fer miniature à partir de la ligne de commande d'un ordinateur. Pour nos besoins, les deux langages sont entièrement identiques.

Si comme moi vous préférez lire le papier, il y a beaucoup de livres disponibles sur Python. Peut-être l'un des meilleurs pour les débutants est "Learning Python" publié par O'Reilly. Il contient plus que ce que que vous devez vraiment savoir, cependant.

Le site jython.org a quelques informations d'introduction, même si leur tutoriel (lien cassé le 19/01/2012) passe trop de temps sur les détails d'ingénierie au début. Vous pouvez sauter à la partie sur la langue elle-même .(lien cassé le 19/01/2012)

Les non-programmeurs pourraient vouloir commencer avec quelques-unes des ressources répertoriées pour eux sur le site de python.

Si vous êtes intéressés par les techniques sous-jacentes du langage, IBM developerWorks a deux bons articles ici et ici . Ils ont aussi un tutoriel intéressant ici , même si vous avez besoin de vous enregistrer avec votre adresse email pour y accéder.

Regarder les exemples du répertoire "jython" de la distribution JMRI pourrait aussi vous aider.

Les choses que quelqu'un devrait vous indiquer

La seule chose la plus bizarre sur Python est l'indentation des questions. Au lieu d'utiliser les caractères {et} pour indiquer le début et la fin d'un bloc ou d'une fonction, c'est fait avec l'indentation en Python. Bien sûr,comme dans un C le langage populaire en général l'indentation est faite n'importe où, mais il faut un peu d'habitude pour que vous arriviez à le faire en Python.

Par exemple, cela est une erreur de syntaxe:

    A = 15
        print a
    b = 21
   
parce que ces déclarations, bien que logiquement regroupés au même niveau dans le programme, ne sont pas indentées de la même manière. Cela sonne comme une douleur au début, mais vous vous habituerez rapidement à elle. Ensuite, il rend les choses comme suit assez facile à lire, sans avoir à s'inquiéter de savoir où l'{et }aller:
         if now == -1):
                 done = 1
         else:
                 done = 0
         print done
  
Si vous obtenez un message à propos de "Syntax error", regardez le numéro de la ligne indiquée pour voir si votre indentation n'est pas alignée.