|
@@ -17,11 +17,12 @@ int RingBuffer_IsFull(RingBuffer *q) {
|
|
|
return ((q->tail + 1) % QUEUE_SIZE == q->head);
|
|
return ((q->tail + 1) % QUEUE_SIZE == q->head);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-int RingBuffer_Enqueue(RingBuffer *q, uint8_t data) {
|
|
|
|
|
|
|
+int RingBuffer_Enqueue(RingBuffer *q, uint8_t *data) {
|
|
|
if (RingBuffer_IsFull(q)) {
|
|
if (RingBuffer_IsFull(q)) {
|
|
|
return -1; // 队列已满
|
|
return -1; // 队列已满
|
|
|
}
|
|
}
|
|
|
- q->buffer[q->tail] = data;
|
|
|
|
|
|
|
+ // q->buffer[q->tail] = data;
|
|
|
|
|
+ memcpy(q->buffer[q->tail], data, BL_DATA_SIZE);
|
|
|
q->tail = (q->tail + 1) % QUEUE_SIZE;
|
|
q->tail = (q->tail + 1) % QUEUE_SIZE;
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
@@ -30,7 +31,8 @@ int RingBuffer_Dequeue(RingBuffer *q, uint8_t *data) {
|
|
|
if (RingBuffer_IsEmpty(q)) {
|
|
if (RingBuffer_IsEmpty(q)) {
|
|
|
return -1; // 队列为空·
|
|
return -1; // 队列为空·
|
|
|
}
|
|
}
|
|
|
- *data = q->buffer[q->head];
|
|
|
|
|
|
|
+ // *data = q->buffer[q->head];
|
|
|
|
|
+ memcpy(data,q->buffer[q->head], BL_DATA_SIZE);
|
|
|
q->head = (q->head + 1) % QUEUE_SIZE;
|
|
q->head = (q->head + 1) % QUEUE_SIZE;
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|