通过距离感应器获取实际距离[FAQ04538][Sensor]java层获得P_sensor距离传感器当前真实值,不止0,1
2016-04-26 15:55
369 查看
[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 层
如何使得上层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 层
private SensorManager sensorManager; private Sensor P_sensor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fullscreen); sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); P_sensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); } @Override protected void onResume() { super.onResume(); sensorManager.registerListener(sensorEventListener, P_sensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { super.onPause(); sensorManager.unregisterListener(sensorEventListener); } /** * */ private SensorEventListener sensorEventListener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { float f_proximiny = event.values[0]; float f_proximiny2 = event.values[1]; String f_proximinystr=String.valueOf(f_proximiny); String f_proximinystr2=String.valueOf(f_proximiny2); String str="P-Sensor"+"\n"+"靠近或远离values[0]="+f_proximinystr+"\n"+"真实距离values[1]="+f_proximinystr2; controlsView1.setText(str); // Toast.makeText(FullscreenActivity.this , f_proximinystr, 0).show(); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub }};
相关文章推荐
- Java核心技术II读书笔记(二)
- File java的文件重命名
- JAVA使用JDBC批量插入SQL
- 图的邻接矩阵存储---JAVA实现
- java集合框架12——HashMap和HashTable的区别
- struts2的Action(四)
- Java源码之String
- [org.jeecgframework.core.common.exception.MyExceptionHandler]org.springframework.
- LeetCode之位操作题java
- (2.1.25)关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)
- lambda表达式
- 设计模式之六大原则——依赖倒置原则(DIP)
- Win7 64位系统下DirectX SDK安装S1023错误解决
- Java Thread 总结
- JPA规范:Java Persistence API 标准规范用法示例
- Java垃圾回收机制
- 使用IBM heapAnalyzer分析内存泄露的原因
- elasticsearch Java API [2.3] » Search API
- Java并发编程:深入剖析ThreadLocal
- spring 技术内幕--IOC初始化过程深入之BeanDefinition的载入和解析1