기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
가속도 센서를 porting 을 위해 sensors.c와 가속도 디바이스 드라이버만 추가하면 어플의
public void onSensorChanged(SensorEvent sensorevent) 안에서 참조할수 있나요?
SnsorManager의 void onSensorChangedLocked()의 안에서는 har 소스의 values 값을 정상적으로 읽어 오는데
SensorEvent t = getFromPool();
final float[] v = t.values;
v[0] = values[0];
v[1] = values[1];
v[2] = values[2];
t.timestamp = timestamp[0];
t.accuracy = accuracy;
t.sensor = sensor;
Message msg = Message.obtain();
msg.what = 0;
msg.obj = t;
mHandler.sendMessage(msg);
어플에서는 mSensorEventListener.onSensorChanged(t); 의 이벤트를 받지 못하는것 같습니다.
ListenerDelegate(SensorEventListener listener, Sensor sensor, Handler handler) {
mSensorEventListener = listener;
Looper looper = (handler != null) ? handler.getLooper() : mMainLooper;
mHandler = new Handler(looper) {
@Override
public void handleMessage(Message msg) {
SensorEvent t = (SensorEvent)msg.obj;
if (t.accuracy >= 0) {
mSensorEventListener.onAccuracyChanged(t.sensor, t.accuracy);
}
mSensorEventListener.onSensorChanged(t);
returnToPool(t);
}
};
addSensor(sensor);
}
어플리케이션에서 sensor event를 받기 위한 추가작업이 필요한가요?
Odroid의 Android 소스에서 sensor.c를 참고하세요...
Java 쪽은 손댈 필요가 없습니다.