JMRI: OpenLCB Event Table
Author: Bob Jacobsen
Keywords: JMRI help send loconet packets

# OpenLCB Event Table Frame

This provides a table view of the Events, Producers and Consumers in your OpenLCB network.

The primary purpose of the Event Table is three fold:

- Display the Events used on your OpenLCB network along with all of their related Producers and Consumers. This is created initially in real time through a query of the actual nodes on your network and supplemented by any additional information available to JMRI at the time, most usefully open node configuration dialog windows (displaying the node's CDI) and JMRI data such as User names from the Turnout or Sensor tables. As you open and close the configuration dialog windows for additional nodes, these contributions will be added and removed from the Event table in real time. For the most complete view of your network's Events and Consumer/Producer relationships, open the configuration dialog windows for all of your nodes however you may find it more manageable to open just the subset of nodes relevant to your task at hand. If the information from all node configuration dialogs are to be considered, on a large network open these windows prior to the Event Table for the fastest initial response. This information is not retained between sessions.

- Apply User names to Events. Similar to the use of User defined names in the Turnout or Sensor Tables, the Event Table allows you to apply names to Events that are more meaningful as to their purpose than just the Event ID itself. The Event's user assigned name is retained between sessions and is also shown in the OpenLCB Traffic Monitor as an additional aid when the Event box is checked therein.

- Provide a document record of your Events and their Consumer and Producer relationships. Exported as a *.csv file and then viewed and manipulated through a suitable program like Excel, this provides a reference or documentation of all of the Event IDs and their associated Consumer/Producer relationships as known by JMRI at the time of the export. This document can also be used as a reference source of Event IDs that may be cut & pasted into a node configuration dialog as you build additional Consumer/Producer relationships on your network. This is the same data as displayed in the Event Table at the time of the export so the more information available, the more complete the export. It is envisioned that the user re-export this reference documentation regularly as the network evolves rather than try to maintain the resulting document independently.

You can resize and sort the columns using the header row.

The Event ID field usually shows a single Event ID. If a node has declared that it produces or consumes a range of event IDs, the range will be shown as its lowest and highest included Event IDs.

The Event Name column will show an event name that you've given to this event ID. If you haven't given the event ID a name, and if there is a well-known standard meaning defined for that event, that will be displayed.

You can enter names for events in the 2nd column. Click on the cell to open it for editing. Hit return when done. These will be saved automatically and loaded when you next start JMRI.

At the bottom of the window, there's a tear-off button bar that contains a number of useful controls:

- Pressing the "Update from Network" button will load the table from the network. This might take a couple seconds. You should press it again after changes like adding nodes, changing their configuration, etc. The table cannot always detect those changes automatically.

  If node names (4th and 6th columns) don't show up after a short time, press "Update from Network" a second time.

  If you have a configuration window open on one or more events and click "Update from Network", the right-hand column will show the tree-walking display of where each event is referenced in those configuration windows. This can help you determine the function of the producers and consumers. You might need to resize the column to see the complete entry.

  Note that the "Update from Network" button does a "Verify Events" operation on the network. Some nodes consider this to be a start-of-day, power-up operation and might change the status of their outputs due to that.

- If you've defined Node Groups in the LccPro window, there will be a selection box that lets you display events from "(All)" nodes or just the ones in a specific group. This can be helpful if e.g. you're only interested in events from some small part of the layout's network.
- Checking the "Require label" box will display only events with labels. This lets you ignore events that you haven't labeled as interesting.
- Checking the "Require both producer(s) and consumer(s)" box will display only those events that have both at least one producer and at least one consumer. These are the events that actually do something on your LCC network.
- Checking the "Popcorn mode" will highlight the producer for every event that JMRI sees being produced. Since the window scrolls to show the event, this can result in the screen jumping around when it's enabled. If there's a lot of traffic, this can slow your computer down significantly, so only enable it when you want to use it.
- As you type in the "Find Event" box, the table will try to locate an event that starts with what you've typed. The first (top most) match will be highlighted. If need be, the table will scroll to make that visible.

  If you don't find a specific event ID in the table, the "Add" button will add it to the table. You can then give it a name in the usual way.

- As you type in the "Find Name" box, the table will try to locate an event, producer or consumer node name or also-known-as alias that starts with what you've typed. Upper vs lower case is ignored. The first (left most then top most) match will be highlighted. If need be, the table will scroll to make that visible.
- Pressing the "Names from Sensors" will fill in the event name column with the names from the corresponding JMRI Sensors. Pressing the "Names from Turnouts" button will fill in the event name column with the names from the corresponding JMRI Turnouts. Note that only empty entries will be filled; this does not overwrite any existing names you've already defined.

The File menu contains two items:

- Save to CSV: This exports all columns of the current contents of the table to a comma-separated variable (CSV) file.

  The file will contain column headers in its first row, followed by a row for every Event ID in the table, including ones that are not currently visible.

- Read from CSV: Reads in Event IDs and event names from a CSV file, then if each Event ID doesn't already have a name, assign the name from the file.

  The file should have a numeric Event ID such as 00.01.02.03.04.05.06.07 in the 1st column and the desired name in the second column. A header row, if present, is ignored. Extra columns are ignored.