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