void IDispatcher.SetReversedSwitches(ReversedSwitchesMessage pMessage) { IDispatcher target; lock (this) { target = Target; } if (target != null) { target.SetReversedSwitches(pMessage); } }
/// <summary> /// Updates the positions of all power points in a sub-area in this region. /// </summary> /// <param name="message">The received data.</param> public void UpdateFromRun8(ReversedSwitchesMessage 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 + "."); } }
/// <summary> /// Updates the positions of all power points in this sub-area. /// </summary> /// <param name="message">The received data.</param> public void UpdateFromRun8(ReversedSwitchesMessage message) { message.ReversedSwitches.Sort(); IReadOnlyList <Points> pts = PowerPoints; ForEachNumberPresentAbsent((int i, bool reversed) => { pts[i].UpdateReversedFromRun8(reversed); }, pts.Count, message.ReversedSwitches); if (message.ReversedSwitches.Count > 0 && message.ReversedSwitches[message.ReversedSwitches.Count - 1] >= pts.Count && !PointsCountMismatchPrinted) { Debug.Print("Run8 sent reversed power points number " + message.ReversedSwitches[message.ReversedSwitches.Count - 1] + " which sub-area " + ID + " doesn't know about."); PointsCountMismatchPrinted = true; } }
public virtual void SetReversedSwitches(ReversedSwitchesMessage pMessage) { }
void IDispatcher.SetReversedSwitches(ReversedSwitchesMessage pMessage) { MessageReceived = true; SyncContext.Post((object state) => Region.UpdateFromRun8(pMessage), null); }