JMRI: Technical Info
Author: Bob Jacobsen
Keywords: JMRI technical code

# JMRI: Info Technique

Vous n'avez pas besoin pour travailler avec votre propre copie du code source JMRI, des compilateurs, etc, si vous voulez juste exécuter les programmes. Vous pouvez télécharger des copies entièrement construites par les page de téléchargements . Mais si vous voulez jouer avec le code, ou obtenir une copie du programme qui contient les mises à jour depuis que la dernière version téléchargeable a été publiée, cette section du site web vous aidera à démarrer.

## Info Aspects techniques sur le projet JMRI

JMRI est conçu comme un point de départ pour les amateurs qui veulent contrôler leur réseau à partir d'un ordinateur sans avoir à créer un ensemble de système à partir de zéro.

Pour ce faire, nous avons divisé le problème en deux parties avec un interface entre-deux:

- Au "dessus" de l'interface sont les outils cools que les gens veulent. Nous fournissons des programmateurs pour les décodeurs DCC, contrôles de réseaux, des outils d'automatisation, etc. Les gens contribuent en permanence avec des outils qui vont de mieux en mieux et qui travaillent sur beaucoup de type d'ordinateurs, avec beaucoup de types de réseaux.
- Au "dessous" de l'interface se trouve un code qui connecte des dispositifs matériels. Nous vous nous sommes connectés à un gamme complète de systèmes : C/MRI, Digitrax, EasyDCC, Lenz, NCE, etc. Nous sommes certainement intéressés par le raccordement à d'autres systèmes.

La stratégie à long terme est de:

- Créer un ensemble d'interfaces communes ,à la disposition du public, pour le code de commande des chemins de fer modèles réduits,qui peut être utilisé avec tout type de réseaux, à partir de tout type d'ordinateur.
- Rendre ceci utile en fournissant des mise en oeuvres de qualité pour autant de types de réseaux que possible.
- Encourager l'interopérabilité des matériels et logiciels de réseaux grâce à l'utilisation d'interfaces communes.

à court terme, nous avons créé plusieurs programmes basés sur les bibliothèques JMRI pour faire avancer le projet et démontrer ainsi ses capacités. ( Pourquoi tant de programmes ?...)

Le plus populaire est DecoderPro , un outil de programmation pour les décodeurs. Il simplifie le travail de configuration compliqué des décodeurs DCC en fournissant des écrans sur lesquels vous pouvez sélectionner les différentes options et valeurs que vous souhaitez. Ces écrans affichent le contenu exact de chaque type décodeur spécifique. Les deux écrans de programmation et d'information décodeur sont stockés dans des fichiers textes, de sorte que vous pouvez en créer de nouveaux comme vous le désirez.

## Comment pouvez-vous modifier la façon dont JMRI fait les choses?

Il y a plusieurs façons de modifier JMRI:

1. Vous pouvez utiliser les interfaces JMRI pour écrire des programmes pour vos propres réseaux. Rendre ceci aisé est un objectif important. Cela peut se faire via notre langage de script.
2. Vous pouvez ajouter du code Java au programme ou modifier le code actuel. Corriger les choses qui vous dérangent (bugs aka) est une méthode facile pour plonger dedans et contribuer.
3. Vous pouvez écrire de nouveaux outils d'usage général. Bien que ce soit un peu plus difficile que d'écrire l'automatisation pour votre propre réseau, des outils d'écriture que d'autres gens puissent utiliser peut être très satisfaisant.
4. Vous pouvez mettre en œuvre les interfaces JMRI pour un nouveau système. Avoir JMRI qui travaille avec d'autres systèmes est un objectif important. Une fois que la mise en oeuvre avec un autre système fonctionne, des outils généraux (par exemple programmeur symbolique, outils d'automatismes, de signalisation, etc) peuvent être utilisés immédiatement.

## Renseignements sur le projet JMRI (Pour les personnes intéressées à la façon dont le logiciel est en cours d'écriture

Une grande partie des discussion sur le développement JMRI a lieu sur la liste de diffusion JMRI-Developers: Abonnez-vous , Archive

GitHub fournit nos répertoires logiciels via l' organisation GitHub JMRI.

SourceForge.net fournit le support projet:

- page projet JMRI et statistiques project.
- Trackers for Bugs, Fonctions Demandées, et Patches.

## Code

Tout le code JMRI est disponible à partir de GitHub. Voir "Obtenir le code via Git" et les pages FAQ Git pour plus d'informations sur la façon de le faire.

Si vous voulez juste regarder le contenu de quelques fichiers, vous pouvez naviguer dans le code source du programme. et site web du code source sur le web.

## Construire Votre Propre Copie

En plus d'obtenir une copie du code source JMRI et de le lire, vous pouvez également compiler votre propre version du programme pour l'exécuter. Vous pouvez même inclure vos propres modifications si vous le souhaitez.

