Beispiel #1
0
 /// <summary>
 /// Connects this signal to other lineside equipment.
 /// </summary>
 /// <remarks>
 /// This must only be called by the SubArea constructor.
 /// </remarks>
 /// <param name="schema">The schema object containing data about this signal.</param>
 /// <param name="region">The region that contains this signal.</param>
 public void InitLinks(Schema.AutomaticSignal schema, Region region)
 {
     if (schema.ProtectedTC.HasValue)
     {
         ProtectedTrackCircuit = region.GetTrackCircuit(schema.ProtectedTC.Value, SubArea);
         ProtectedTrackCircuit.PropertyChanged += OnTCPropChanged;
     }
     if (schema.NextSignal.HasValue)
     {
         NextSignal = region.GetSignal(schema.NextSignal.Value, SubArea);
         NextSignal.PropertyChanged += OnNextSignalPropChanged;
     }
     UpdateAspects();
 }
Beispiel #2
0
 /// <summary>
 /// Constructs a new automatic signal.
 /// </summary>
 /// <param name="schema">The schema object containing data about this signal.</param>
 /// <param name="id">The position of this signal in the automatic signals array.</param>
 /// <param name="subArea">The ID of the sub-area that contains this signal.</param>
 public AutomaticSignal(Schema.AutomaticSignal schema, short id, ushort subArea) : base(subArea, id, schema.HeadCount, schema.DivergenceLookahead)
 {
     Debug.Assert(id < 0);
 }