Пример #1
0
        public IEnumerator AsyncMeasure(FinishMeasurementCallback callback, DateTime startTime)
        {
            if (CheckConnection() && IsReady())
            {
                if (startTime.CompareTo(DateTime.UtcNow) > 0)
                {
                    var startTimeArgument = startTime.Hour.ToString("D2") + " " + startTime.Minute.ToString("D2") +
                                            " " + startTime.Second.ToString("D2");
                    Debug.Log("Send 'MEASURE_AT " + startTimeArgument + "' to microcontroller");
                    Write("MEASURE_AT " + startTimeArgument);
                    //Wait till start of measurement
                    while (startTime.CompareTo(DateTime.UtcNow) > 0)
                    {
                        yield return(new WaitForSeconds(0.5f));
                    }
                }
                else
                {
                    Debug.Log("Start measuring directly. Send MEASURE message to microcontroller");
                    Write("MEASURE");
                }

                _stream.ReadTimeout    = 50;
                _asyncReadJob          = new SerialAsyncReader();
                _asyncReadJob.InStream = _stream;
                _asyncReadJob.Start();
                while (!_asyncReadJob.Update())
                {
                    // Wait till job finished
                    yield return(new WaitForSeconds(0.5f));
                }

                callback(_asyncReadJob.OutReturnData);
            }
            else
            {
                Debug.LogError("Connection to microcontroller was not possible");
            }
        }
Пример #2
0
 /// <summary>
 /// Send MEASURE_AT command to microcontroller to start measurement at the exact next UTC timestamp received with the GPS-module.
 /// </summary>
 /// <param name="callback">Function which will be called when measurement is over.</param>
 public IEnumerator AsyncMeasure(FinishMeasurementCallback callback)
 {
     yield return(AsyncMeasure(callback, DateTime.UtcNow));
 }