Exemplo n.º 1
0
        void IDispatcher.SetOccupiedSwitches(OccupiedSwitchesMessage pMessage)
        {
            IDispatcher target;

            lock (this) {
                target = Target;
            }
            if (target != null)
            {
                target.SetOccupiedSwitches(pMessage);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Updates the occupied state of all power points in a sub-area in this region.
        /// </summary>
        /// <param name="message">The received data.</param>
        public void UpdateFromRun8(OccupiedSwitchesMessage 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 + ".");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Updates the occupied state of all power points in this sub-area.
        /// </summary>
        /// <param name="message">The received data.</param>
        public void UpdateFromRun8(OccupiedSwitchesMessage message)
        {
            message.OccupiedSwitches.Sort();
            IReadOnlyList <Points> pts = PowerPoints;

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