Topics

Layout Editor - Signal Head via LCC

Tim Anderson
 

Can you help me?
I am using Layout Editor.

I have an OpenLCB connection to LCC defined in Layout Editor.
I want to connect a signal head on LCC.

The Signal Head Table wants an integer number for the signal head on the LCC bus.
How do I connect or create an integer number for the signal head on the LCC bus?
The hardware is a RR-CirKits Signal-LCC board.

Thanks, Tim

Ken Cameron
 

Tim,

Currently there isn't an editor for the signal mast table for LCC. You have
to manually edit the file to create the entry. Not for the faint of heart or
those not good at editing XML. We are hoping something will be in for the
4.12, but it is taking time.

If you have a panel you want to add signal masts to, I can do it for you.
After a couple of examples, you might be able to comfortably do the cut and
paste to add the rest.

-Ken Cameron, Member JMRI Dev Team
www.jmri.org
www.fingerlakeslivesteamers.org
www.cnymod.com
www.syracusemodelrr.org

Tim Anderson
 

I'm C++ programmer and have not worked with xml. Guess I'll wait for LCC implementation.
Who can I plead my case with ??
Thanks, Tim

dick bronson
 

Tim,
The Signal LCC board normally controls signal masts by aspect, not with signal heads by colors. That said, the JMRI OpenLCB signal mast class (olcbsignalmast) that was added last January to do this job is still missing a GUI. (Graphical User Interface) I am not going to attempt to explain how to use this new class without a GUI other than to say that it involves a lot of manual editing of the panel.xml file and is not a recommended solution.

Probably the simplest workaround at present is to create a series of (fake) JMRI turnouts with one side (e.g. normal) using the EventID required for each aspect, and the other side (e.g. reverse) being a blank EventID. (00.00.00.00.00.00.00.00) Then create your JMRI signal masts using Turnout Controlled Masts specifying the appropriate 'turnout' for each aspect. There are some problems and restrictions when using turnout controlled masts, but for most users it will suffice to get things going. Give each 'turnout' an appropriate user name. (for example '101R-Clear', '101R-Stop', or whatever your panel's signal label plus the aspect may be) This will greatly improve the clarity when you create the signal mast entries because you will not need to use arcane EventID numbers. You can just select the appropriate plain English user names. Hopefully using the appropriate user names will also simplify conversion to a future 'Aspect Controlled Masts' option.

As a point of clarification, the reason to use dummy EventIDs for half of each turnout command is that an aspect controlled mast uses single commands to change aspects. The hardware itself automatically turns off any previous aspect. This means that only half of each turnout message pair is ever used. The other half is simply a place holder to make the JMRI tables happy. An turnout table entry might look like this: (as seen in the panel.xml file) <systemName>MT02.01.57.10.00.06.02.3A;00.00.00.00.00.00.00.00</systemName> <userName>102R-Clear</userName>

Dick :)

On 06/11/2018 04:40 PM, t.anderson46@... wrote:
Can you help me?
I am using Layout Editor.

I have an OpenLCB connection to LCC defined in Layout Editor.
I want to connect a signal head on LCC.

The Signal Head Table wants an integer number for the signal head on the LCC bus.
How do I connect or create an integer number for the signal head on the LCC bus?
The hardware is a RR-CirKits Signal-LCC board.

Thanks, Tim

dick bronson
 

Tim,
Jump at this offer. Ken is one of the few folks that know the way to edit in the new features manually.

Dick :)

On 06/11/2018 05:02 PM, Ken Cameron wrote:
Tim,

Currently there isn't an editor for the signal mast table for LCC. You have
to manually edit the file to create the entry. Not for the faint of heart or
those not good at editing XML. We are hoping something will be in for the
4.12, but it is taking time.

If you have a panel you want to add signal masts to, I can do it for you.
After a couple of examples, you might be able to comfortably do the cut and
paste to add the rest.

-Ken Cameron, Member JMRI Dev Team
www.jmri.org
www.fingerlakeslivesteamers.org
www.cnymod.com
www.syracusemodelrr.org




Ken Cameron
 

