[Sensor]java层获得距离传感器当前真实值,不止0,1

[Sensor]java层获得距离传感器当前真实值,不止0,1

[DESCRIPTION]


如何使得上层JAVA可以获取到距离传感器当前真实值,不止0,1


[PLATFORM]


MT6575 MT6577 MT6589
[SOLUTION]
proximity sensor上报的值是做过处理,一般是固定上报1或是0,如果需要取得proximity
sensor实时的值,依据不同的处理模式:
1、polling模式,XXX_ps_operate()函数中
case SENSOR_GET_DATA:
……
sensor_data->values[0]=XXX_get_ps_value(……);//上传判断后的值,即0或是1;
sensor_data->values[1]=obj->ps;//使用values[1]上传proximity sensor的raw data;
……
2、中断模式,在XXX_eint_work函数中:
……
sensor_data->values[0]=XXX_get_ps_value(……);//上传判断后的值,即0或是1;
sensor_data->values[1]=obj->ps;//使用values[1]上传proximity sensor的raw data;
1和2方式都还需要在hwmsen_dev.c:
在hwmsen_get_interrupt_data(int sensor,hwm_sensor_data *data)函数中,需要把proximity
sensor单独提出来处理,即增加这么一段代码:
if(sensor == ID_PROXIMITY)
{
if(data->values[1] != obj_data.sensors_data[sensor].values[1])
{
mutex_lock(&obj_data.lock);
obj_data.data_updata[sensor] = 1;
obj_data.sensors_data[sensor].values[1] = data->values[1];
obj_data.sensors_data[sensor].time = nt;
obj_data.sensors_data[sensor].value_divide = data->value_divide;
mutex_unlock(&obj_data.lock);
}
}
这样,在应用层,监听onSensorChanged的时候,就可以:
用values[0]即可得到表示靠近和远离的0和1;
用values[1]即可得到sensor 的raw data。


你可能感兴趣的:(Java,MTK,传感器)