From 83606d0fcda3673b02ab5f62ac754666a8ab6a39 Mon Sep 17 00:00:00 2001 From: tnikolaou Date: Fri, 13 May 2016 19:43:12 +0200 Subject: [PATCH] Updated gradle Implemented Gyroscope characteristic (tried to follow the python code in the 2nd experiment) in SDK. Added 3 more graphs while in landscape mode, one for each axis. Updated the library used --- .../angel-sdk-debug/angel-sdk-debug.aar | Bin 51600 -> 54358 bytes Android/angel-sample-app/build.gradle | 6 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- .../com/angel/sample_app/HomeActivity.java | 39 ++++++ .../res/layout-land/activity_measurements.xml | 66 ++++++++++ .../gradle/wrapper/gradle-wrapper.properties | 4 +- .../com/angel/sdk/ChGyroscopeWaveform.java | 116 ++++++++++++++++++ .../java/com/angel/sdk/SrvWaveformSignal.java | 19 +-- 8 files changed, 240 insertions(+), 14 deletions(-) create mode 100644 Android/angel-sdk/src/main/java/com/angel/sdk/ChGyroscopeWaveform.java diff --git a/Android/angel-sample-app/angel-sdk-debug/angel-sdk-debug.aar b/Android/angel-sample-app/angel-sdk-debug/angel-sdk-debug.aar index 4545a4417cd0ff884fd167f0cba8048ad35b621e..ecea408ee169f9576563491c5e7c4c1ab0a8e394 100644 GIT binary patch delta 53569 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

