private void ApplyFieldSet([NotNull] CirceControllerSessionManager sessionManager, VisualizeFieldSet fieldSet) { // Due to limited size of hardware buffers, we currently send the operation for each device individually. foreach (WirelessNetworkAddress display in displaysInRunComposition) { Task task = sessionManager.VisualizeAsync(new[] { display }, fieldSet); task.ContinueWith(t => { if (t.IsFaulted) { Log.Warn($"Failed to send display update operation from controller: {fieldSet}.", t.Exception); } }); } }
public Task VisualizeAsync([NotNull] [ItemNotNull] IEnumerable<WirelessNetworkAddress> destinationAddresses, VisualizeFieldSet fieldSet, CancellationToken cancellationToken = default(CancellationToken)) { var operation = new VisualizeOperation(destinationAddresses) { CurrentCompetitorNumber = fieldSet.CurrentCompetitorNumber, NextCompetitorNumber = fieldSet.NextCompetitorNumber, StartTimer = fieldSet.StartPrimaryTimer, PrimaryTimerValue = fieldSet.PrimaryTimerValue, SecondaryTimerValue = fieldSet.SecondaryTimerValue, FaultCount = fieldSet.CurrentFaultCount, RefusalCount = fieldSet.CurrentRefusalCount, Eliminated = fieldSet.CurrentIsEliminated, PreviousPlacement = fieldSet.PreviousPlacement }; return sessionGuard.SendAsync(operation, cancellationToken); }