private void ShutterStatusUpdateOnNext(IShutterStatus statusNotification) { try { stateMachine.HardwareStatusReceived(statusNotification); } catch (Exception ex) { Log.Error().Exception(ex).Message($"Error while processing status notification: {statusNotification}") .Write(); } }
/// <inheritdoc /> public override void StatusUpdateReceived(IShutterStatus status) { base.StatusUpdateReceived(status); Machine.UpdateStatus(status); if (status.ClosedSensorActive) { Machine.TransitionToState(new ClosedState(Machine)); } else { Machine.TransitionToState(new OpenState(Machine)); } }
internal void UpdateStatus(IShutterStatus status) { ShutterMotorActive = false; ShutterLimitOfTravel = status.LimitOfTravel; ShutterMovementDirection = ShutterDirection.None; if (status.OpenSensorActive) { ShutterLimitSwitches = SensorState.Open; } else if (status.ClosedSensorActive) { ShutterLimitSwitches = SensorState.Closed; } else { ShutterLimitSwitches = SensorState.Indeterminate; } ShutterStepPosition = status.Position; }
/// <inheritdoc /> public virtual void StatusUpdateReceived(IShutterStatus status) => Log.Debug().Message("Status received: {status}", status).Write();
/// <inheritdoc /> public override void StatusUpdateReceived(IShutterStatus status) { base.StatusUpdateReceived(status); Machine.UpdateStatus(status); Machine.TransitionToState(new OpenState(Machine)); }