private void ExecuteClearQuadratureCommand() { //lock (quadLocker) //{ QuadratureEvents.Clear(); //} }
private void ProcessQuadratureStateChange(QuadratureStateChangeMessage eventData) { int delay = 1; using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var readDelay = dp.SettingsRepository.FindSingle(x => x.Key == TruckClientSettingKeys.RFID_READ_DELAY); if (readDelay != null) { delay = int.Parse(readDelay.Value); } } QuadratureStateChangeMessage lastEvent = QuadratureEncoderDataProvider.LastEvent; System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { if (eventData.DirectionOfRotation == DirectionOfRotation.RotatingClockwise) { QuadratureEvents.Add(new QuadratureEvent { Status = "Load started", Timestamp = DateTime.Now.ToUniversalTime() }); rfidStartTime = DateTime.Now.AddSeconds(delay).ToUniversalTime(); } else if (eventData.DirectionOfRotation == DirectionOfRotation.RotatingCounterClockwise) { QuadratureEvents.Add(new QuadratureEvent { Status = "Unload started", Timestamp = DateTime.Now.ToUniversalTime() }); rfidStartTime = DateTime.Now.AddSeconds(delay).ToUniversalTime(); } else { QuadratureEvents.Add(new QuadratureEvent { Status = "Stopped", Timestamp = DateTime.Now.ToUniversalTime() }); rfidStartTime = DateTime.Now.AddDays(100).ToUniversalTime(); } })); }