private void OnTick() { lock (this) { MillisecondsLeft -= 1; OnCountdownChanged?.Invoke(MillisecondsLeft); if (MillisecondsLeft > 0) { return; } var sensor = NextSensor; TimingTriggered?.Invoke(sensor, DateTime.Now); if (NextSensor + 1 >= SensorCount) { Reset(); return; } NextSensor++; OnNextSensorChanged?.Invoke(NextSensor); MillisecondsLeft = GetNextWaitTime(); } }
public void TriggerSensor(int sensorNumber) { TimingTriggered?.Invoke(sensorNumber, DateTime.Now); }
public void Trigger(int number, DateTime dateTime) => TimingTriggered?.Invoke(number, dateTime);
public void SendImpulse(int sensorId) { TimingTriggered?.Invoke(sensorId, DateTime.UtcNow); }