teste de publish

Dependencies:   DS1820 HighSpeedAnalogIn devices mbed

Revision:
0:1c0a769988ee
Child:
2:55b7b466e742
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CircularBuffer.cpp	Fri Mar 24 15:54:41 2017 +0000
@@ -0,0 +1,66 @@
+#include "CircularBuffer.h"
+CircularBuffer::CircularBuffer(uint16_t tamanho) {
+  tam = tamanho+1;
+  bufIn = (char*) malloc(sizeof(char)*(tam)); //Cuidado extremo com uso de malloc!!!  
+  //printf("Alocados %lu caracteres para bufIn dentro do construtor CircularBuffer.\r\n",tam+1);
+  index = 0;
+  estouro = 0;
+}
+
+void CircularBuffer::del(){
+    uint16_t i;
+    this->index = 0;
+    this->estouro = 0;
+    for(i=0;i<tam;i++){
+        this->bufIn[i]=0;
+    }
+}
+
+void CircularBuffer::putc(char entrada){
+ //uint16_t i;
+ bufIn[index] = entrada;       
+ index++;
+ if(index>(tam-2)){
+  index=0;
+  estouro=true;
+ }
+}
+
+char* CircularBuffer::get(){
+     uint16_t nOperacoes;
+     uint16_t i;
+     //unsigned int x;     
+     char aux;
+     
+     if(estouro){         
+         for(nOperacoes=0;nOperacoes<index;nOperacoes++){      
+          aux=bufIn[0];     
+          for(i=0;i<tam;i++){
+           bufIn[i]=bufIn[i+1];
+          }                       
+          bufIn[tam-2]=aux;      
+         }              
+         bufIn[tam-1]=0;         
+         estouro=false;     
+     }else{
+       bufIn[index]=0;
+      }     
+     index = 0;
+     return bufIn;
+}
+
+uint16_t CircularBuffer::getLength(){
+    return index;    
+}
+
+char* CircularBuffer::getRowBuffer(){
+    return bufIn;    
+}
+
+uint16_t CircularBuffer::fill(char *buf,uint16_t cont){
+    uint16_t i;
+    for(i=0;i<cont;i++){
+        this->putc(buf[i]);   
+    }
+    return index;
+}