Il y a différentes façons de le faire. Si vous êtes déjà familier avec l'un des "environnements de développement intégrés" (IDE) populaires regardez la barre de navigation à gauche pour obtenir des instructions sur la façon de construire JMRI en utilisant NetBeans , Eclipse ou IntelliJ.

NetBeans fournit un système très pratique pour la construction, L'exécution, et le cas échéant de débogage du programme. Si vous n'êtes pas familiariser avec une autre méthode, nous vous recommandons d'essayer NetBeans .

Sinon, si vous souhaitez modifier le code avec votre éditeur de texte favori et le compiler à partir d'une ligne de commande, SVP voir la page d'instructions pour construire avec Ant .

## Contribution

Nous encourageons les contributions de code, les définitions décodeur, des améliorations à les pages Web, etc, pour le projet JMRI de sorte que nous puissions les distribuer au reste de la communauté.

Pour la première et/ou petites contributions, par exemple, un fichier nouveau décodeur ou correction d'un petit bug, s'il vous plaît remplir une nouvelle entrée "Patches" sur SourceForge à l'aide nos pages patchs (cliquez sur Nouveau dans les milieu à gauche, puis remplissez le formulaire qui en résulte). Vous pouvez joindre l'ensemble du dossier. Si c'est plusieurs fichiers, et que vous utilisez un IDE comme NetBeans , il est très facile de créer un fichier "diff patch" pour effectuer vos modifications, et qui nous permettra d'économiser une quantité importante de travail en les fusionnant. S'il vous plaît voir les pages pour créer un fichier patch avec NetBeans .

Il nous fait gagner beaucoup de travail si, avant de créer et d'envoyer les fichier patch, vous vous assurez que votre copie de ce code est à jour, et que les Tests unité travaillent tous.

Si vous contribuez à de multiples modifications, ou travaillez sur un grand projet, JMRI a les outils et procédures qui rendent ce travail aisé et fiable pour connecter votre travail au le reste de la communauté JMRI. Basiquement, vous travaillez sur une copie locale du répertoire JMRI et vos modifications peuvent être "pull" lorsque vous êtes prêt à contribuer. Voir notre page sur "Devenir un Développeur JMRI" pour les instructions sur comment être le plus efficace pour contribuer aux modifications de code.

Lorsque vous contribuez avec votre code de JMRI pour la première fois, nous allons vous demander de signer un formulaire de cession qui nous permet d'enregistrer le droit d'auteur sur les code, et nous donne une licence à durée illimitée pour le redistribuer en respectant la licence JMRI (Nous regrettons cette paperasse, mais détournement du droit d'auteur de Matt Katzer le rend nécessaire). Si d'autres personnes ont également participé à la contribution, s'il vous plaît faites nous savoir si nous pouvons les ajouter à la page de remerciements

## Licences

Nous encourageons les gens à construire leurs propres projets basés sur JMRI. C'est les raison initiales du lancement du projet!

JMRI n'est concédé que sous les "GNU General Public License ", parfois appelée les "GPL". Nous utilisons la version 2 de la licence, ainsi que l' "exception classpath" permettant aux gens de relier JMRI avec leur propre code dans des conditions plus détendues. Des copies de la licence sont distribuées avec la source et les téléchargements exécutables, et peuvent être obtenu à partir du Web.

C'est à la fois une "open source" et une licence "libre". Pour plus d'informations sur ces définitions, s'il vous plaît voir les pages web Initiative Open Source , y compris leurs description de ce que signifie l'Open Source , et les pages web Free Software Foundation , en particulier leur page de licence .

Officieusement, la licence signifie qu'il n'y a que quelques limitations sur ce que vous pouvez faire avec JMRI. (Consultez le libellé exact des licences pour les détails derrière les résumé ci-après):

- Vous pouvez le redistribuer, gratuitement ou moyennant une compensation pour couvrir vos frais.
- Vous pouvez élaborer des programmes supplémentaires sur tout ou partie de JMRI, et distribuer JMRI avec eux. C'est OK si vous charger votre programme.
- Vous pouvez modifier le code JMRI pour vos propres besoins.
- Vous pouvez distribuer le code modifié, mais dans ce cas, vous devez soit mettre vos modifications à notre disposition, ou distribuer également une version non modifiée en même temps.
- Vous ne pouvez pas utiliser une partie ou la totalité de JMRI dans un autre projet sans donner crédit à JMRI, ou prendre des arrangements spéciaux avec nous.
  Cela inclut les fichiers de définition décodeur: Vous êtes invités à les utiliser, y compris reformater leur contenu sous une autre forme, mais vous devez donner crédit pour JMRI leur contenu.

Si vous avez des questions à ce sujet, s'il vous plaît nous contacter directement.

## Développeur Code Swarm

Nous avons créé un Code Swarm of JMRI développement depuis sa création en Janvier 2009. A Swarm Code est une fascinante et dynamique représentation visuelle du changement pour que les développeurs puissent aller et venir et faire des modifications dans les fichiers qui composent un projet. Plus d'informations sont disponibles sur Code Swarm .