Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,22 @@ public AlgorithmDetails(
mListOfChannelDetails = listOfAlgortihmChannels;
}

public AlgorithmDetails(
String objectClusterName,
String guiFriendlyName,
List<String> listOfAssociatedSensorChannels,
long derivedSensorBitmapId,
List<Integer> listOfRequiredSensors,
String units,
SENSOR_CHECK_METHOD sensorCheckMethod,
List<ChannelDetails> listOfAlgortihmChannels){
this(objectClusterName, guiFriendlyName, listOfAssociatedSensorChannels, derivedSensorBitmapId, listOfRequiredSensors, units);
mSensorCheckMethod = sensorCheckMethod;
//2016-11-28 MN changed below to override mListOfChannelDetails as this() above attempts to create one from this class
// mListOfChannelDetails.addAll(listOfAlgortihmChannels);
mListOfChannelDetails = listOfAlgortihmChannels;
}

/** Just used in PPGtoHR
* @param objectClusterName
* @param guiFriendlyName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.shimmerresearch.algorithms.AlgorithmLoaderInterface;
import com.shimmerresearch.driver.Configuration.COMMUNICATION_TYPE;
import com.shimmerresearch.driver.ShimmerDevice;
import com.shimmerresearch.driverUtilities.ShimmerVerObject;

public class GyroOnTheFlyCalLoader implements AlgorithmLoaderInterface {

Expand All @@ -22,6 +23,7 @@ public void initialiseSupportedAlgorithms(ShimmerDevice shimmerDevice, COMMUNICA
public LinkedHashMap<String, AlgorithmDetails> getMapOfSupportedAlgorithms(ShimmerDevice shimmerDevice) {
LinkedHashMap<String, AlgorithmDetails> mapOfSupportedAlgorithms = new LinkedHashMap<String, AlgorithmDetails>();
mapOfSupportedAlgorithms = AlgorithmDetails.loadAlgorithmsWhereSensorsAreAvailable(shimmerDevice, GyroOnTheFlyCalModule.mAlgorithmMapRef);

return mapOfSupportedAlgorithms;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ public static final class DatabaseConfigHandle{
// ------------------- Static Algorithm map start -----------------------
public static final AlgorithmDetails algoGyroOnTheFlyCal = new AlgorithmDetails(
Arrays.asList(//Configuration.Shimmer2.SENSOR_ID.GYRO,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_MPU9X50_GYRO),
Configuration.Shimmer3.SENSOR_ID.SHIMMER_MPU9X50_GYRO,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO),
CHANNEL_UNITS.NO_UNITS,
SENSOR_CHECK_METHOD.ANY);
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import java.util.Map;

import com.shimmerresearch.algorithms.AlgorithmDetails;
import com.shimmerresearch.algorithms.AlgorithmDetails.SENSOR_CHECK_METHOD;
import com.shimmerresearch.driver.Configuration;
import com.shimmerresearch.driver.ObjectCluster;
import com.shimmerresearch.driver.ShimmerDevice;
Expand Down Expand Up @@ -289,8 +290,11 @@ public static class DatabaseChannelHandles{
Configuration.Shimmer3.ObjectClusterSensorName.GYRO_Z),
(DerivedSensorsBitMask.ORIENTATION_6DOF_LN_QUAT|DerivedSensorsBitMask.ORIENTATION_6DOF_LN_EULER),
Arrays.asList(Configuration.Shimmer3.SENSOR_ID.SHIMMER_ANALOG_ACCEL,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_MPU9X50_GYRO),
Configuration.Shimmer3.SENSOR_ID.SHIMMER_MPU9X50_GYRO,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_ACCEL_LN,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO),
CHANNEL_UNITS.NO_UNITS,
SENSOR_CHECK_METHOD.ANY,
listChannelsEuler6DOF_LN);

public static final AlgorithmDetails algo6DoFOrientation_WR_Acc = new AlgorithmDetails(
Expand All @@ -304,8 +308,11 @@ public static class DatabaseChannelHandles{
Configuration.Shimmer3.ObjectClusterSensorName.GYRO_Z),
(DerivedSensorsBitMask.ORIENTATION_6DOF_WR_QUAT|DerivedSensorsBitMask.ORIENTATION_6DOF_WR_EULER),
Arrays.asList(Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM303_ACCEL,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_MPU9X50_GYRO),
Configuration.Shimmer3.SENSOR_ID.SHIMMER_MPU9X50_GYRO,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS2DW12_ACCEL_WR,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO),
CHANNEL_UNITS.NO_UNITS,
SENSOR_CHECK_METHOD.ANY,
listChannelsQuat6DOF_WR);

public static final Map<String, AlgorithmDetails> mAlgorithmMapRef;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
package com.shimmerresearch.algorithms.orientation;
import java.util.LinkedHashMap;
import com.shimmerresearch.algorithms.AlgorithmDetails;
import com.shimmerresearch.algorithms.AlgorithmLoaderInterface;
import com.shimmerresearch.driver.ShimmerDevice;
import com.shimmerresearch.driver.Configuration.COMMUNICATION_TYPE;
import com.shimmerresearch.driverUtilities.ExpansionBoardDetails;
import com.shimmerresearch.driverUtilities.ShimmerVerDetails.FW_ID;
import com.shimmerresearch.driverUtilities.ShimmerVerObject;
public class OrientationModule6DOFLoader implements AlgorithmLoaderInterface {
@Override
public LinkedHashMap<String, AlgorithmDetails> getMapOfSupportedAlgorithms(ShimmerDevice shimmerDevice) {
ShimmerVerObject svo = shimmerDevice.getShimmerVerObject();
ExpansionBoardDetails eBD = shimmerDevice.getExpansionBoardDetails();
LinkedHashMap<String, AlgorithmDetails> mapOfSupportedAlgorithms = new LinkedHashMap<String, AlgorithmDetails>();
if(svo.getFirmwareIdentifier()==FW_ID.STROKARE){
// mapOfSupportedAlgorithms.put(OrientationModule6DOF.algo6DoFOrientation_WR_Acc.mAlgorithmName, OrientationModule6DOF.algo6DoFOrientation_WR_Acc);
}
else {
if((svo.isShimmerGen3() || svo.isShimmerGen4())){
// mapOfSupportedAlgorithms.putAll(OrientationModule6DOF.mAlgorithmMapRef);
mapOfSupportedAlgorithms = AlgorithmDetails.loadAlgorithmsWhereSensorsAreAvailable(shimmerDevice, OrientationModule6DOF.mAlgorithmMapRef);
}
}
return mapOfSupportedAlgorithms;
}
@Override
public void initialiseSupportedAlgorithms(ShimmerDevice shimmerDevice, COMMUNICATION_TYPE comType) {
// shimmerDevice.getSensorMap().containsKey(key)
LinkedHashMap<String, AlgorithmDetails> mapOfSupported6DOFCh = getMapOfSupportedAlgorithms(shimmerDevice);
for (AlgorithmDetails algorithmDetails:mapOfSupported6DOFCh.values()) {
OrientationModule6DOF orientationModule6DOF = new OrientationModule6DOF(shimmerDevice, algorithmDetails, shimmerDevice.getSamplingRateShimmer(COMMUNICATION_TYPE.BLUETOOTH));
//TODO load any default settings here
shimmerDevice.addAlgorithmModule(orientationModule6DOF);
}
}
}
package com.shimmerresearch.algorithms.orientation;

import java.util.LinkedHashMap;

import com.shimmerresearch.algorithms.AlgorithmDetails;
import com.shimmerresearch.algorithms.AlgorithmLoaderInterface;
import com.shimmerresearch.driver.ShimmerDevice;
import com.shimmerresearch.driver.Configuration.COMMUNICATION_TYPE;
import com.shimmerresearch.driverUtilities.ExpansionBoardDetails;
import com.shimmerresearch.driverUtilities.ShimmerVerDetails.FW_ID;
import com.shimmerresearch.driverUtilities.ShimmerVerObject;

public class OrientationModule6DOFLoader implements AlgorithmLoaderInterface {

@Override
public LinkedHashMap<String, AlgorithmDetails> getMapOfSupportedAlgorithms(ShimmerDevice shimmerDevice) {
ShimmerVerObject svo = shimmerDevice.getShimmerVerObject();
ExpansionBoardDetails eBD = shimmerDevice.getExpansionBoardDetails();

LinkedHashMap<String, AlgorithmDetails> mapOfSupportedAlgorithms = new LinkedHashMap<String, AlgorithmDetails>();

if(svo.getFirmwareIdentifier()==FW_ID.STROKARE){
// mapOfSupportedAlgorithms.put(OrientationModule6DOF.algo6DoFOrientation_WR_Acc.mAlgorithmName, OrientationModule6DOF.algo6DoFOrientation_WR_Acc);
}
else {
if((svo.isShimmerGen3() || svo.isShimmerGen3R() || svo.isShimmerGen4())){
mapOfSupportedAlgorithms = AlgorithmDetails.loadAlgorithmsWhereSensorsAreAvailable(shimmerDevice, OrientationModule6DOF.mAlgorithmMapRef);

}
}

return mapOfSupportedAlgorithms;
}

@Override
public void initialiseSupportedAlgorithms(ShimmerDevice shimmerDevice, COMMUNICATION_TYPE comType) {
// shimmerDevice.getSensorMap().containsKey(key)

LinkedHashMap<String, AlgorithmDetails> mapOfSupported6DOFCh = getMapOfSupportedAlgorithms(shimmerDevice);
for (AlgorithmDetails algorithmDetails:mapOfSupported6DOFCh.values()) {
OrientationModule6DOF orientationModule6DOF = new OrientationModule6DOF(shimmerDevice, algorithmDetails, shimmerDevice.getSamplingRateShimmer(COMMUNICATION_TYPE.BLUETOOTH));

//TODO load any default settings here

shimmerDevice.addAlgorithmModule(orientationModule6DOF);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import java.util.Map;

import com.shimmerresearch.algorithms.AlgorithmDetails;
import com.shimmerresearch.algorithms.AlgorithmDetails.SENSOR_CHECK_METHOD;
import com.shimmerresearch.driver.Configuration;
import com.shimmerresearch.driver.ObjectCluster;
import com.shimmerresearch.driver.ShimmerDevice;
Expand Down Expand Up @@ -291,8 +292,12 @@ public static class DatabaseChannelHandles{
(DerivedSensorsBitMask.ORIENTATION_9DOF_LN_QUAT|DerivedSensorsBitMask.ORIENTATION_9DOF_LN_EULER),
Arrays.asList(Configuration.Shimmer3.SENSOR_ID.SHIMMER_ANALOG_ACCEL,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_MPU9X50_GYRO,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM303_MAG),
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM303_MAG,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_ACCEL_LN,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS3MDL_MAG),
CHANNEL_UNITS.NO_UNITS,
SENSOR_CHECK_METHOD.ANY,
listChannelsEuler9DOF_LN);

public static final AlgorithmDetails algo9DoFOrientation_WR_Acc = new AlgorithmDetails(
Expand All @@ -310,8 +315,12 @@ public static class DatabaseChannelHandles{
(DerivedSensorsBitMask.ORIENTATION_9DOF_WR_QUAT|DerivedSensorsBitMask.ORIENTATION_9DOF_WR_EULER),
Arrays.asList(Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM303_ACCEL,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_MPU9X50_GYRO,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM303_MAG),
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM303_MAG,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS2DW12_ACCEL_WR,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO,
Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS3MDL_MAG),
CHANNEL_UNITS.NO_UNITS,
SENSOR_CHECK_METHOD.ANY,
listChannelsQuat9DOF_WR);


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,10 @@ public LinkedHashMap<String, AlgorithmDetails> getMapOfSupportedAlgorithms(Shimm
mapOfSupportedAlgorithms.put(OrientationModule9DOF.algo9DoFOrientation_WR_Acc.mAlgorithmName, OrientationModule9DOF.algo9DoFOrientation_WR_Acc);
}
else {
if(svo.isShimmerGen3() || svo.isShimmerGen4()){
// mapOfSupportedAlgorithms.putAll(OrientationModule9DOF.mAlgorithmMapRef);
if(svo.isShimmerGen3() || svo.isShimmerGen3R() || svo.isShimmerGen4()){

mapOfSupportedAlgorithms = AlgorithmDetails.loadAlgorithmsWhereSensorsAreAvailable(shimmerDevice, OrientationModule9DOF.mAlgorithmMapRef);

}
}

Expand Down
Loading