Hi,
I am trying to figure out how signal heads, signal masts, main and advance signals (British: home/distant) work.
I'm trying to model Swiss Federal Railways (SBB/CFF/FFS) signalling - described in Wikipedia ( ). For simplicity I'm restricting myself to the four aspects which can be indicated on a four lamp advance signal; namely Halt, and Aspects 1-3. AFAIK they are the most common anyway.
I have two questions:
I have defined the various aspects for the main signal and the same for an advance signal. So far I've been able to create masts for the two signals separately which work as expected.
A common practice is to have a main signal and an advance signal (for the next main) on the same mast, as illustrated in the wikipedia article. Obviously they work independently (except if the main signal is showing Halt, then the advance signal is not lit). Do I need to code out the sixteen aspect combinations for the combined mast, or is there a way to reuse my existing definitions when defining a mast?
I put together a sandbox layout in Panelpro, where I added a main and advance signal. So far I have failed to persuade the two to work together. Individually they work, changing when clicked on. I wanted to have the advance signal follow the main signal. I've tried Simple Signal Logic (SSL), mast logic and Logix, all without success.
Here is the generated xml from Logixs:
<logixs class="jmri.managers.configurexml.DefaultLogixManagerXml">
<logix systemName="IX:AUTO:0001" userName="SBB Vorsignal" enabled="yes">
<systemName>IX:AUTO:0001</systemName>
<userName>SBB Vorsignal</userName>
<logixConditional systemName="IX:AUTO:0001C1" order="0" />
<logixConditional systemName="IX:AUTO:0001C3" order="1" />
<logixConditional systemName="IX:AUTO:0001C2" order="2" />
</logix>
</logixs>
<conditionals class="jmri.managers.configurexml.DefaultConditionalManagerXml">
<conditional systemName="IX:AUTO:0001C1" userName="SBB Vorsignal Halt" antecedent="R1" logicType="1" triggerOnChange="yes">
<systemName>IX:AUTO:0001C1</systemName>
<userName>SBB Vorsignal Halt</userName>
<conditionalStateVariable operator="4" negated="no" type="11" systemName="ih1" dataString="Red" num1="0" num2="0" triggersCalc="yes" />
<conditionalAction option="1" type="3" systemName="ih4" data="1" delay="0" string="Red" />
</conditional>
<conditional systemName="IX:AUTO:0001C2" userName="SBB Vorsignal FB2" antecedent="R1" logicType="1" triggerOnChange="yes">
<systemName>IX:AUTO:0001C2</systemName>
<userName>SBB Vorsignal FB2</userName>
<conditionalStateVariable operator="4" negated="no" type="12" systemName="ih1" dataString="Yellow" num1="0" num2="0" triggersCalc="yes" />
<conditionalAction option="1" type="3" systemName="ih4" data="4" delay="0" string="Yellow" />
</conditional>
<conditional systemName="IX:AUTO:0001C3" userName="SBB Vorsignal FB1" antecedent="R1" logicType="1" triggerOnChange="yes">
<systemName>IX:AUTO:0001C3</systemName>
<userName>SBB Vorsignal FB1</userName>
<conditionalStateVariable operator="4" negated="no" type="13" systemName="ih1" dataString="Green" num1="0" num2="0" triggersCalc="yes" />
<conditionalAction option="1" type="3" systemName="ih4" data="16" delay="0" string="Green" />
</conditional>
</conditionals>
Basically, what I wanted to achieve was: If the main signal (ih1) changes aspect, show the same aspect on the advance signal (ih4). How do I best achieve this?
Thanks in advance for your help
Otto Schreibke