diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/adxl371/SensorADXL371.java b/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/adxl371/SensorADXL371.java index d61dbb91b..ec2c5f7aa 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/adxl371/SensorADXL371.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/adxl371/SensorADXL371.java @@ -546,6 +546,14 @@ public void generateCalibMap() { updateCurrentAccelHighGCalibInUse(); } + @Override + public boolean isSensorUsingDefaultCal(int sensorId) { + if(sensorId==Configuration.Shimmer3.SENSOR_ID.SHIMMER_ADXL371_ACCEL_HIGHG){ + return isUsingDefaultHighGAccelParam(); + } + return false; + } + //--------- Optional methods to override in Sensor Class end -------- //--------- Sensor specific methods start -------------- diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lisxmdl/SensorLIS2MDL.java b/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lisxmdl/SensorLIS2MDL.java index 10129f7dd..f3cbdbcf5 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lisxmdl/SensorLIS2MDL.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lisxmdl/SensorLIS2MDL.java @@ -428,6 +428,14 @@ public void generateCalibMap() { updateCurrentMagCalibInUse(); } + @Override + public boolean isSensorUsingDefaultCal(int sensorId) { + if(sensorId==Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS2MDL_MAG){ + return isUsingDefaultMagParam(); + } + return false; + } + //--------- Optional methods to override in Sensor Class end -------- //--------- Sensor specific methods start -------------- diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lisxmdl/SensorLIS3MDL.java b/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lisxmdl/SensorLIS3MDL.java index 7b0ede344..05908ec81 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lisxmdl/SensorLIS3MDL.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lisxmdl/SensorLIS3MDL.java @@ -519,6 +519,14 @@ public void generateCalibMap() { updateCurrentMagAltCalibInUse(); } + + @Override + public boolean isSensorUsingDefaultCal(int sensorId) { + if(sensorId==Configuration.Shimmer3.SENSOR_ID.SHIMMER_LIS3MDL_MAG_ALT){ + return isUsingDefaultMagAltParam(); + } + return false; + } // --------- Optional methods to override in Sensor Class end -------- diff --git a/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lsm6dsv/SensorLSM6DSV.java b/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lsm6dsv/SensorLSM6DSV.java index 4d546a036..badf09739 100644 --- a/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lsm6dsv/SensorLSM6DSV.java +++ b/ShimmerDriver/src/main/java/com/shimmerresearch/sensors/lsm6dsv/SensorLSM6DSV.java @@ -48,7 +48,7 @@ public class SensorLSM6DSV extends AbstractSensor{ private static final long serialVersionUID = -1336807717590498430L; // LN ACCEL protected int mSensorIdAccelLN = -1; - private int mAccelRange = 1; + private int mAccelRange = 0; public boolean mIsUsingDefaultLNAccelParam = true; public static final double[][] AlignmentMatrixLowNoiseAccelShimmer3r = {{-1,0,0},{0,1,0},{0,0,-1}}; public static final double[][] OffsetVectorLowNoiseAccelShimmer3r = {{0},{0},{0}}; @@ -99,7 +99,7 @@ public class SensorLSM6DSV extends AbstractSensor{ // GYRO public boolean mIsUsingDefaultGyroParam = true; - private int mGyroRange = 1; + private int mGyroRange = 0; protected int mLSM6DSVGyroAccelRate=0; protected int mSensorIdGyro = -1; @@ -272,7 +272,6 @@ public class LABEL_SENSOR_TILE{ // GYRO public static final String[] ListofGyroRange = {"+/- 125dps","+/- 250dps","+/- 500dps","+/- 1000dps","+/- 2000dps","+/- 4000dps"}; - //public static final Integer[] ListofLSM6DSVGyroRangeConfigValues = {0,1,4,5,3,6}; public static final Integer[] ListofLSM6DSVGyroRangeConfigValues = {0,1,2,3,4,5}; public static final String[] ListofLSM6DSVGyroRate={"Power-down","1.875Hz","7.5Hz","12.0Hz","30.0Hz","60.0Hz","120.0Hz","240.0Hz","480.0Hz","960.0Hz","1920.0Hz","3840.0Hz","7680.0Hz"}; public static final Double[] ListofLSM6DSVGyroRateDouble={0.0,1.875,7.5,12.0,30.0,60.0,120.0,240.0,480.0,960.0,1920.0,3840.0,7680.0}; @@ -549,6 +548,7 @@ public byte[] generateCalParamByteArrayAccelLn(){ public int getAccelRange(){ return mAccelRange; } + public void setAccelRange(int accelRange){ setLSM6DSVAccelRange(accelRange); } @@ -560,6 +560,11 @@ public void setLSM6DSVAccelRange(int i){ } } + public void setDefaultLSM6DSVAccelSensorConfig(boolean isSensorEnabled) { + if(isSensorEnabled) { + setLSM6DSVAccelRange(0); + } + } //--------- LN Accel methods end -------------- @@ -787,6 +792,7 @@ public void generateSensorMap() { public LinkedHashMap generateConfigMap() { LinkedHashMap mapOfConfig = new LinkedHashMap(); + mapOfConfig.put(SensorLSM6DSV.DatabaseConfigHandle.ACCEL_RANGE, getAccelRange()); mapOfConfig.put(SensorLSM6DSV.DatabaseConfigHandle.GYRO_RANGE, getGyroRange()); mapOfConfig.put(SensorLSM6DSV.DatabaseConfigHandle.GYRO_RATE, getLSM6DSVGyroAccelRate()); @@ -805,13 +811,10 @@ public LinkedHashMap generateConfigMap() { @Override public void parseConfigMap(LinkedHashMap mapOfConfigPerShimmer) { - //Analog Accel Calibration Configuration - parseCalibDetailsKinematicFromDb(mapOfConfigPerShimmer, - Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_ACCEL_LN, - 0, - SensorLSM6DSV.DatabaseConfigHandle.LIST_OF_CALIB_HANDLES_LN_ACC, - SensorLSM6DSV.DatabaseConfigHandle.LN_ACC_CALIB_TIME); + if(mapOfConfigPerShimmer.containsKey(DatabaseConfigHandle.ACCEL_RANGE)){ + setAccelRange(((Double) mapOfConfigPerShimmer.get(DatabaseConfigHandle.ACCEL_RANGE)).intValue()); + } if(mapOfConfigPerShimmer.containsKey(DatabaseConfigHandle.GYRO_RATE)){ setLSM6DSVGyroAccelRate(((Double) mapOfConfigPerShimmer.get(DatabaseConfigHandle.GYRO_RATE)).intValue()); } @@ -819,9 +822,16 @@ public void parseConfigMap(LinkedHashMap mapOfConfigPerShimmer) setGyroRange(((Double) mapOfConfigPerShimmer.get(DatabaseConfigHandle.GYRO_RANGE)).intValue()); } + //LN Accel Calibration Configuration + parseCalibDetailsKinematicFromDb(mapOfConfigPerShimmer, + Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_ACCEL_LN, + getAccelRange(), + SensorLSM6DSV.DatabaseConfigHandle.LIST_OF_CALIB_HANDLES_LN_ACC, + SensorLSM6DSV.DatabaseConfigHandle.LN_ACC_CALIB_TIME); + //Gyroscope Calibration Configuration parseCalibDetailsKinematicFromDb(mapOfConfigPerShimmer, - mSensorIdGyro, + Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO, getGyroRange(), SensorLSM6DSV.DatabaseConfigHandle.LIST_OF_CALIB_HANDLES_GYRO, SensorLSM6DSV.DatabaseConfigHandle.GYRO_CALIB_TIME); @@ -829,9 +839,7 @@ public void parseConfigMap(LinkedHashMap mapOfConfigPerShimmer) @Override public void generateConfigOptionsMap() { - // No Configuration Needed for Accel - - // For Gyro + // For Gyro & Accel mConfigOptionsMap.clear(); addConfigOption(configOptionLSM6DSVGyroRange); addConfigOption(configOptionLSM6DSVAccelRange); @@ -846,7 +854,7 @@ public void generateSensorGroupMapping() { mSensorGroupingMap.put(Configuration.Shimmer3.LABEL_SENSOR_TILE.LOW_NOISE_ACCEL_3R.ordinal(), sensorGroupLnAccelLSM6DSV); mSensorGroupingMap.put(Configuration.Shimmer3.LABEL_SENSOR_TILE.GYRO_3R.ordinal(), new SensorGroupingDetails( LABEL_SENSOR_TILE.GYRO, - Arrays.asList(mSensorIdGyro), + Arrays.asList(Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO), CompatibilityInfoForMaps.listOfCompatibleVersionInfoLSM6DSV)); super.updateSensorGroupingMap(); @@ -987,7 +995,7 @@ public void configBytesParse(ShimmerDevice shimmerDevice, byte[] configBytes, CO if(configByteLayout instanceof ConfigByteLayoutShimmer3){ ConfigByteLayoutShimmer3 configByteLayoutCast = (ConfigByteLayoutShimmer3) configByteLayout; - setAccelRange((configBytes[configByteLayoutCast.idxConfigSetupByte3] >> configByteLayoutCast.bitShiftMPU9150AccelRange) & configByteLayoutCast.maskMPU9150AccelRange); + setLSM6DSVAccelRange((configBytes[configByteLayoutCast.idxConfigSetupByte3] >> configByteLayoutCast.bitShiftMPU9150AccelRange) & configByteLayoutCast.maskMPU9150AccelRange); if (shimmerDevice.isConnected()){ getCurrentCalibDetailsAccelLn().mCalibReadSource=CALIB_READ_SOURCE.INFOMEM; @@ -1057,7 +1065,7 @@ public Object setConfigValueUsingConfigLabel(Integer sensorId, String configLabe case(GuiLabelConfigCommon.RANGE): if(sensorId==mSensorIdGyro){ this.setConfigValueUsingConfigLabel(GuiLabelConfig.LSM6DSV_GYRO_RANGE, valueToSet); - }else if(sensorId==mSensorIdAccelLN){ + } else if(sensorId==mSensorIdAccelLN){ this.setConfigValueUsingConfigLabel(GuiLabelConfig.LSM6DSV_ACCEL_RANGE, valueToSet); } break; @@ -1102,7 +1110,7 @@ public Object getConfigValueUsingConfigLabel(Integer sensorId, String configLabe case(GuiLabelConfigCommon.RANGE): if(sensorId==mSensorIdGyro){ returnValue = this.getConfigValueUsingConfigLabel(GuiLabelConfig.LSM6DSV_GYRO_RANGE); - }else if(sensorId==mSensorIdAccelLN){ + } else if(sensorId==mSensorIdAccelLN){ returnValue = this.getConfigValueUsingConfigLabel(GuiLabelConfig.LSM6DSV_ACCEL_RANGE); } break; @@ -1126,13 +1134,14 @@ public void setSensorSamplingRate(double samplingRateHz) { @Override public boolean setDefaultConfigForSensor(int sensorId, boolean isSensorEnabled) { if(mSensorMap.containsKey(sensorId)){ - updateCurrentAccelLnCalibInUse(); + if(sensorId==mSensorIdAccelLN) { + setDefaultLSM6DSVAccelSensorConfig(isSensorEnabled); + } + else if(sensorId==mSensorIdGyro) { + setDefaultLSM6DSVGyroSensorConfig(isSensorEnabled); + } return true; } - if(sensorId==mSensorIdGyro){ - setDefaultLSM6DSVGyroSensorConfig(isSensorEnabled); - } - return false; } @@ -1168,6 +1177,7 @@ public boolean processResponse(int responseCommand, Object parsedResponse, COMMU public void checkShimmerConfigBeforeConfiguring() { if(!(isSensorEnabled(mSensorIdGyro) || isSensorEnabled(mSensorIdAccelLN))) { setDefaultLSM6DSVGyroSensorConfig(false); + setDefaultLSM6DSVAccelSensorConfig(false); } } @@ -1185,9 +1195,6 @@ public void initialise() { updateCurrentAccelLnCalibInUse(); setCalibSensitivityScaleFactor(mSensorIdGyro, CALIBRATION_SCALE_FACTOR.ONE_HUNDRED); updateCurrentGyroCalibInUse(); - - // Set CurrentValues (Fix Calibration Not Read) -// mCurrentCalibDetailsAccelLn.setCurrentValues(OffsetVectorLowNoiseAccelShimmer3r, SensitivityMatrixLowNoiseAccel2gShimmer3r, AlignmentMatrixLowNoiseAccelShimmer3r, false); } @Override @@ -1222,7 +1229,7 @@ public boolean isSensorUsingDefaultCal(int sensorId) { if(sensorId==Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_ACCEL_LN){ return isUsingDefaultLNAccelParam(); } - if(sensorId==mSensorIdGyro){ + else if(sensorId==Configuration.Shimmer3.SENSOR_ID.SHIMMER_LSM6DSV_GYRO){ return isUsingDefaultGyroParam(); } return false;