protected virtual void OnStreamAvailable() { EoM_Events.Send_OnStreamConnected(VariableType); // decide what happens when the stream gets available pullSamplesContinuously = true; }
// Update is called once per frame void Update() { if (!active) { return; } // Timer control elapsedTime += Time.deltaTime; // Emulate connection disconnection HR if (sendHR && !previousSendHR) { EoM_Events.Send_OnStreamConnected(DataType.HeartRate); } else if (!sendHR && previousSendHR) { EoM_Events.Send_OnStreamDisconnected(DataType.HeartRate); } // Emulate connection disconnection RRi if (sendRrI && !previousSendRRi) { EoM_Events.Send_OnStreamConnected(DataType.RRInterval); } else if (!sendRrI && previousSendRRi) { EoM_Events.Send_OnStreamDisconnected(DataType.RRInterval); } // Send data each "sendingPeriod" if (elapsedTime >= sendingPeriod) { // Reset timer for next event elapsedTime = 0.0f; // Calculate new random values randomVariation = Random.Range(-variance, variance); // Setup new random values. If HR increases, RRi should decrease. HR += HR * randomVariation; RRi -= RRi * randomVariation * Random.Range(1.0f, 3.0f); // Send events float HRf = (float)Mathf.RoundToInt(HR); EoM_Events.Send_OnDataReceived(DataType.HeartRate, ExciteOMeterManager.GetTimestamp(), HRf); LoggerController.instance.WriteLine(LogName.VariableHeartRate, ExciteOMeterManager.GetTimestamp().ToString("F6") + "," + HR.ToString("F0")); EoM_Events.Send_OnDataReceived(DataType.RRInterval, ExciteOMeterManager.GetTimestamp(), RRi); LoggerController.instance.WriteLine(LogName.VariableRrInterval, ExciteOMeterManager.GetTimestamp().ToString("F6") + "," + RRi.ToString("F3")); } // To detect changes in runtime previousSendHR = sendHR; previousSendRRi = sendRrI; }