//Updates Hr Display and EmotionZone Display
 private void UpdateEmotionMeasurementDisplay(EmotionMeasurement measurement)
 {
     if (HrText != null)
     {
         HrText.text = measurement.MeasurementType + ": " + (Convert.ToInt32(measurement.Measurement));
     }
 }
Beispiel #2
0
    /**
     * Method called on each new HR Measurement
     */
    private void OnNewHRMeasurement(string deviceAddress, string characteristicUUID, byte[] bytes)
    {
        BluetoothLEHardwareInterface.Log("New Heart Rate Triggered");
        if (deviceAddress.CompareTo(_connectedDevice.address) == 0)
        {
            if (IsEqual(characteristicUUID, _readHRCharacteristicUUID))
            {
                if (_baseline == 0)
                {
                    CalculateEmotionBaseline();
                }

                EmotionMeasurement hrMeasurement = ProcessData(bytes);

                //Check if player is in new emotion zone
                EmotionZone currentZone = getEmotionZone(Convert.ToInt32(hrMeasurement.Measurement));
                CurrentEmotionZone = currentZone;
                BluetoothLEHardwareInterface.Log("Heart Rate: " + hrMeasurement.Measurement + " Baseline: " + _baseline + " Emotion Zone: " + currentZone);
            }
        }
    }
Beispiel #3
0
    /**
     * Process the raw data received from the device into application usable data,
     * according the the Bluetooth Heart Rate Profile.
     */
    private EmotionMeasurement ProcessData(byte[] data)
    {
        // Heart Rate profile defined flag values
        const byte HEART_RATE_VALUE_FORMAT = 0x01;

        byte currentOffset            = 0;
        byte flags                    = data[currentOffset];
        bool isHeartRateValueSizeLong = ((flags & HEART_RATE_VALUE_FORMAT) != 0);

        currentOffset++;

        ushort heartRateMeasurementValue = 0;

        if (isHeartRateValueSizeLong)
        {
            heartRateMeasurementValue = (ushort)((data[currentOffset + 1] << 8) + data[currentOffset]);
            currentOffset            += 2;
        }
        else
        {
            heartRateMeasurementValue = data[currentOffset];
            currentOffset++;
        }

        //Calculate baseline
        if (_calculatingBaseline)
        {
            calculateBaseline(heartRateMeasurementValue);
        }
        EmotionMeasurement newMeasurement = new EmotionMeasurement(Convert.ToString(heartRateMeasurementValue), Convert.ToString(_baseline), "BPM", new DateTimeOffset());

        if (NewEmotionMeasurementEvent != null)
        {
            NewEmotionMeasurementEvent(this, new NewEmotionMeasurmentEventArgs(newMeasurement));
        }
        return(newMeasurement);
    }
	//Updates Hr Display and EmotionZone Display
	private void UpdateEmotionMeasurementDisplay(EmotionMeasurement measurement){
		if (HrText != null) {
			HrText.text = measurement.MeasurementType + ": " + (Convert.ToInt32 (measurement.Measurement));
		}
	}
 public NewEmotionMeasurmentEventArgs(EmotionMeasurement measurement)
 {
     _measurement = measurement;
 }
    /**
    * Process the raw data received from the device into application usable data,
    * according the the Bluetooth Heart Rate Profile.
    */
    private EmotionMeasurement ProcessData(byte[] data)
    {
        // Heart Rate profile defined flag values
        const byte HEART_RATE_VALUE_FORMAT = 0x01;

        byte currentOffset = 0;
        byte flags = data[currentOffset];
        bool isHeartRateValueSizeLong = ((flags & HEART_RATE_VALUE_FORMAT) != 0);

        currentOffset++;

        ushort heartRateMeasurementValue = 0;

        if (isHeartRateValueSizeLong)
        {
            heartRateMeasurementValue = (ushort)((data[currentOffset + 1] << 8) + data[currentOffset]);
            currentOffset += 2;
        }
        else
        {
            heartRateMeasurementValue = data[currentOffset];
            currentOffset++;
        }

        //Calculate baseline
        if (_calculatingBaseline) {
            calculateBaseline(heartRateMeasurementValue);
        }
        EmotionMeasurement newMeasurement = new EmotionMeasurement (Convert.ToString (heartRateMeasurementValue), Convert.ToString (_baseline), "BPM", new DateTimeOffset ());
        if(NewEmotionMeasurementEvent != null)
            NewEmotionMeasurementEvent(this, new NewEmotionMeasurmentEventArgs(newMeasurement));
        return newMeasurement;
    }
Beispiel #7
0
 public NewEmotionMeasurmentEventArgs(EmotionMeasurement measurement)
 {
     _measurement = measurement;
 }