Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
99:e80850c51106
Parent:
72:895ca792c647
Child:
105:a930035b6556
--- a/ring_buffer.cpp	Sun Jan 11 03:30:47 2015 +0000
+++ b/ring_buffer.cpp	Mon Jan 19 18:00:42 2015 +0000
@@ -25,11 +25,11 @@
 
     if( data == NULL ) return 0x98;
     
-    if( rb->size == RING_BUFFER_SIZE ) return 0x01;
+    if( rb->size >= RING_BUFFER_SIZE ) return 0x01;
 
     else{
         rb_xmemcpy( rb->data + ( __CB_BUFFER_SIZE__ * rb->end ), data, __CB_BUFFER_SIZE__ );           
-        if( ++( rb->end ) == RING_BUFFER_SIZE ) rb->end = 0;
+        if( ++( rb->end ) >= RING_BUFFER_SIZE ) rb->end = 0;
         rb->size++;
     }
 
@@ -41,20 +41,13 @@
 
     if( rb->size == 0 ) return( NULL );
 
-    uint8_t * tmp = rb->data + ( rb->begin * __CB_BUFFER_SIZE__ );
-    if( rb->size == 0 ){
-        rb->begin = 0; 
-        rb->end = 0;
-        rb->size = 0;
-    }
-    /* Por que ( RING_BUFFER_SIZE - 1 ) ???
-     *  rb->begin retorna a posição 0, 1, 2 somente
-     **/
-    if( ++( rb->begin ) > ( RING_BUFFER_SIZE - 1 ) ) rb->begin = 0;
+    uint8_t * ret = rb->data + ( rb->begin * __CB_BUFFER_SIZE__ );
+    
+    if( ++( rb->begin ) >= RING_BUFFER_SIZE ) rb->begin = 0;
 
-    if( rb->size != 0 ) rb->size--;
+    if( rb->size > 0 ) rb->size--;
     
-    return( tmp );
+    return( ret );
 }
 
 bool unit_test_01(){