Author: Jerry Grochow

# JMRI: Loading and Storing Your Work

What Everyone Should Know

This page provides the basic information you should know about what commands are used to load and store the data you create and update in JMRI. A companion page with more information for advanced users about when, how, and where JMRI stores data is available here.

since 4.23.3

The main PanelPro menu has changed as of JMRI release 4.23.3.

- Panels ⇒ Load Panels... has moved to File ⇒ Load table content and panels...
- Panels ⇒ Store Panels... has moved to File ⇒ Store ALL table content and panels...
- Panels ⇒ Show History has moved to File ⇒ Show file history
- Panels ⇒ Run Script... has moved to Scripting ⇒ Run Script...
- Panels ⇒ Thread Monitor has moved to Scripting ⇒ Thread Moniitor
- Panels ⇒ Script Output has moved to Scripting ⇒ Script Output
- Panels ⇒ Script Entry has moved to Scripting ⇒ Script Entry

The text for the panel and table specific File menus is now consistent. The table store without panels is now Store Only table content (No Panels)....

The panel Close button hides the panel. It can be shown using the Window menu or Panels ⇒ Show Panel. To delete a panel, use the panel's delete option in the panel's File menu or the new Panels ⇒ Delete Panel... menu item.

The menu paths shown below are the new paths. The old paths are shown in braces.

JMRI's model for creating, updating, and storing (or discarding) the information it needs to perform its various functions depends on which JMRI function you are dealing with. Certain kinds of data are handled completely automatically. Others are created by you and updated by JMRI. For still others, you have the ability to control whether or not to change or keep that data from one run of JMRI to the next. For example, saving changes to roster entries is separate from storing away your layout configuration.

Unfortunately, JMRI does not always notify you if there is unsaved data when it exits (although the community of developers is constantly working to improve this). For example, when you create a Sensor in the Sensor Table, it will appear in the Sensor Table Window, but it will be gone if you close JMRI - unless you take one of the actions listed below to save it.

To ensure that data you create (or is created and updated for you) is kept as you require, you should understand when and how the different kinds of data get saved to a disk file, or not, and, in the case of CVs, to your locomotives and other DCC decoders. This page is intended to give you the basic information you need to know.

- User initiated Load
- User initiated Store
- Automatic Store
- Not stored

## Things you need to take action to "load" or "open"

- Preferences (all apps)
  - All Preferences items: Preferences are automatically loaded during JMRI start up.
- DecoderPro
  - Roster entry: Select a roster entry row, select the programming mode, Programming Track, Programming on Main or Edit Only, click on Program.
  - Roster Group: Roster groups are automatically loaded.
- PanelPro
  - File ⇒ Load table content and panels... {Old: Panels ⇒ Load Panels...}
    - Table content for the tables located at Tools ⇒ Tables
    - Panels
    - Fast clock settings at Tools ⇒ Clocks
  - An alternate method for loading the table content and panels is to use a start up action.
  - Images/Icons: Loaded automatically by the panel editor.
  - Scripts:
    - Run script: Scripting ⇒ Run Script... {Old: Panels ⇒ Run Script...}
    - Load script: Scripting ⇒ Script Entry {Old: Panels ⇒ Script Entry} and then Load.
  - Throttles: Tools ⇒ Throttles ⇒
    - Open Throttles Layout...
    - Load Default Throttles Layout
- DispatcherPro
  - Tables (Sections, Transits): Included in PanelPro tables.
  - Dispatcher Options: Loaded automatically when Dispatcher starts.
- OperationsPro
  - All data: Loaded automatically
- SoundPro
  - Audio Tables (Listener, Buffer, Sources): Included in PanelPro tables.

### Loading table content and panels during startup

The Preferences ⇒ Start Up option includes an Action to load a file during the start up proces. Click on the Add button and select Open File.... The operating system Open File dialog will be displayed with the user file location selected. Select a file and click on Open. The new action will be added to the action list. Click on the Preferences Save button to retain the start up action change.

[Go to top of page]

