我们正试图将加速度计从2G增加到8G / 16G,但无论我们所做的事情都在2G时仍在加速。我们看到了一个早期的帖子,您发布在第477行的BMI160.c中添加这些行:
s_bmi160.delay_msec(c_bmi160_one_ubx);
bmi160_set_accel_range(bmi_160_accel_range);
会解决问题,但它仍然不适合我们。我们还尝试在user_app_wlbl_config中更改默认范围值,但似乎没有任何工作。请为我们提供解决方案,以将加速度计范围增加到Uptown 8G / 16G,因此我们可以在这些范围内获得原始数据值。
设备:
嗨pureform,
修复程序对IOT的SFL项目有效,并且我可以看到应用修复后的值更改,具体取决于适用于加速度计的范围。您使用的是哪个版本的项目是SFL或原始项目?
谢谢mt_dialog.
我们正在使用原始项目而不是SFL项目。
嗨pureform,
使用原始项目我能够看到从IOT传感器Android / IOS应用程序设置的加速器的范围更改为Accellerometer的范围,无需在原始项目上添加额外的行(使用嗅探器为了检查,以便在空中获得我读取的值,我可以看到Z轴根据测量1G时修改。关于您始终类似于设备正常运行的值为2g的事实,您是否确定了,由于加速度计范围时,可能会有可能存在错误的值。尝试禁用定义use_fast_acc_val并检查。
谢谢mt_dialog.
我们已将数据范围设置为16g,而不是从App Side拍摄命令,并且当我们按NV'按“读取配置”时,App Configuration Page识别16G。
由于我们没有嗅探器,这就是我们如何检查传感器的数据流。
对于Xcode上的应用程序项目(官方IOT项目),我刚刚添加了一条线来打印进入加速度计的解析值到控制台。但是,正如您所看到的,我们得到的数据仍然贴在2G。
我们附上了Keli&Xcode的屏幕截图。
嗨pureform,
然后,您提到的是IOS应用程序而不是IoT FW的问题,显然该应用程序正在尝试阻止对加速度计范围的变化,因为IOT上的官方FW有问题。因此,请尝试在iOS源代码上执行以下操作,并检查是否有效。
SensorController.m.
- (void)外围设备:( cbperipheral *)外设idupdatevalueFresstic :( cbecracteristic *)特征误差:(无空NSError *)错误{
//旧的IOT固件错误的解决方法。范围设置无效。
//我们保留默认的灵敏度,这对应于2G范围。
if([self Isiotnewversion]){//评论出这个条件
self.acceleromersensity = [[Accelerometer_sensitivity Objectforkey:[nsnumber numberwithint:byte_accelerometer_range]] floatvalue];
nslog(@“加速度计参数:Sensitivity =%。2F”,Self.acceleromersensentivity);
}
谢谢mt_dialog.