Example #1
0
        void IDispatcher.SetInterlockErrorSwitches(InterlockErrorSwitchesMessage pMessage)
        {
            IDispatcher target;

            lock (this) {
                target = Target;
            }
            if (target != null)
            {
                target.SetInterlockErrorSwitches(pMessage);
            }
        }
Example #2
0
        /// <summary>
        /// Updates the inconsistent state of all power points in a sub-area in this region.
        /// </summary>
        /// <param name="message">The received data.</param>
        public void UpdateFromRun8(InterlockErrorSwitchesMessage message)
        {
            SubArea subArea;

            if (SubAreas.TryGetValue((ushort)message.Route, out subArea))
            {
                subArea.UpdateFromRun8(message);
            }
            else if (squelchUnknownSubAreas.Add(message.Route))
            {
                Debug.Print("Received update for unknown sub-area " + message.Route + ".");
            }
        }
Example #3
0
        /// <summary>
        /// Updates the inconsistent state of all power points in this sub-area.
        /// </summary>
        /// <param name="message">The received data.</param>
        public void UpdateFromRun8(InterlockErrorSwitchesMessage message)
        {
            message.InterlockErrorSwitches.Sort();
            IReadOnlyList <Points> pts = PowerPoints;

            ForEachNumberPresentAbsent((int i, bool error) => {
                pts[i].UpdateInterlockErrorFromRun8(error);
            }, pts.Count, message.InterlockErrorSwitches);
            if (message.InterlockErrorSwitches.Count > 0 && message.InterlockErrorSwitches[message.InterlockErrorSwitches.Count - 1] >= pts.Count && !PointsCountMismatchPrinted)
            {
                Debug.Print("Run8 sent inconsistent power points number " + message.InterlockErrorSwitches[message.InterlockErrorSwitches.Count - 1] + " which sub-area " + ID + " doesn't know about.");
                PointsCountMismatchPrinted = true;
            }
        }
Example #4
0
 public virtual void SetInterlockErrorSwitches(InterlockErrorSwitchesMessage pMessage)
 {
 }
Example #5
0
 void IDispatcher.SetInterlockErrorSwitches(InterlockErrorSwitchesMessage pMessage)
 {
     MessageReceived = true;
     SyncContext.Post((object state) => Region.UpdateFromRun8(pMessage), null);
 }