Example for EXRAIL Roster?

Stephane Savard Apr 10, 2022

  1. Stephane Savard

    Stephane Savard TrainBoard Member

    662
    1,882
    31
    I'm looking for an example for the new DCC++EX Roster command (EX-RAIL), anyone have one?

    I want to use Engine Driver and I was a disappointed that I needed to connect a RPi with JMRI to get my roster into the app. Then DCC++EX 4.0 came around and I should now be able to configure a roster directly into the command station using myAutomation.h.

    But I need an example for this command:

    ROSTER( cab, name, func_map )
    Provide Engine Roster and F-Key info from the Command Station directly to WiThrottle Apps

    I'm unable to find any example anywhere online about how to configure this!
     
    Sumner and Mark Ricci like this.
  2. Mark Ricci

    Mark Ricci TrainBoard Member

    481
    652
    13
    This is the outcome on throttle labels in Eng Driv running from DCC EX 4 and EX Rail.
    IMG_2537 DCC EX Throttle Labels.JPG


    in myautomation.h editable in notepad or similar..

    // New EXRAIL Engine Roster Server entries
    // The JMRI counter part would be the Roster Screen and the LABELS tab to define a function key names
    // EXRAIL Defined Engine 'ROSTER (dcc_address,'name'/F0/F1/etc')' use a asterisk * for momentary buttons i.e.Horn
    ROSTER(56,"CNJ F3","Lights/Bell/*Horn/Coupler Slack/Compressor/Ramp Engine Up/Ramp Engine Down/F7/Volume-Mute/StartUp-ShutDown/RadiatorFan/Air Filling-Release/Brake Set-Release/Grade Crossing Horn/Passenger Announcements/Freight Announcements/Maintenance Sounds/Radio Sounds/City Sounds/Farm Sounds/Industrial Sounds/Lumber Background Sounds/F22/Track Sounds/F24/Long Horn/Play-Record Macro/Record Start-Stop")
    ROSTER(1523,"CNJ GP7","Head Light/Dim Head Light")

    Recompile, upload and restart both.

    Template for this was provided by @ DCC EX team member @KC Smith on their Discord site.
     
    Sumner and Stephane Savard like this.
  3. Stephane Savard

    Stephane Savard TrainBoard Member

    662
    1,882
    31
    Perfect! This is exactly what I need!
     
    Mark Ricci likes this.
  4. Stephane Savard

    Stephane Savard TrainBoard Member

    662
    1,882
    31
    Just a quick follow up...

    I've now setup rosters for all my locomotives and this works great! Two additions for anyone trying this...

    First, the roster keywords need to live inside of the right tags, example:

    EXRAIL
    ROSTER(...)
    ROSTER(...)
    ENDEXRAIL

    Second, if you want to skip some functions e.g. you don't want a button for say, F4, then leave the entry blank:

    ROSTER(2825,"CN ES44AC","Headlights/Bell/*Horn/F3//F5")

    Notice that there are two // in the above where F4 should be. In engine driver, this skips the button entirely.
     
  5. Sumner

    Sumner TrainBoard Member

    2,844
    5,996
    63
    I'm not sure I understand the format above?

    F3 = Headlights
    F4 = Doesn't do anything
    F5 = Bell (?? or ) Horn

    Does the *Horn mean it only activates when pushed?

    I am running a Pi so it sees the rooster and the functions so don't have to do the above but I guess if I powered up with only DCC++EX's WiFi and EngineDriver (which I've done) and want to see the functions I could do the above so I'd like to know. Although saying that I have so many locos doing that for all of them would be quite time consuming. I love JMRI as I can easily build the roster with it and all of that is automatic with the Pi and I can get to JMRI anytime I want. Too bad for some of you that Pi's are very hard to get and expensive right now. When they get back into the $35-$45 range I'd sure encourage getting one. Right now though I've seen used laptops going for under $70 so that is also a good option for a dedicated trainroom computer.

    Sumner
     
  6. Stephane Savard

    Stephane Savard TrainBoard Member

    662
    1,882
    31
    Ah, let me explain, if I can any sense at all...

    EXRAIL
    ROSTER(2825,"CN ES44AC","F0/F1/*F2/F3/F4/F5/F6/F7/F8")
    ENDEXRAIL

    Take the above roster entry; if you load up engine driver, it will give you one address, 2825, with the engine label "CN ES44AC", and it will show you eight buttons only, with the labels F0, F1, F2, etc. The asterisk on F2 simply means the button is "momentary" instead of "on/off".

    Now this...

    EXRAIL
    ROSTER(2825,"CN ES44AC","Headlight/Bell/*Horn/Coupler/Dynamic Brake/Emergency Lights/Ditch Lights/Flange Squeal/Startup & Shutdown)
    ENDEXRAIL

    Same thing as above, except now the buttons will be labeled with "Headlight", "Bell", "Horn", etc. In order, each /<label>/ position is a button from F0 up to F32.

    However, this is for my Kato ES44AC where I installed a Loksound decoder. The sound project I downloaded from ESU has function buttons for Emergency Lights and Ditch lights, but my engine doesn't. ALL lights (number board, front and ditch lights all turn on and off together on my Kato. So I can write this in my roster:

    EXRAIL
    ROSTER(2825,"CN ES44AC","Headlight/Bell/*Horn/Coupler/Dynamic Brake///Flange Squeal/Startup & Shutdown)
    ENDEXRAIL

    See the two missing text labels for positions F5 and F6? Well, Engine Driver will skip those buttons and not display them at all in the interface since they do nothing for my engine.

    Hope this clears it up!

    I have an RPi, but honestly, I don't do JMRI layout automation, and I control all my turnouts from a physical panel on my layout. I hated the idea of having to connect an extra computer to my Command Station just for a roster. I also own only eight locomotives. So when DCC++EX 4.0 came out with the in-command-station rosters, I was super happy! As for Decoder Pro, I do that from my laptop with a programming track, but only for the two Broadway Limited engines I own, all of my other engines are Loksound and I prefer using Lokprogrammer for that.
     
    KC Smith and Sumner like this.
  7. Sumner

    Sumner TrainBoard Member

    2,844
    5,996
    63
    Great explanation, very clear. They should use it on the their web-site. Thanks,

    Sumner
     

Share This Page