IMU FIFO 샘플 대기 함수 추가
- 샘플 부족 방지 안전장치
This commit is contained in:
@@ -615,6 +615,43 @@ int imu_fifo_start(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int imu_fifo_wait_samples(uint16_t target_samples, uint32_t timeout_ms)
|
||||
{
|
||||
uint32_t waited_ms = 0U;
|
||||
const uint32_t poll_ms = 10U;
|
||||
|
||||
if (target_samples == 0U)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!fifo_active)
|
||||
{
|
||||
return -EALREADY;
|
||||
}
|
||||
|
||||
while (waited_ms <= timeout_ms)
|
||||
{
|
||||
uint16_t record_count = 0U;
|
||||
int ret = imu_fifo_read_count(&record_count);
|
||||
|
||||
if (ret)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (record_count >= target_samples)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
k_msleep(poll_ms);
|
||||
waited_ms += poll_ms;
|
||||
}
|
||||
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
int imu_fifo_read_latest(uint8_t *sample_bytes,
|
||||
uint16_t max_samples,
|
||||
uint16_t *out_count)
|
||||
|
||||
Reference in New Issue
Block a user