Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: nRF24L01P_Hello_World nRF24L01P
circularBuffer.cpp
00001 #include "circularBuffer.h" 00002 00003 //-----------------------------TX-----------------------------// 00004 int cbTxHead; 00005 int cbTxTail; 00006 char cbTxBuffer[BUFFER_SIZE]; 00007 00008 void cbTxSendMessage(char* message, int length) 00009 { 00010 int i; 00011 if (cbTxRemainingSize() > length) 00012 for (i = 0; i < length; i++) 00013 cbTxAddOne(message[i]); 00014 } 00015 00016 void cbTxAddOne(char value) 00017 { 00018 if (cbTxRemainingSize() > 0) 00019 { 00020 cbTxBuffer[cbTxHead++] = value; 00021 if (cbTxHead >= BUFFER_SIZE) 00022 cbTxHead = 0; 00023 } 00024 } 00025 00026 char cbTxGetOne() 00027 { 00028 char value = cbTxBuffer[cbTxTail++]; 00029 if (cbTxTail >= BUFFER_SIZE) 00030 cbTxTail = 0; 00031 return value; 00032 } 00033 00034 int cbTxRemainingSize() 00035 { 00036 int size; 00037 if (cbTxTail > cbTxHead) 00038 size = cbTxTail - cbTxHead; 00039 else 00040 size = BUFFER_SIZE - (cbTxHead - cbTxTail); 00041 return size; 00042 } 00043 00044 int cbTxGetDataSize() 00045 { 00046 return BUFFER_SIZE - cbTxRemainingSize(); 00047 } 00048 00049 00050 //-----------------------------RX-----------------------------// 00051 int cbRxHead; 00052 int cbRxTail; 00053 char cbRxBuffer[BUFFER_SIZE]; 00054 00055 void cbRxAddOne(char value) 00056 { 00057 if (cbRxRemainingSize() > 0) 00058 { 00059 cbRxBuffer[cbRxHead++] = value; 00060 if (cbRxHead >= BUFFER_SIZE) 00061 cbRxHead = 0; 00062 } 00063 } 00064 00065 char cbRxGetOne() 00066 { 00067 char value = cbRxBuffer[cbRxTail++]; 00068 if (cbRxTail >= BUFFER_SIZE) 00069 cbRxTail = 0; 00070 return value; 00071 } 00072 00073 unsigned char cbRxIsDataAvailable() 00074 { 00075 if (cbRxTail != cbRxHead) 00076 return 1; 00077 else 00078 return 0; 00079 } 00080 00081 int cbRxRemainingSize() 00082 { 00083 int size; 00084 if (cbRxTail > cbRxHead) 00085 size = cbRxTail - cbRxHead; 00086 else 00087 size = BUFFER_SIZE - (cbRxHead - cbRxTail); 00088 return size; 00089 } 00090 00091 int cbRxGetDataSize() 00092 { 00093 return BUFFER_SIZE - cbRxRemainingSize(); 00094 }
Generated on Wed Jul 13 2022 03:07:10 by
1.7.2