JMRI® connects to...
Controller Area Networks (CAN)
Supported Hardware
Devices, command stations, networks, and protocols:
Applications
By the community of JMRI.org:
Tools
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:

JMRI Help:

Contents Index
Glossary FAQ

Donate to JMRI Donate to JMRI.org

Prise en charge Matériel: CAN - Scripts

Script JMRI peut être utilisé pour envoyer et recevoir des trames CAN. Vous pouvez l'utiliser pour créer des routines de test pour des cartes en cours de développement, etc

Cette page décrit les extensions CAN pour les scripts JMRI. Pour plus d'informations sur le script JMRI lui-même, voir les pages d'Aide Script.

Il y a un exemple basique de script dans le répertoire jython CanExample.py.

Exemples de Script Code

Envoi des Trames CAN

Envoi des Trames CAN

Les Trames CAN sont créés comme des objets, puis mis en file d'attente pour transmission. L'en-tête (ID) et les données sont traitées séparément.

frame = jmri.jmrix.can.CanMessage(2)  # charge 2 bytes
frame.setId(0x123)
frame.setElement(0, 0x45)
frame.setElement(1, 0x67)
jmri.jmrix.can.TrafficController.instance().sendCanMessage(frame, None)

Réception de Trames CAN

Un script peut écouter les trames CAN comme elles sont reçues du bus, et séparément pour les trames CAN qui sont transmises sur le bus par JMRI. L'interface CanListener fournit ceux-ci séparément via des procédures "reply"et "message", respectivement. class MyCanListener (jmri.jmrix.can.CanListener) : def message(self, msg) : # gère la transmission des trames CAN en ignorant leurs retours def reply(self, msg) : # gère la réception des trames CAN en imprimant leur contenu print "received Frame" print "ID: 0x"+java.lang.Integer.toHexString(msg.getId()) print "content: ", msg.toString() return jmri.jmrix.can.TrafficController.instance().addCanListener(MyCanListener())

Documentation

Aide JMRI