RobOmega - PSL RoboCup / Mbed OS nRF24L01P_L432KC_CarteBlanche

Dependencies:   nRF24L01P_Hello_World nRF24L01P

Committer:
voltxd
Date:
Fri Apr 16 16:01:03 2021 +0000
Revision:
5:668dd9395ca5
ok;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
voltxd 5:668dd9395ca5 1 #include "circularBuffer.h"
voltxd 5:668dd9395ca5 2
voltxd 5:668dd9395ca5 3 //-----------------------------TX-----------------------------//
voltxd 5:668dd9395ca5 4 int cbTxHead;
voltxd 5:668dd9395ca5 5 int cbTxTail;
voltxd 5:668dd9395ca5 6 char cbTxBuffer[BUFFER_SIZE];
voltxd 5:668dd9395ca5 7
voltxd 5:668dd9395ca5 8 void cbTxSendMessage(char* message, int length)
voltxd 5:668dd9395ca5 9 {
voltxd 5:668dd9395ca5 10 int i;
voltxd 5:668dd9395ca5 11 if (cbTxRemainingSize() > length)
voltxd 5:668dd9395ca5 12 for (i = 0; i < length; i++)
voltxd 5:668dd9395ca5 13 cbTxAddOne(message[i]);
voltxd 5:668dd9395ca5 14 }
voltxd 5:668dd9395ca5 15
voltxd 5:668dd9395ca5 16 void cbTxAddOne(char value)
voltxd 5:668dd9395ca5 17 {
voltxd 5:668dd9395ca5 18 if (cbTxRemainingSize() > 0)
voltxd 5:668dd9395ca5 19 {
voltxd 5:668dd9395ca5 20 cbTxBuffer[cbTxHead++] = value;
voltxd 5:668dd9395ca5 21 if (cbTxHead >= BUFFER_SIZE)
voltxd 5:668dd9395ca5 22 cbTxHead = 0;
voltxd 5:668dd9395ca5 23 }
voltxd 5:668dd9395ca5 24 }
voltxd 5:668dd9395ca5 25
voltxd 5:668dd9395ca5 26 char cbTxGetOne()
voltxd 5:668dd9395ca5 27 {
voltxd 5:668dd9395ca5 28 char value = cbTxBuffer[cbTxTail++];
voltxd 5:668dd9395ca5 29 if (cbTxTail >= BUFFER_SIZE)
voltxd 5:668dd9395ca5 30 cbTxTail = 0;
voltxd 5:668dd9395ca5 31 return value;
voltxd 5:668dd9395ca5 32 }
voltxd 5:668dd9395ca5 33
voltxd 5:668dd9395ca5 34 int cbTxRemainingSize()
voltxd 5:668dd9395ca5 35 {
voltxd 5:668dd9395ca5 36 int size;
voltxd 5:668dd9395ca5 37 if (cbTxTail > cbTxHead)
voltxd 5:668dd9395ca5 38 size = cbTxTail - cbTxHead;
voltxd 5:668dd9395ca5 39 else
voltxd 5:668dd9395ca5 40 size = BUFFER_SIZE - (cbTxHead - cbTxTail);
voltxd 5:668dd9395ca5 41 return size;
voltxd 5:668dd9395ca5 42 }
voltxd 5:668dd9395ca5 43
voltxd 5:668dd9395ca5 44 int cbTxGetDataSize()
voltxd 5:668dd9395ca5 45 {
voltxd 5:668dd9395ca5 46 return BUFFER_SIZE - cbTxRemainingSize();
voltxd 5:668dd9395ca5 47 }
voltxd 5:668dd9395ca5 48
voltxd 5:668dd9395ca5 49
voltxd 5:668dd9395ca5 50 //-----------------------------RX-----------------------------//
voltxd 5:668dd9395ca5 51 int cbRxHead;
voltxd 5:668dd9395ca5 52 int cbRxTail;
voltxd 5:668dd9395ca5 53 char cbRxBuffer[BUFFER_SIZE];
voltxd 5:668dd9395ca5 54
voltxd 5:668dd9395ca5 55 void cbRxAddOne(char value)
voltxd 5:668dd9395ca5 56 {
voltxd 5:668dd9395ca5 57 if (cbRxRemainingSize() > 0)
voltxd 5:668dd9395ca5 58 {
voltxd 5:668dd9395ca5 59 cbRxBuffer[cbRxHead++] = value;
voltxd 5:668dd9395ca5 60 if (cbRxHead >= BUFFER_SIZE)
voltxd 5:668dd9395ca5 61 cbRxHead = 0;
voltxd 5:668dd9395ca5 62 }
voltxd 5:668dd9395ca5 63 }
voltxd 5:668dd9395ca5 64
voltxd 5:668dd9395ca5 65 char cbRxGetOne()
voltxd 5:668dd9395ca5 66 {
voltxd 5:668dd9395ca5 67 char value = cbRxBuffer[cbRxTail++];
voltxd 5:668dd9395ca5 68 if (cbRxTail >= BUFFER_SIZE)
voltxd 5:668dd9395ca5 69 cbRxTail = 0;
voltxd 5:668dd9395ca5 70 return value;
voltxd 5:668dd9395ca5 71 }
voltxd 5:668dd9395ca5 72
voltxd 5:668dd9395ca5 73 unsigned char cbRxIsDataAvailable()
voltxd 5:668dd9395ca5 74 {
voltxd 5:668dd9395ca5 75 if (cbRxTail != cbRxHead)
voltxd 5:668dd9395ca5 76 return 1;
voltxd 5:668dd9395ca5 77 else
voltxd 5:668dd9395ca5 78 return 0;
voltxd 5:668dd9395ca5 79 }
voltxd 5:668dd9395ca5 80
voltxd 5:668dd9395ca5 81 int cbRxRemainingSize()
voltxd 5:668dd9395ca5 82 {
voltxd 5:668dd9395ca5 83 int size;
voltxd 5:668dd9395ca5 84 if (cbRxTail > cbRxHead)
voltxd 5:668dd9395ca5 85 size = cbRxTail - cbRxHead;
voltxd 5:668dd9395ca5 86 else
voltxd 5:668dd9395ca5 87 size = BUFFER_SIZE - (cbRxHead - cbRxTail);
voltxd 5:668dd9395ca5 88 return size;
voltxd 5:668dd9395ca5 89 }
voltxd 5:668dd9395ca5 90
voltxd 5:668dd9395ca5 91 int cbRxGetDataSize()
voltxd 5:668dd9395ca5 92 {
voltxd 5:668dd9395ca5 93 return BUFFER_SIZE - cbRxRemainingSize();
voltxd 5:668dd9395ca5 94 }