#QjCe-WG*@W?#6)-wf7+;+Pe$skzQ9-g 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%0A6{I+5ri9XicR#`ht} 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 uMPSR10X mGyroscopeWaveformListener = new BleCharacteristic.ValueReadyCallback() { + @Override + public void onValueReady(ChGyroscopeWaveform.GyroscopeWaveformValue gyroscopeWaveformValue) { + if (gyroscopeWaveformValue != null && gyroscopeWaveformValue.wave != null + && mGyroscopeXWaveformView != null + && mGyroscopeYWaveformView != null + && mGyroscopeZWaveformView != null) + for (ChGyroscopeWaveform.GyroscopeXYZValues item : gyroscopeWaveformValue.wave) { + mGyroscopeXWaveformView.addValue(item.getX()); + mGyroscopeYWaveformView.addValue(item.getY()); + mGyroscopeZWaveformView.addValue(item.getZ()); + } + + } + }; + private final BleCharacteristic.ValueReadyCallback mOpticalWaveformListener = new BleCharacteristic.ValueReadyCallback() { @Override public void onValueReady(ChOpticalWaveform.OpticalWaveformValue opticalWaveformValue) { @@ -387,6 +411,20 @@ private void displayAccelerationEnergyMagnitude(final int accelerationEnergyMagn imageView.startAnimation(effect); } + private void displayGyroscopeWaveForm(final int accelerationEnergyMagnitude) { + TextView textView = (TextView) findViewById(R.id.textview_acceleration); + Assert.assertNotNull(textView); + textView.setText(accelerationEnergyMagnitude + "g"); + + ScaleAnimation effect = new ScaleAnimation(1f, 0.5f, 1f, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); + effect.setDuration(ANIMATION_DURATION); + effect.setRepeatMode(Animation.REVERSE); + effect.setRepeatCount(1); + + View imageView = findViewById(R.id.imageview_acceleration); + imageView.startAnimation(effect); + } + private void displayOnDisconnect() { displaySignalStrength(-99); displayBatteryLevel(0); @@ -406,6 +444,7 @@ private void unscheduleUpdaters() { private int orientation; private GraphView mAccelerationWaveformView, mBlueOpticalWaveformView, mGreenOpticalWaveformView; + private GraphView mGyroscopeXWaveformView,mGyroscopeYWaveformView,mGyroscopeZWaveformView; private BleDevice mBleDevice; private String mBleDeviceAddress; diff --git a/Android/angel-sample-app/src/main/res/layout-land/activity_measurements.xml b/Android/angel-sample-app/src/main/res/layout-land/activity_measurements.xml index 6dd849c..d6a71f0 100644 --- a/Android/angel-sample-app/src/main/res/layout-land/activity_measurements.xml +++ b/Android/angel-sample-app/src/main/res/layout-land/activity_measurements.xml @@ -68,4 +68,70 @@ android:layout_alignParentBottom="true" android:id="@+id/view_line_3" /> + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android/angel-sdk/gradle/wrapper/gradle-wrapper.properties b/Android/angel-sdk/gradle/wrapper/gradle-wrapper.properties index 0c71e76..698664d 100644 --- a/Android/angel-sdk/gradle/wrapper/gradle-wrapper.properties +++ b/Android/angel-sdk/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Apr 10 15:27:10 PDT 2013 +#Fri May 13 13:39:49 CEST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2-all.zip diff --git a/Android/angel-sdk/src/main/java/com/angel/sdk/ChGyroscopeWaveform.java b/Android/angel-sdk/src/main/java/com/angel/sdk/ChGyroscopeWaveform.java new file mode 100644 index 0000000..13d42b5 --- /dev/null +++ b/Android/angel-sdk/src/main/java/com/angel/sdk/ChGyroscopeWaveform.java @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2015, Seraphim Sense Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted + * provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions + * and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to + * endorse or promote products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.angel.sdk; + +import android.bluetooth.BluetoothGattCharacteristic; +import android.util.Log; + +import java.util.ArrayList; +import java.util.UUID; + +public class ChGyroscopeWaveform extends BleCharacteristic { + public final static UUID CHARACTERISTIC_UUID = UUID.fromString("5df14ec3-fed1-4428-83bf-28ade00b0d98"); + private String TAG = ChGyroscopeWaveform.class.getSimpleName(); + + public ChGyroscopeWaveform(BluetoothGattCharacteristic gattCharacteristic, BleDevice bleDevice) { + super(CHARACTERISTIC_UUID, gattCharacteristic, bleDevice); + } + + public ChGyroscopeWaveform() { + super(CHARACTERISTIC_UUID); + } + + @Override + protected GyroscopeWaveformValue processCharacteristicValue() { + GyroscopeWaveformValue result = new GyroscopeWaveformValue(); + + BluetoothGattCharacteristic ch = getBaseGattCharacteristic(); + byte[] buffer = ch.getValue(); + + final int SAMPLE_SIZE = 6; + for (int i = SAMPLE_SIZE - 1; i < buffer.length; i += SAMPLE_SIZE) { + + int x = ((unsignedByte(buffer[i - 5]) << 8) | unsignedByte(buffer[i - 4])); + int y = ((unsignedByte(buffer[i - 3]) << 8) | unsignedByte(buffer[i - 2])); + int z = ((unsignedByte(buffer[i - 1]) << 8) | unsignedByte(buffer[i])); + + GyroscopeXYZValues xyz = new GyroscopeXYZValues(convertGyro(x), convertGyro(y), convertGyro(z)); + + //Log.d(TAG, String.format("X=%f, Y=%f, Z=%f", xyz.getX(), xyz.getY(), xyz.getZ())); + result.wave.add(xyz); + } + + return result; + } + + //Based on the Experiment02.pdf + private float convertGyro(int gyro) { + float samplingRate = 100.0f; // Hz + float sensitivity = 500.0f; // deg/sec + int halfRange = 2 << 15;// 16-bit signed value + + return gyro * sensitivity / halfRange / samplingRate; + } + + public class GyroscopeWaveformValue { + public ArrayList wave = new ArrayList(); + } + + public class GyroscopeXYZValues { + private float mX; + private float mY; + private float mZ; + + public GyroscopeXYZValues(float x, float y, float z) { + mX = x; + mY = y; + mZ = z; + } + + public float getX() { + return mX; + } + + public float getY() { + return mY; + } + + public float getZ() { + return mZ; + } + } + + + private static int unsignedByte(byte x) { + return x & 0xFF; + } +} diff --git a/Android/angel-sdk/src/main/java/com/angel/sdk/SrvWaveformSignal.java b/Android/angel-sdk/src/main/java/com/angel/sdk/SrvWaveformSignal.java index 29fb509..c9cc301 100644 --- a/Android/angel-sdk/src/main/java/com/angel/sdk/SrvWaveformSignal.java +++ b/Android/angel-sdk/src/main/java/com/angel/sdk/SrvWaveformSignal.java @@ -39,7 +39,6 @@ public class SrvWaveformSignal extends BleService { public final static UUID SERVICE_UUID = UUID.fromString("481d178c-10dd-11e4-b514-b2227cce2b54"); - public SrvWaveformSignal(BluetoothGattService gattService, BleDevice bleDevice) { super(SERVICE_UUID, gattService, bleDevice); @@ -50,6 +49,7 @@ public SrvWaveformSignal(BluetoothGattService gattService, BleDevice bleDevice) // we have mistakes with the definition of one of the characteristics mOpticalWaveform = createAndRegisterCharacteristic(ChOpticalWaveform.class); mAccelerationWaveform = createAndRegisterCharacteristic(ChAccelerationWaveform.class); + mGyroscopeWaveform = createAndRegisterCharacteristic(ChGyroscopeWaveform.class); } catch (InstantiationException e) { throw new AssertionError(); } catch (IllegalAccessException e) { @@ -61,8 +61,8 @@ public SrvWaveformSignal(BluetoothGattService gattService, BleDevice bleDevice) } catch (InvocationTargetException e) { throw new AssertionError(); } - - if (mOpticalWaveform == null || mAccelerationWaveform == null) { + + if (mOpticalWaveform == null || mAccelerationWaveform == null || mGyroscopeWaveform == null) { throw new AssertionError(); } } @@ -78,14 +78,19 @@ public ChOpticalWaveform getOpticalWaveform() { return mOpticalWaveform; } - + /** Get access to Acceleration Waveform characteristic */ public ChAccelerationWaveform getAccelerationWaveform() { return mAccelerationWaveform; } - - + + /** Get access to Gyroscope Waveform characteristic */ + public ChGyroscopeWaveform getGyroscopeWaveform() { + return mGyroscopeWaveform; + } + + private ChOpticalWaveform mOpticalWaveform; private ChAccelerationWaveform mAccelerationWaveform; - + private ChGyroscopeWaveform mGyroscopeWaveform; }