/*
* Copyright (C) 2014 TU Darmstadt, Hessen, Germany.
* Department of Computer Science Databases and Distributed Systems
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.tudarmstadt.dvs.myhealthassistant.myhealthhub.events.sensorreadings.physical;
import de.tudarmstadt.dvs.myhealthassistant.myhealthhub.events.sensorreadings.SensorReadingEvent;
import android.os.Parcel;
import android.os.Parcelable;
/**
* @author Christian Seeger
*
*/
public class CountAccSensorEvent extends SensorReadingEvent {
public static String EVENT_TYPE = SensorReadingEvent.COUNT_ACCELEROMETER;
public int x_peak_pos;
public int x_peak_neg;
public int y_peak_pos;
public int y_peak_neg;
public int z_peak_pos;
public int z_peak_neg;
public int x_mean;
public int y_mean;
public int z_mean;
public int x_var;
public int y_var;
public int z_var;
/**
* Creates an acceleration and counting event.
*
* @param eventID
* Event ID.
* @param timestamp
* Timestamp of event.
* @param producerID
* ID of event producer.
* @param sensorType
* Sensor type of event producer.
* @param timeOfMeasurement
* Time of measurement.
*/
public CountAccSensorEvent(String eventID, String timestamp,
String producerID, String sensorType, String timeOfMeasurement) {
super(EVENT_TYPE, eventID, timestamp, producerID, sensorType, timeOfMeasurement);
}
/**
* Set acceleration reading data
*
* @param x_mean
* @param y_mean
* @param z_mean
* @param x_var
* @param y_var
* @param z_var
*/
public void setAccData(int x_mean, int y_mean, int z_mean, int x_var,
int y_var, int z_var) {
this.x_mean = x_mean;
this.y_mean = y_mean;
this.z_mean = z_mean;
this.x_var = x_var;
this.y_var = y_var;
this.z_var = z_var;
}
/**
* Set counting data
*
* @param x_peak_pos
* @param x_peak_neg
* @param y_peak_pos
* @param y_peak_neg
* @param z_peak_pos
* @param z_peak_neg
*/
public void setCountData(int x_peak_pos, int x_peak_neg, int y_peak_pos,
int y_peak_neg, int z_peak_pos, int z_peak_neg) {
this.x_peak_pos = x_peak_pos;
this.x_peak_neg = x_peak_neg;
this.y_peak_pos = y_peak_pos;
this.y_peak_neg = y_peak_neg;
this.z_peak_pos = z_peak_pos;
this.z_peak_neg = z_peak_neg;
}
@Override
public int describeContents() {
return 0;
}
public static final Parcelable.Creator<CountAccSensorEvent> CREATOR = new Parcelable.Creator<CountAccSensorEvent>() {
@Override
public CountAccSensorEvent createFromParcel(Parcel source) {
return new CountAccSensorEvent(source);
}
@Override
public CountAccSensorEvent[] newArray(int size) {
return new CountAccSensorEvent[size];
}
};
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(eventType);
dest.writeString(eventID);
dest.writeString(timestamp);
dest.writeString(producerID);
dest.writeString(sensorType);
dest.writeString(timeOfMeasurement);
dest.writeInt(x_mean);
dest.writeInt(y_mean);
dest.writeInt(z_mean);
dest.writeInt(x_var);
dest.writeInt(y_var);
dest.writeInt(z_var);
dest.writeInt(x_peak_pos);
dest.writeInt(x_peak_neg);
dest.writeInt(y_peak_pos);
dest.writeInt(y_peak_neg);
dest.writeInt(z_peak_pos);
dest.writeInt(z_peak_neg);
}
private CountAccSensorEvent(final Parcel source) {
super(source.readString(), source.readString(), source.readString(), source.readString(),
source.readString(), source.readString());
readFromParcel(source);
}
public void readFromParcel(final Parcel source) {
x_mean = source.readInt();
y_mean = source.readInt();
z_mean = source.readInt();
x_var = source.readInt();
y_var = source.readInt();
z_var = source.readInt();
x_peak_pos = source.readInt();
x_peak_neg = source.readInt();
y_peak_pos = source.readInt();
y_peak_neg = source.readInt();
z_peak_pos = source.readInt();
z_peak_neg = source.readInt();
}
}