## Things you need to take action to "store" or "save"

JMRI will sometimes (but not always) notify you when you might want to "save" or "store." These are the places user action may be required:

- Preferences (all apps)
  - All Preferences items: Edit ⇒ Preferences, Hit Save
- DecoderPro
  - Roster entry:
    - On an individual roster entry window: Select File ⇒ Save or Save to Roster
    - On an individual roster entry window: Select Write to Decoder in order to change CVs
  - Roster Group: Stored Automatically
- PanelPro
  - Panels:
    - From any panel editor: Select File ⇒ Store ALL table content and panels... {Old: File ⇒ Store Panels...}.
    - From the main PanelPro window: Select File ⇒ Store ALL table content and panels... {Old: Panels ⇒ Store Panels...}.
  - Tables: Tools ⇒ Tables ⇒ [Specific Table], Select:
    - File ⇒ Store ⇒ Store Only table content (No Panels)... {Old: Store configuration}.
    - File ⇒ Store ⇒ Store ALL table content and panels... {Old: Store configuration and panels}.
  - Fast Clock: Tools ⇒ Clocks ⇒ Set up Fast Clock..., then same as for Tables.
  - Images/Icons: Hit Save Image Index
  - Scripts: Scripting ⇒ Script Entry {Old: Panel ⇒ Script Entry}, Hit Store...
  - Throttles: Tools ⇒ Throttles ⇒
    - Save Throttle Layout
    - New Throttle ⇒ File ⇒ Save Current Throttle
    - New Throttle ⇒ File ⇒ Save Current Throttle As... [additionally allows you to save custom function buttons]
- DispatcherPro
  - Tables (Sections, Transits): Tools ⇒ Tables ⇒ [Specific Table], then same as PanelPro Tables.
  - Dispatcher Options: Tools ⇒ Dispatcher ⇒ Options ⇒ Save Options
- OperationsPro
  - All data: Stored Automatically
- SoundPro
  - Audio Tables (Listener, Buffer, Sources): Tools ⇒ Tables ⇒ Audio, then same as PanelPro Tables.

So make sure your hit "Save" and "Store" for all the different tools you use within JMRI and you will always have what you worked on the next time. And if there is a problem, remember that JMRI keeps backup files when it writes your data to permanent storage, either automatically or by your command, so look for files with the ".bak" suffix and you'll be able to recover from most missteps.

[Go to top of page]

Lost Panels: An issue commonly reported on the JMRI user forum is that panels have disappeared on restarting PanelPro and opening a panel file. Often, this is because someone selected "Store Only table content (No Panels)... {Store configuration}" rather than "Store ALL table content and panels... {Store configuration and panels}" and overwrote an existing panel file. Don't panic - the backup copy (in the directory "backupPanels" in the Profile Location) is there. Best practice in working with PanelPro is to almost always use "Store ALL table content and panels... {Old: Store configuration and panels}" or "Store ALL table content and panels... {Old: Store Panels...}" where it appears, and to rename the file you are saving so you have multiple versions named by you to go back to if necessary.

## Things that are stored automatically

- Window positions and sizes (not all are saved)
- DecoderPro
  - Roster entry: Automatically stored when changed on the main roster page
  - Roster Group: new, including changes to Roster Group Table Association; also renaming and deletion of groups
- OperationsPro data: automatically stored when data is changed.
- Block values may be restored, dependant on block occupancy and track power status.
- ID Tags are stored on exit, with their Time last seen and last Reporter position. When restored on startup, these Reporters will also be created.
- Connection specific tools, e.g. MERG CBUS Event Table may also be have store / restoration settings.

[Go to top of page]

## Things that are NOT stored after you quit JMRI

Some data you will create during your JMRI session or that will be created via communication with your layout is NOT saved after you quite JMRI. This is normal as this data represents the current state of your trains and layout (e.g. turnout position) so requires feedback from you or your layout. These transitory data are:

- Sensor state
- Turnout state
- DispatcherPro Trains
- [Possibly incomplete list]

[Go to top of page]