/// <summary> /// Start taking measurements the next full minute. Wait till then. /// </summary> public void MeasureNextMin() { if (state == State.Idle) { serial.SetNumberOfMeasurements(NR_OFF_MEASUREMENTS); state = State.Measure; DateTime startTime = DateTime.UtcNow; startTime = startTime.AddMinutes(1); TimeSpan seconds = new TimeSpan(0, 0, startTime.Second); startTime = startTime.Subtract(seconds); SerialCommunication.FinishMeasurementCallback cb = FinishedMeasurementCallback; StartCoroutine(serial.AsyncMeasure(cb, startTime)); } }
/// <summary> /// Coroutine for actual measure process. /// </summary> private IEnumerator MeasureCoroutine() { // Wait for countdown time to prepare measurement. float startTime = Time.time + _countdown; while (Time.time < startTime) { float countdowon = startTime - Time.time; Debug.Log("Seconds till Start: " + countdowon); yield return(null); } // Actually start the measurement process. serial.SetNumberOfMeasurements(NR_OFF_MEASUREMENTS); state = State.Measure; SerialCommunication.FinishMeasurementCallback cb = FinishedMeasurementCallback; StartCoroutine(serial.AsyncMeasure(cb)); }