1. 修改环转数组变量
This commit is contained in:
parent
95abe54968
commit
7a7a7e0ae9
@ -26,6 +26,11 @@ enum eRingBufferFlag {
|
||||
typedef uint8_t HRingBufferType; // 环转缓冲区类型
|
||||
typedef uint32_t HRingBufferDataType; // 环转缓冲区统一数据类型
|
||||
|
||||
// 使用2字节长度
|
||||
#ifndef _HRING_BUFFER_LEN_USE16
|
||||
#define _HRING_BUFFER_LEN_USE16
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _HRING_BUFFER_LEN_USE32
|
||||
#define HRING_BUFFER_ERROR (0xffffffff)
|
||||
|
||||
@ -44,8 +44,8 @@ static uint8_t GetRingBufferType(const HRingBufferType *ringBuffer) {
|
||||
return base->flag & kHRingBufferFlagAllMask;
|
||||
}
|
||||
|
||||
static HRingBufferLenType GetRingBufferTypeSize(const HRingBufferType *vector) {
|
||||
switch(GetRingBufferType(vector)) {
|
||||
static HRingBufferLenType GetRingBufferTypeSize(const HRingBufferType *ringBuffer) {
|
||||
switch(GetRingBufferType(ringBuffer)) {
|
||||
case kHRingBufferFlag8: return sizeof(uint8_t); break;
|
||||
case kHRingBufferFlag16: return sizeof(uint16_t); break;
|
||||
case kHRingBufferFlag32: return sizeof(uint32_t); break;
|
||||
@ -54,33 +54,33 @@ static HRingBufferLenType GetRingBufferTypeSize(const HRingBufferType *vector) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static HRingBufferDataType GetRingBufferData(const HRingBufferType *vector, HRingBufferLenType pos) {
|
||||
switch(GetRingBufferType(vector)) {
|
||||
case kHRingBufferFlag8: return ((const _HRingBuffer8 *)vector)->data[pos]; break;
|
||||
case kHRingBufferFlag16: return ((const _HRingBuffer16 *)vector)->data[pos]; break;
|
||||
case kHRingBufferFlag32: return ((const _HRingBuffer32 *)vector)->data[pos]; break;
|
||||
static HRingBufferDataType GetRingBufferData(const HRingBufferType *ringBuffer, HRingBufferLenType pos) {
|
||||
switch(GetRingBufferType(ringBuffer)) {
|
||||
case kHRingBufferFlag8: return ((const _HRingBuffer8 *)ringBuffer)->data[pos]; break;
|
||||
case kHRingBufferFlag16: return ((const _HRingBuffer16 *)ringBuffer)->data[pos]; break;
|
||||
case kHRingBufferFlag32: return ((const _HRingBuffer32 *)ringBuffer)->data[pos]; break;
|
||||
}
|
||||
|
||||
return HRING_BUFFER_ERROR;
|
||||
}
|
||||
|
||||
static void SetRingBufferData(HRingBufferType *vector, HRingBufferLenType pos, HRingBufferDataType data) {
|
||||
switch(GetRingBufferType(vector)) {
|
||||
case kHRingBufferFlag8: ((_HRingBuffer8 *)vector)->data[pos] = (uint8_t)data; break;
|
||||
case kHRingBufferFlag16: ((_HRingBuffer16 *)vector)->data[pos] = (uint16_t)data; break;
|
||||
case kHRingBufferFlag32: ((_HRingBuffer32 *)vector)->data[pos] = (uint32_t)data; break;
|
||||
static void SetRingBufferData(HRingBufferType *ringBuffer, HRingBufferLenType pos, HRingBufferDataType data) {
|
||||
switch(GetRingBufferType(ringBuffer)) {
|
||||
case kHRingBufferFlag8: ((_HRingBuffer8 *)ringBuffer)->data[pos] = (uint8_t)data; break;
|
||||
case kHRingBufferFlag16: ((_HRingBuffer16 *)ringBuffer)->data[pos] = (uint16_t)data; break;
|
||||
case kHRingBufferFlag32: ((_HRingBuffer32 *)ringBuffer)->data[pos] = (uint32_t)data; break;
|
||||
}
|
||||
}
|
||||
|
||||
static uint8_t IsRingBufferFull(const HRingBufferType *vector) {
|
||||
InitRingBuffer((HRingBufferType *)vector);
|
||||
const _HRingBufferBase *base = (const _HRingBufferBase *)vector;
|
||||
static uint8_t IsRingBufferFull(const HRingBufferType *ringBuffer) {
|
||||
InitRingBuffer((HRingBufferType *)ringBuffer);
|
||||
const _HRingBufferBase *base = (const _HRingBufferBase *)ringBuffer;
|
||||
return (base->flag & kHRingBufferFull) == kHRingBufferFull;
|
||||
}
|
||||
|
||||
static void SetRingBufferFull(HRingBufferType *vector, uint8_t full) {
|
||||
InitRingBuffer((HRingBufferType *)vector);
|
||||
_HRingBufferBase *base = (_HRingBufferBase *)vector;
|
||||
static void SetRingBufferFull(HRingBufferType *ringBuffer, uint8_t full) {
|
||||
InitRingBuffer((HRingBufferType *)ringBuffer);
|
||||
_HRingBufferBase *base = (_HRingBufferBase *)ringBuffer;
|
||||
if (full) {
|
||||
base->flag |= kHRingBufferFull;
|
||||
} else {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user