JMRI: Send CAN Frame
Author: Bob Jacobsen
Keywords: JMRI help send loconet packets

# Send OpenLCB Frame

The "Send OpenLCB Frame" tool lets you directly send CAN frames, and certain kinds of OpenLCB messages.

It works best in combination with the "Show Raw Data" option in the monitor window, because packets are entered here in raw hexadecimal format.

The top section of the window lets you send a single frame. Just type the packet's data contents as hexadecimal numbers, for example "83 7C". If you want to specify header contents, preceed the packet data with the header in "()" characters or "[]" characters for a standard or extended header, respectively. (OpenLCB uses only extended headers, but we make it possible to send both so you can experiment). Once you've entered the packet, just click "send".

The second section lets you enter from one to four frames that will be repeatedly sent in sequence, with user-defined delays in between. Press the "Go" button to start the transmission sequence, and press it again to stop the sequence.

Below that are sections for sending various OpenLCB messages.

Under "Send control frame with source alias:", the "Send CIM" button formats up a "CIM" frame from the source node alias that you provide and then sends it. This is part of the OpenLCB technique for allocating node aliases.

In the next sections, you can format and send frames that contains specific OpenLCB messages. All of these are sent with the source alias you provided above

- "Send Verify Nodes Global": This sends a request for all nodes to identify themselves. You'll see the response(s) in the monitor window.
- "Send Verify Nodes Global with NodeID": This sends a request for a specific node to identify themselves. You'll see the response in the monitor window.

The following section sends messages that contain an event ID that you can specify here. You can also specify the Unknown/Valid/Invalid status for Consumer/Producer Identified messages.

- "Send Request Consumers": Using the source alias you provided in the upper section and the event ID specified here, this sends a request for a reply from any node that consumes that event ID.
- "Send Consumer Identified": Using the source alias you provided in the upper section and the event ID specified here, this sends reply that the node consumes that event ID.
- "Send Request Producers": Using the source alias you provided in the upper section and an event ID specified here, this sends a request for a reply from any node that produces that event ID.
- "Send Producer Identified": Using the source alias you provided in the upper section and the event ID specified here, this sends reply that the node consumes that event ID.
- "Send Event Produced": Using the source alias you provided in the upper section and an event ID specified here, this sends an announcement that the given event has been produced.

Next is a section that will allow you to send addressed messages to specific nodes. You select the destination node here, then click the buttons to send a Request Events, Send PIP Request or Send SNIP Request to that node.

Next is a section that allows you to send an arbitrary datagram to the node selected above.

- "Send Datagram": Using the source alias and destination alias you provided in the upper section and data bytes you provide here, this sends a datagram to the destination node.
- The "Send Confirm" button sends a confirmation reply to any datagram received.

In the "Send OpenLCB memory request" section, you can use the OpenLCB configuration protocol to read and write from node memory. Set your source node alias and the destination node sections above. Next select the memory address to start reading or writing at, and which address space you'd like to read or write from. (Configuration Definition Information, etc). Then, either enter the desired number of bytes and click Read, or the data to write and push Write.

Finally, there are some high-level operations:

- The "Restart" button will restart (reboot) the selected node.
- The "Open CDI Config Tool" button will open a configuration window for the node selected above. The button is only enabled if that node has indicated that it does have CDI information.
- The "Force CDI Reload" button will close any configuration windows for the selected node, and then force a reload of the configuration description information (CDI) the next time the node's configuration window is opened.