sistemaMicrontrolador3

Dependencies:   mbed

Committer:
JuanManuelAmador
Date:
Mon Dec 19 15:13:15 2016 +0000
Revision:
0:390287d3dcb6
sistemaMicrocontrolador3;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JuanManuelAmador 0:390287d3dcb6 1 #include "Bufferinguint.h"
JuanManuelAmador 0:390287d3dcb6 2
JuanManuelAmador 0:390287d3dcb6 3 Bufferinguint::Bufferinguint()
JuanManuelAmador 0:390287d3dcb6 4 {
JuanManuelAmador 0:390287d3dcb6 5 for(int i = 0; i < BUFFERSIZE; i++){
JuanManuelAmador 0:390287d3dcb6 6 data[i] = 0;
JuanManuelAmador 0:390287d3dcb6 7 }
JuanManuelAmador 0:390287d3dcb6 8 windex = 0;
JuanManuelAmador 0:390287d3dcb6 9 rindex = 0;
JuanManuelAmador 0:390287d3dcb6 10 full = false;
JuanManuelAmador 0:390287d3dcb6 11 empty = true;
JuanManuelAmador 0:390287d3dcb6 12 bufSize = BUFFERSIZE;
JuanManuelAmador 0:390287d3dcb6 13 }
JuanManuelAmador 0:390287d3dcb6 14
JuanManuelAmador 0:390287d3dcb6 15 void Bufferinguint::put(unsigned int val)
JuanManuelAmador 0:390287d3dcb6 16 {
JuanManuelAmador 0:390287d3dcb6 17 if(!full)
JuanManuelAmador 0:390287d3dcb6 18 {
JuanManuelAmador 0:390287d3dcb6 19 data[windex] = val;
JuanManuelAmador 0:390287d3dcb6 20 windex++;
JuanManuelAmador 0:390287d3dcb6 21 empty = false;
JuanManuelAmador 0:390287d3dcb6 22 if(windex >= bufSize)
JuanManuelAmador 0:390287d3dcb6 23 {
JuanManuelAmador 0:390287d3dcb6 24 windex = 0;
JuanManuelAmador 0:390287d3dcb6 25 }
JuanManuelAmador 0:390287d3dcb6 26 if(getDif() >= bufSize - 1){
JuanManuelAmador 0:390287d3dcb6 27 full = true;
JuanManuelAmador 0:390287d3dcb6 28 }
JuanManuelAmador 0:390287d3dcb6 29 /*if(windex >= rindex)
JuanManuelAmador 0:390287d3dcb6 30 {
JuanManuelAmador 0:390287d3dcb6 31 full = true;
JuanManuelAmador 0:390287d3dcb6 32 }*/
JuanManuelAmador 0:390287d3dcb6 33 }
JuanManuelAmador 0:390287d3dcb6 34 }
JuanManuelAmador 0:390287d3dcb6 35
JuanManuelAmador 0:390287d3dcb6 36 unsigned int Bufferinguint::get()
JuanManuelAmador 0:390287d3dcb6 37 {
JuanManuelAmador 0:390287d3dcb6 38 unsigned int temp = 0;
JuanManuelAmador 0:390287d3dcb6 39 if(!empty)
JuanManuelAmador 0:390287d3dcb6 40 {
JuanManuelAmador 0:390287d3dcb6 41 temp = data[rindex];
JuanManuelAmador 0:390287d3dcb6 42 data[rindex] = 0;
JuanManuelAmador 0:390287d3dcb6 43 full = false;
JuanManuelAmador 0:390287d3dcb6 44 rindex++;
JuanManuelAmador 0:390287d3dcb6 45 if(rindex >= bufSize)
JuanManuelAmador 0:390287d3dcb6 46 {
JuanManuelAmador 0:390287d3dcb6 47 rindex = 0;
JuanManuelAmador 0:390287d3dcb6 48 }
JuanManuelAmador 0:390287d3dcb6 49 if(getDif() == 0){
JuanManuelAmador 0:390287d3dcb6 50 empty = true;
JuanManuelAmador 0:390287d3dcb6 51 }
JuanManuelAmador 0:390287d3dcb6 52 /*if(rindex >= windex)
JuanManuelAmador 0:390287d3dcb6 53 {
JuanManuelAmador 0:390287d3dcb6 54 empty = true;
JuanManuelAmador 0:390287d3dcb6 55 }*/
JuanManuelAmador 0:390287d3dcb6 56 }
JuanManuelAmador 0:390287d3dcb6 57 return temp;
JuanManuelAmador 0:390287d3dcb6 58 }
JuanManuelAmador 0:390287d3dcb6 59
JuanManuelAmador 0:390287d3dcb6 60 bool Bufferinguint::isFull()
JuanManuelAmador 0:390287d3dcb6 61 {
JuanManuelAmador 0:390287d3dcb6 62 return full;
JuanManuelAmador 0:390287d3dcb6 63 }
JuanManuelAmador 0:390287d3dcb6 64
JuanManuelAmador 0:390287d3dcb6 65 bool Bufferinguint::isEmpty()
JuanManuelAmador 0:390287d3dcb6 66 {
JuanManuelAmador 0:390287d3dcb6 67 return empty;
JuanManuelAmador 0:390287d3dcb6 68 }
JuanManuelAmador 0:390287d3dcb6 69
JuanManuelAmador 0:390287d3dcb6 70 int Bufferinguint::getSize()
JuanManuelAmador 0:390287d3dcb6 71 {
JuanManuelAmador 0:390287d3dcb6 72 return bufSize;
JuanManuelAmador 0:390287d3dcb6 73 }
JuanManuelAmador 0:390287d3dcb6 74
JuanManuelAmador 0:390287d3dcb6 75 unsigned int Bufferinguint::getWritingIndex()
JuanManuelAmador 0:390287d3dcb6 76 {
JuanManuelAmador 0:390287d3dcb6 77 return windex;
JuanManuelAmador 0:390287d3dcb6 78 }
JuanManuelAmador 0:390287d3dcb6 79
JuanManuelAmador 0:390287d3dcb6 80 unsigned int Bufferinguint::getReadingIndex()
JuanManuelAmador 0:390287d3dcb6 81 {
JuanManuelAmador 0:390287d3dcb6 82 return rindex;
JuanManuelAmador 0:390287d3dcb6 83 }
JuanManuelAmador 0:390287d3dcb6 84
JuanManuelAmador 0:390287d3dcb6 85 unsigned int Bufferinguint::getDif()
JuanManuelAmador 0:390287d3dcb6 86 {
JuanManuelAmador 0:390287d3dcb6 87 unsigned int dif = 0;
JuanManuelAmador 0:390287d3dcb6 88 if((int)(windex-rindex)>=0) { dif = windex-rindex; }
JuanManuelAmador 0:390287d3dcb6 89 else { dif = bufSize+windex-rindex; }
JuanManuelAmador 0:390287d3dcb6 90 return dif;
JuanManuelAmador 0:390287d3dcb6 91 }