private void TimerCallback(object state) { TriggerTimerMap map = state as TriggerTimerMap; if (map == null) { throw new Exception("Map state unknown"); } DeactivateOutput(map.DeviceId); _triggerTimers.Remove(map); map.TriggerTimer.Dispose(); }
public override void TriggerOutput(string deviceId, int durationMs) { if (new Guid(deviceId) == Constants.Output1) { ActivateOutput(deviceId); Container.EventManager.NewEvent(deviceId, EventId.OutputActivated); TriggerTimerMap map = new TriggerTimerMap() { DeviceId = deviceId }; map.TriggerTimer = new Timer(TimerCallback, map, durationMs, Timeout.Infinite); _triggerTimers.Add(map); return; } throw new MIPDriverException("Device does not support Output commands"); }