Now for those following along, here is the example for a single head and
double head mast. Note in the first line for each mast the (####), those #'s
get a number 1 to n as you create each additional mast. It is just a
sequence number. I suspect this should keep most out of thinking this is
simple.

The event id's will need to be filled in, but leave the ones you don't need
as zeros. Any aspect you don't create a rule in the mast, leave it zeros but
make sure that aspect name is in the disabled listing. These aspect names
come from the signal system in JMRI.

I expect that the indents will get messed up in the email. I'm showing it
more as example of what is in there and needs to be dealt with. Right now,
we are not doing anything with lit/notlit, held/notheld, inside the head.
I've not got any requests for approach lighting and we've not got to dealing
with CTC yet.

<signalmasts
class="jmri.managers.configurexml.DefaultSignalMastManagerXml">
<olcbsignalmast
class="jmri.jmrix.openlcb.configurexml.OlcbSignalMastXml">
<systemName>MF$olm:basic:one-searchlight(####)</systemName>
<userName>CP 31.5 South</userName>
<lit>
<lit>x0000000000000000</lit>
<notlit>x0000000000000000</notlit>
</lit>
<held>
<held>x0000000000000000</held>
<notheld>x0000000000000000</notheld>
</held>
<aspect defines="Clear">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Approach">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Stop">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Unlit">
<event>x0000000000000000</event>
</aspect>
<disabledAspects>
<disabledAspect>Unlit</disabledAspect>
</disabledAspects>
</olcbsignalmast>
<olcbsignalmast
class="jmri.jmrix.openlcb.configurexml.OlcbSignalMastXml">
<systemName>MF$olm:basic:two-searchlight(####)</systemName>
<userName>CP 32 South</userName>
<lit>
<lit>x0000000000000000</lit>
<notlit>x0000000000000000</notlit>
</lit>
<held>
<held>x0000000000000000</held>
<notheld>x0000000000000000</notheld>
</held>
<aspect defines="Clear">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Approach">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Stop">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Diverging Clear">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Diverging Approach">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Unlit">
<event>x0000000000000000</event>
</aspect>
<disabledAspects>
<disabledAspect>Diverging Clear</disabledAspect>
<disabledAspect>Unlit</disabledAspect>
</disabledAspects>
</olcbsignalmast>
</signalmasts>


-Ken Cameron, Member JMRI Dev Team
www.jmri.org
www.fingerlakeslivesteamers.org
www.cnymod.com
www.syracusemodelrr.org

Nick
 

Ken,

Thanks for this info. I too am still working on the club's module for our LCC conversion. One small glitch we have run into is that true, two-lead bi-polar LEDs are not yet able to be used with the Signalman LCC module . The documentation on Dick's website clearly states after page 38, "Information may be incomplete and / or in error" . Page 42 is a perfect example. I spent hours pulling my hair out after Ken was able to get me to the point of being able to make the pretty lights work for our 3-over-2 signals. Then I got "fancy" and decided to try using some searchlight signals I had for my layout. The firmware wasn't yet added for that particular function yet in the Signalman LCC . With the info Ken and Dick have provided, I might now be able to build the modules for the demo. I like the idea of LCC and with our over-loaded Loconet, this might finally allow us to signal the 30 year-old layout.

Nick KulpĀ 

Tim Anderson
 

Ken,

Where the 00000000000000000 are is the format with periods or spaces or compressed without either?

Thanks, Tim

On 6/11/2018 6:04 PM, Ken Cameron wrote:
Now for those following along, here is the example for a single head and
double head mast. Note in the first line for each mast the (####), those #'s
get a number 1 to n as you create each additional mast. It is just a
sequence number. I suspect this should keep most out of thinking this is
simple.

The event id's will need to be filled in, but leave the ones you don't need
as zeros. Any aspect you don't create a rule in the mast, leave it zeros but
make sure that aspect name is in the disabled listing. These aspect names
come from the signal system in JMRI.

I expect that the indents will get messed up in the email. I'm showing it
more as example of what is in there and needs to be dealt with. Right now,
we are not doing anything with lit/notlit, held/notheld, inside the head.
I've not got any requests for approach lighting and we've not got to dealing
with CTC yet.

<signalmasts
class="jmri.managers.configurexml.DefaultSignalMastManagerXml">
<olcbsignalmast
class="jmri.jmrix.openlcb.configurexml.OlcbSignalMastXml">
<systemName>MF$olm:basic:one-searchlight(####)</systemName>
<userName>CP 31.5 South</userName>
<lit>
<lit>x0000000000000000</lit>
<notlit>x0000000000000000</notlit>
</lit>
<held>
<held>x0000000000000000</held>
<notheld>x0000000000000000</notheld>
</held>
<aspect defines="Clear">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Approach">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Stop">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Unlit">
<event>x0000000000000000</event>
</aspect>
<disabledAspects>
<disabledAspect>Unlit</disabledAspect>
</disabledAspects>
</olcbsignalmast>
<olcbsignalmast
class="jmri.jmrix.openlcb.configurexml.OlcbSignalMastXml">
<systemName>MF$olm:basic:two-searchlight(####)</systemName>
<userName>CP 32 South</userName>
<lit>
<lit>x0000000000000000</lit>
<notlit>x0000000000000000</notlit>
</lit>
<held>
<held>x0000000000000000</held>
<notheld>x0000000000000000</notheld>
</held>
<aspect defines="Clear">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Approach">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Stop">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Diverging Clear">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Diverging Approach">
<event>x0000000000000000</event>
</aspect>
<aspect defines="Unlit">
<event>x0000000000000000</event>
</aspect>
<disabledAspects>
<disabledAspect>Diverging Clear</disabledAspect>
<disabledAspect>Unlit</disabledAspect>
</disabledAspects>
</olcbsignalmast>
</signalmasts>


-Ken Cameron, Member JMRI Dev Team
www.jmri.org
www.fingerlakeslivesteamers.org
www.cnymod.com
www.syracusemodelrr.org





Ken Cameron
 

Tim,

The event id is one very long hex number. Here is a 'live' example:

<aspect defines="Clear">
<event>x02015710004F01AE</event>
</aspect>
<aspect defines="Approach">
<event>x02015710004F01AB</event>
</aspect>
<aspect defines="Stop">
<event>x02015710004F01A8</event>
</aspect>

-Ken Cameron, Member JMRI Dev Team
www.jmri.org
www.fingerlakeslivesteamers.org
www.cnymod.com
www.syracusemodelrr.org

Dave Barraza
 

I see you are defining an aspects, then later defining it as disableAspect. I assume that the extra steps are necessary to complete the dance!

I may give this a whirl, thanks for posting Ken

Ken Cameron
 

What I seem to find is either the aspect part needs a valid event code or
the aspect name needs to be in the disabled list. If it is disabled the
table and LE will not step into it or let you try to display that aspect.

-Ken Cameron, Member JMRI Dev Team
www.jmri.org
www.fingerlakeslivesteamers.org
www.cnymod.com
www.syracusemodelrr.org