Languages

Menu
Sites
Language
Sensor Monitor 에서 Event Callback 호출되었을 때 정확한 timestamp 계산

안녕하세요!

수고가 많으십니다.

 

Sensor Monitor 에서 Event Callback 호출되었을 때 정확한 timestamp 계산과 관련하여

문의사항이 있어서 글을 남깁니다.

 

Sleep Listener를 생성 및 시작한 후,수면데이터를 callback 함수로 받을 때,

callback 함수에서 실제 수면측정된 시간 정보를 어떻게 구할 수 있는지 문의 드리고자 합니다.

 

sensor_event_s 구조체의 event->timestamp는 monotonic time stamp 값으로 측정시간으로 사용할 수 없으므로,

제가 생각한 방법은 최초 callback이 호출된 시점에 현재 시간을 구해서 측정된 시간을 계산하는 방향으로 검토하고 있습니다.

(수면시간은 1분 단위로 측정되며, 자고/깨고/모름 상태 값을 전달함.)

 

문제는,

- callback 함수는 수면측정 단위인 1분마다 호출이 아니고,

   os에서 얼마간(그때그때 다름)의 데이터를가지고 있다가 버퍼가 차면 flush 하는 구조라서 정확한 시간 측정이 어렵다는 것입니다.

 

예를들어 아래와 같이 호출됩니다.

  - 10:00에서 Sleep Listener를 생성 및 시작 ->

  - 10:20분에 콜백함수 20번 호출하면서 10:00 ~ 10:20 사이의 수면데이터를 전달(이때 timestamp는 monotonic timestamp값)

  - 첫 번째 callback 함수가 호출되었을 때의 시간은 20분전 수면의 상태, 두 번째 호출되면 19분 전 수면의 상태.....

 

callback 함수 호출되는 시점에,

os에서 전달되는 데이터가 20분전 수면상태인지 15분전 상태인지 알 방법이 없으므로 정확한 시간계산을 할 수 없습니다.

 

실제 테스트 해보면, 20, 15, 10 분  제각각 수면데이터를 모았다가 주고 있습니다.

 

관련하여,

방법이 있다면 도움 요청 드립니다.

 

감사합니다.

Responses

1 Replies
Shaswati Saha

Did you follow this link to calculate the current time when the event callback is triggered? Your post is creating confusion to me as it's posted in Korean language and I think I couldn't extract the exact information about the query after translation. Would you please post in English?