|
|
@@ -26,19 +26,22 @@ static int _event_size(void) {
|
|
|
return event_w_idx;
|
|
|
}
|
|
|
|
|
|
-int get_event(int num, int offset, event_record_t *recoder) {
|
|
|
+int get_event(int num, int offset, u8 *recoder) {
|
|
|
if (offset >= _event_size()) {
|
|
|
return 0;
|
|
|
}
|
|
|
num = MIN(num, _event_size()-offset);
|
|
|
- int start = offset + event_w_idx;
|
|
|
int rtn = 0;
|
|
|
+
|
|
|
+ if (_event_full) {
|
|
|
+ offset += event_w_idx;
|
|
|
+ }
|
|
|
+
|
|
|
while(num > 0) {
|
|
|
- start = start % MAX_EVENT_SIZE;
|
|
|
- memcpy(recoder, &_event[start], sizeof(event_record_t));
|
|
|
+ memcpy(recoder, _event + offset % MAX_EVENT_SIZE, sizeof(event_record_t));
|
|
|
num --;
|
|
|
- start ++;
|
|
|
- recoder ++;
|
|
|
+ offset ++;
|
|
|
+ recoder += sizeof(event_record_t);
|
|
|
rtn ++;
|
|
|
}
|
|
|
return rtn;
|