언어 설정

Menu
Sites
Language
센서 값이 -1만 출력됩니다.

안녕하세요?

 

Orientation 센서를 이용해 Data를 가져오는 작업을 하고 있습니다.

Sensor API를 이용하여 Orientation 센서에 대한 리스너를 등록하고, sensor_listener_read_data() 를 이용하여 데이터를 받아오려고 합니다만,

계속해서 -1만 출력됩니다.

 

여러 자료를 찾아보니 센서가 불량일 경우나 권한 문제일 수도 있다고 하지만 명확한 결론은 얻지 못했습니다.

 

혹시 해결할 수 있는 방법이나 원인을 알 수 있을까요?
 

감사합니다.

Responses

3 댓글
daniel kim

안녕하세요.

아래 링크와 같이, Z1의 경우  accelerometer만 지원되는 것으로 알고 있습니다. 디바이스에서 지원이 안되어 -1이 return되는 것으로 생각됩니다.

  http://developer.samsung.com/samsung-z

Hochan Lee

@daniel kim

안녕하세요. 제가 올린 글이지만 문제를 해결하여 답글 답니다.

센서가 지원이 되지 않으면 -1을 return 한다는 daniel kim 님의 말씀이 맞습니다.

그러나 저는 (제 실수로 제 디바이스 정보를 올리지 않았던 점 죄송합니다.) Gallaxy s2 에 tizen을 올린 것이고,

고로 센서는 지원하는 상태였습니다.

제 경우 -1을 리턴하는 이유는 센서의 측정 속도를 고려하지 않았기 때문이었습니다.

다른 분께 여쭤본 결과 Orientation sensor의 측정 속도는 100~170 millisecond 라고 합니다.

그러나 저는 테스트 코드로 listener를 시작하자마자 한 번 측정하였고, 측정 속도 이전에 결과를 받아 출력한 것입니다.

time interval을 주고 반복하여 측정하니 올바른 값이 나옴을 확인하였습니다.

좋은 답변 달아주셔서 감사합니다.

 

 

daniel kim

안녕하세요..

sensor_listener_read_data()으로 sensor 값을 직접 읽어들이시는 것 같습니다. sensor_listener_set_event_cb()를 이용하여 callback을 등록하셔도 될 것 같습니다.

SDK에 sensor sample이 있으니 참조하시면 될 것 같습니다.

    Tizen Native Project --> sample --> Native App --> Sensor

src/view/sensor-data-view.c에 아래 code를 보시면 될 것 같습니다.

static void _data_view_sensor_start(data_view *view)
{
    sensor_error_e err = SENSOR_ERROR_NONE;
    err = sensor_create_listener(view->sensor_info->sensor, &view->sensor_listener);
    RETM_IF(err != SENSOR_ERROR_NONE, "sensor_create_listener() failed(%d)", err);
    sensor_listener_set_event_cb(view->sensor_listener, SENSOR_INTERVAL, _data_view_sensor_cb, view);

    sensor_listener_start(view->sensor_listener);

}