/*
LinkingSensorData.java
Copyright (c) 2016 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.deviceplugin.linking.linking;
import android.os.Parcel;
import android.os.Parcelable;
public class LinkingSensorData implements Parcelable {
public enum SensorType {
GYRO(0),
ACCELERATION(1),
COMPASS(2),
BATTERY(3),
TEMPERATURE(4),
HUMIDITY(5),
EXTENDS(6);
private int mValue;
SensorType(int value) {
mValue = value;
}
public int getValue() {
return mValue;
}
public static SensorType valueOf(int value) {
for (SensorType type : values()) {
if (type.getValue() == value) {
return type;
}
}
return EXTENDS;
}
}
private String mBdAddress;
private SensorType mType = SensorType.GYRO;
private float mX;
private float mY;
private float mZ;
private byte[] mOriginalData;
private long mTime;
public static final Parcelable.Creator<LinkingSensorData> CREATOR = new Parcelable.Creator<LinkingSensorData>() {
@Override
public LinkingSensorData createFromParcel(Parcel parcel) {
return new LinkingSensorData(parcel);
}
@Override
public LinkingSensorData[] newArray(int size) {
return new LinkingSensorData[size];
}
};
public LinkingSensorData() {
}
public LinkingSensorData(Parcel in) {
mBdAddress = in.readString();
mType = SensorType.values()[in.readInt()];
mX = in.readFloat();
mY = in.readFloat();
mZ = in.readFloat();
in.writeByteArray(mOriginalData);
mOriginalData = in.createByteArray();
in.writeLong(mTime);
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(mBdAddress);
parcel.writeInt(mType.ordinal());
parcel.writeFloat(mX);
parcel.writeFloat(mY);
parcel.writeFloat(mZ);
parcel.writeByteArray(mOriginalData);
parcel.writeLong(mTime);
}
@Override
public int describeContents() {
return 0;
}
public String getBdAddress() {
return mBdAddress;
}
public void setBdAddress(String bdAddress) {
mBdAddress = bdAddress;
}
public SensorType getType() {
return mType;
}
public void setType(SensorType type) {
mType = type;
}
public float getX() {
return mX;
}
public void setX(float x) {
mX = x;
}
public float getY() {
return mY;
}
public void setY(float y) {
mY = y;
}
public float getZ() {
return mZ;
}
public void setZ(float z) {
mZ = z;
}
public byte[] getOriginalData() {
return mOriginalData;
}
public void setOriginalData(byte[] originalData) {
mOriginalData = originalData;
}
public long getTime() {
return mTime;
}
public void setTime(long time) {
mTime = time;
}
@Override
public String toString() {
String orig = "null";
if (mOriginalData != null) {
orig = "[";
for (int i = 0; i < mOriginalData.length; i++) {
if (i != 0) {
orig += ", ";
}
orig += String.format("0x%1$02x", mOriginalData[i]);
}
orig += "]";
}
return "[" + getBdAddress() + "] type:" + getType() + " time:" + getTime()
+ "( x: " + getX() + " y: " + getY() + " z: " + getZ() + ") orig: " + orig;
}
}