@@ -48,7 +48,7 @@ public class SensorLSM6DSV extends AbstractSensor{
4848 private static final long serialVersionUID = -1336807717590498430L ;
4949 // LN ACCEL
5050 protected int mSensorIdAccelLN = -1 ;
51- private int mAccelRange = 1 ;
51+ private int mAccelRange = 0 ;
5252 public boolean mIsUsingDefaultLNAccelParam = true ;
5353 public static final double [][] AlignmentMatrixLowNoiseAccelShimmer3r = {{-1 ,0 ,0 },{0 ,1 ,0 },{0 ,0 ,-1 }};
5454 public static final double [][] OffsetVectorLowNoiseAccelShimmer3r = {{0 },{0 },{0 }};
@@ -99,7 +99,7 @@ public class SensorLSM6DSV extends AbstractSensor{
9999
100100 // GYRO
101101 public boolean mIsUsingDefaultGyroParam = true ;
102- private int mGyroRange = 1 ;
102+ private int mGyroRange = 0 ;
103103 protected int mLSM6DSVGyroAccelRate =0 ;
104104 protected int mSensorIdGyro = -1 ;
105105
@@ -272,7 +272,6 @@ public class LABEL_SENSOR_TILE{
272272
273273 // GYRO
274274 public static final String [] ListofGyroRange = {"+/- 125dps" ,"+/- 250dps" ,"+/- 500dps" ,"+/- 1000dps" ,"+/- 2000dps" ,"+/- 4000dps" };
275- //public static final Integer[] ListofLSM6DSVGyroRangeConfigValues = {0,1,4,5,3,6};
276275 public static final Integer [] ListofLSM6DSVGyroRangeConfigValues = {0 ,1 ,2 ,3 ,4 ,5 };
277276 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" };
278277 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(){
549548 public int getAccelRange (){
550549 return mAccelRange ;
551550 }
551+
552552 public void setAccelRange (int accelRange ){
553553 setLSM6DSVAccelRange (accelRange );
554554 }
@@ -560,6 +560,11 @@ public void setLSM6DSVAccelRange(int i){
560560 }
561561 }
562562
563+ public void setDefaultLSM6DSVAccelSensorConfig (boolean isSensorEnabled ) {
564+ if (isSensorEnabled ) {
565+ setLSM6DSVAccelRange (0 );
566+ }
567+ }
563568
564569 //--------- LN Accel methods end --------------
565570
@@ -787,6 +792,7 @@ public void generateSensorMap() {
787792 public LinkedHashMap <String , Object > generateConfigMap () {
788793 LinkedHashMap <String , Object > mapOfConfig = new LinkedHashMap <String , Object >();
789794
795+ mapOfConfig .put (SensorLSM6DSV .DatabaseConfigHandle .ACCEL_RANGE , getAccelRange ());
790796 mapOfConfig .put (SensorLSM6DSV .DatabaseConfigHandle .GYRO_RANGE , getGyroRange ());
791797 mapOfConfig .put (SensorLSM6DSV .DatabaseConfigHandle .GYRO_RATE , getLSM6DSVGyroAccelRate ());
792798
@@ -805,33 +811,35 @@ public LinkedHashMap<String, Object> generateConfigMap() {
805811
806812 @ Override
807813 public void parseConfigMap (LinkedHashMap <String , Object > mapOfConfigPerShimmer ) {
808- //Analog Accel Calibration Configuration
809- parseCalibDetailsKinematicFromDb (mapOfConfigPerShimmer ,
810- Configuration .Shimmer3 .SENSOR_ID .SHIMMER_LSM6DSV_ACCEL_LN ,
811- 0 ,
812- SensorLSM6DSV .DatabaseConfigHandle .LIST_OF_CALIB_HANDLES_LN_ACC ,
813- SensorLSM6DSV .DatabaseConfigHandle .LN_ACC_CALIB_TIME );
814814
815+ if (mapOfConfigPerShimmer .containsKey (DatabaseConfigHandle .ACCEL_RANGE )){
816+ setAccelRange (((Double ) mapOfConfigPerShimmer .get (DatabaseConfigHandle .ACCEL_RANGE )).intValue ());
817+ }
815818 if (mapOfConfigPerShimmer .containsKey (DatabaseConfigHandle .GYRO_RATE )){
816819 setLSM6DSVGyroAccelRate (((Double ) mapOfConfigPerShimmer .get (DatabaseConfigHandle .GYRO_RATE )).intValue ());
817820 }
818821 if (mapOfConfigPerShimmer .containsKey (DatabaseConfigHandle .GYRO_RANGE )){
819822 setGyroRange (((Double ) mapOfConfigPerShimmer .get (DatabaseConfigHandle .GYRO_RANGE )).intValue ());
820823 }
821824
825+ //LN Accel Calibration Configuration
826+ parseCalibDetailsKinematicFromDb (mapOfConfigPerShimmer ,
827+ Configuration .Shimmer3 .SENSOR_ID .SHIMMER_LSM6DSV_ACCEL_LN ,
828+ getAccelRange (),
829+ SensorLSM6DSV .DatabaseConfigHandle .LIST_OF_CALIB_HANDLES_LN_ACC ,
830+ SensorLSM6DSV .DatabaseConfigHandle .LN_ACC_CALIB_TIME );
831+
822832 //Gyroscope Calibration Configuration
823833 parseCalibDetailsKinematicFromDb (mapOfConfigPerShimmer ,
824- mSensorIdGyro ,
834+ Configuration . Shimmer3 . SENSOR_ID . SHIMMER_LSM6DSV_GYRO ,
825835 getGyroRange (),
826836 SensorLSM6DSV .DatabaseConfigHandle .LIST_OF_CALIB_HANDLES_GYRO ,
827837 SensorLSM6DSV .DatabaseConfigHandle .GYRO_CALIB_TIME );
828838 }
829839
830840 @ Override
831841 public void generateConfigOptionsMap () {
832- // No Configuration Needed for Accel
833-
834- // For Gyro
842+ // For Gyro & Accel
835843 mConfigOptionsMap .clear ();
836844 addConfigOption (configOptionLSM6DSVGyroRange );
837845 addConfigOption (configOptionLSM6DSVAccelRange );
@@ -846,7 +854,7 @@ public void generateSensorGroupMapping() {
846854 mSensorGroupingMap .put (Configuration .Shimmer3 .LABEL_SENSOR_TILE .LOW_NOISE_ACCEL_3R .ordinal (), sensorGroupLnAccelLSM6DSV );
847855 mSensorGroupingMap .put (Configuration .Shimmer3 .LABEL_SENSOR_TILE .GYRO_3R .ordinal (), new SensorGroupingDetails (
848856 LABEL_SENSOR_TILE .GYRO ,
849- Arrays .asList (mSensorIdGyro ),
857+ Arrays .asList (Configuration . Shimmer3 . SENSOR_ID . SHIMMER_LSM6DSV_GYRO ),
850858 CompatibilityInfoForMaps .listOfCompatibleVersionInfoLSM6DSV ));
851859
852860 super .updateSensorGroupingMap ();
@@ -987,7 +995,7 @@ public void configBytesParse(ShimmerDevice shimmerDevice, byte[] configBytes, CO
987995 if (configByteLayout instanceof ConfigByteLayoutShimmer3 ){
988996 ConfigByteLayoutShimmer3 configByteLayoutCast = (ConfigByteLayoutShimmer3 ) configByteLayout ;
989997
990- setAccelRange ((configBytes [configByteLayoutCast .idxConfigSetupByte3 ] >> configByteLayoutCast .bitShiftMPU9150AccelRange ) & configByteLayoutCast .maskMPU9150AccelRange );
998+ setLSM6DSVAccelRange ((configBytes [configByteLayoutCast .idxConfigSetupByte3 ] >> configByteLayoutCast .bitShiftMPU9150AccelRange ) & configByteLayoutCast .maskMPU9150AccelRange );
991999
9921000 if (shimmerDevice .isConnected ()){
9931001 getCurrentCalibDetailsAccelLn ().mCalibReadSource =CALIB_READ_SOURCE .INFOMEM ;
@@ -1057,7 +1065,7 @@ public Object setConfigValueUsingConfigLabel(Integer sensorId, String configLabe
10571065 case (GuiLabelConfigCommon .RANGE ):
10581066 if (sensorId ==mSensorIdGyro ){
10591067 this .setConfigValueUsingConfigLabel (GuiLabelConfig .LSM6DSV_GYRO_RANGE , valueToSet );
1060- }else if (sensorId ==mSensorIdAccelLN ){
1068+ } else if (sensorId ==mSensorIdAccelLN ){
10611069 this .setConfigValueUsingConfigLabel (GuiLabelConfig .LSM6DSV_ACCEL_RANGE , valueToSet );
10621070 }
10631071 break ;
@@ -1102,7 +1110,7 @@ public Object getConfigValueUsingConfigLabel(Integer sensorId, String configLabe
11021110 case (GuiLabelConfigCommon .RANGE ):
11031111 if (sensorId ==mSensorIdGyro ){
11041112 returnValue = this .getConfigValueUsingConfigLabel (GuiLabelConfig .LSM6DSV_GYRO_RANGE );
1105- }else if (sensorId ==mSensorIdAccelLN ){
1113+ } else if (sensorId ==mSensorIdAccelLN ){
11061114 returnValue = this .getConfigValueUsingConfigLabel (GuiLabelConfig .LSM6DSV_ACCEL_RANGE );
11071115 }
11081116 break ;
@@ -1126,13 +1134,14 @@ public void setSensorSamplingRate(double samplingRateHz) {
11261134 @ Override
11271135 public boolean setDefaultConfigForSensor (int sensorId , boolean isSensorEnabled ) {
11281136 if (mSensorMap .containsKey (sensorId )){
1129- updateCurrentAccelLnCalibInUse ();
1137+ if (sensorId ==mSensorIdAccelLN ) {
1138+ setDefaultLSM6DSVAccelSensorConfig (isSensorEnabled );
1139+ }
1140+ else if (sensorId ==mSensorIdGyro ) {
1141+ setDefaultLSM6DSVGyroSensorConfig (isSensorEnabled );
1142+ }
11301143 return true ;
11311144 }
1132- if (sensorId ==mSensorIdGyro ){
1133- setDefaultLSM6DSVGyroSensorConfig (isSensorEnabled );
1134- }
1135-
11361145 return false ;
11371146 }
11381147
@@ -1168,6 +1177,7 @@ public boolean processResponse(int responseCommand, Object parsedResponse, COMMU
11681177 public void checkShimmerConfigBeforeConfiguring () {
11691178 if (!(isSensorEnabled (mSensorIdGyro ) || isSensorEnabled (mSensorIdAccelLN ))) {
11701179 setDefaultLSM6DSVGyroSensorConfig (false );
1180+ setDefaultLSM6DSVAccelSensorConfig (false );
11711181 }
11721182 }
11731183
@@ -1185,9 +1195,6 @@ public void initialise() {
11851195 updateCurrentAccelLnCalibInUse ();
11861196 setCalibSensitivityScaleFactor (mSensorIdGyro , CALIBRATION_SCALE_FACTOR .ONE_HUNDRED );
11871197 updateCurrentGyroCalibInUse ();
1188-
1189- // Set CurrentValues (Fix Calibration Not Read)
1190- // mCurrentCalibDetailsAccelLn.setCurrentValues(OffsetVectorLowNoiseAccelShimmer3r, SensitivityMatrixLowNoiseAccel2gShimmer3r, AlignmentMatrixLowNoiseAccelShimmer3r, false);
11911198 }
11921199
11931200 @ Override
@@ -1222,7 +1229,7 @@ public boolean isSensorUsingDefaultCal(int sensorId) {
12221229 if (sensorId ==Configuration .Shimmer3 .SENSOR_ID .SHIMMER_LSM6DSV_ACCEL_LN ){
12231230 return isUsingDefaultLNAccelParam ();
12241231 }
1225- if (sensorId ==mSensorIdGyro ){
1232+ else if (sensorId ==Configuration . Shimmer3 . SENSOR_ID . SHIMMER_LSM6DSV_GYRO ){
12261233 return isUsingDefaultGyroParam ();
12271234 }
12281235 return false ;
0 commit comments