MT6762 Android 8.1 移植acc+gyro二合一sensor之后,acc有数据,gyro没有数据的问题

MT6762 Android 8.1 移植acc+gyro二合一sensor之后,acc有数据,gyro没有数据的问题

遇到的问题是因为开了虚拟陀螺仪,修改下面文件:
/vendor/mediatek/proprietary/custom/k65v1_64_bsp/hal/sensors/sensor/hwmsen_custom.h
注释掉: #define VIRTUAL_GYROSCOPE_ALGORITHM
gyro就可以正常使用了!

虚拟陀螺仪,VirtGyro的数据是由acc和msensor的数据算出来的,如果开了虚拟陀螺仪,当在工程模式里面打开gyro的时候,在main_log里面可以看到如下打印:

01-01 08:13:04.666071   555  1065 I Gyroscope: batch: handle:3, flag:0,samplingPeriodNs:5000000 maxBatchReportLatencyNs:0
01-01 08:13:04.667270   555  1065 I Gyroscope: enable, handle:3, en:1
01-01 08:13:04.667445   555  1065 I Accelerometer: batch: handle:0, flag:0,samplingPeriodNs:5000000 maxBatchReportLatencyNs:0
01-01 08:13:04.669949   555  1065 I Accelerometer: enable: handle:0, en:1
01-01 08:13:04.673731   555  1065 I Magnetic: batch: handle:1, flag:0, samplingPeriodNs:20000000,maxBatchReportLatencyNs:0
01-01 08:13:04.679810   555  1065 I Magnetic: enable: handle:1, en:1 

连续开了3个sensor,但是,gyro的指令,并没有进到kernel里面,所以驱动并没有去打开gyro!

关闭虚拟陀螺仪之后,当在工程模式里面打开gyro的时候,在main_log里面可以看到如下打印:

01-01 08:04:13.136205   533   533 I Gyroscope: batch: handle:3, flag:0,samplingPeriodNs:5000000 maxBatchReportLatencyNs:0
01-01 08:04:13.142422   533   533 I Gyroscope: enable: handle:3, en:1

只去打开了gyro,而且指令有进到kernel里面,驱动也有执行!

你可能感兴趣的:(技术随笔)