using System; using Microsoft.SPOT; namespace UTILS { public class Stopwatch { private long _startTicks; private bool _isRunning; private const long _ticksPerSecond = System.TimeSpan.TicksPerMillisecond * 1000; public Stopwatch() { _startTicks = 0; _isRunning = false; } public bool IsRunning() { return _isRunning; } public void Reset() { _startTicks = 0; _isRunning = false; } public void Start() { _startTicks = Microsoft.SPOT.Hardware.Utility.GetMachineTime().Ticks; // start new timer _isRunning = true; } public void Stop() { _startTicks = 0; _isRunning = false; } public long ElapsedSeconds { get { if (_startTicks != 0 && _isRunning) return (Microsoft.SPOT.Hardware.Utility.GetMachineTime().Ticks - _startTicks) / _ticksPerSecond; else throw new InvalidOperationException(); } } } }