ring buffer

Committer:
est2fe
Date:
Tue Feb 28 19:57:07 2012 +0000
Revision:
8:40af324896d9
Parent:
6:0f5c6e6c1ad2
0.xy2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
est2fe 4:192672304400 1 #ifndef __rbuf_h_
est2fe 4:192672304400 2 #define __rbuf_h_
est2fe 0:eae8cffdd121 3
est2fe 6:0f5c6e6c1ad2 4 #include "mbed.h"
est2fe 6:0f5c6e6c1ad2 5
est2fe 0:eae8cffdd121 6 #define NOT_EMPTY 0x01 // Bit fuer mindestens 1 Frame im Buffer
est2fe 0:eae8cffdd121 7 #define FAST_VOLL 0x02 // Bit fuer Fuellstandsschwelle ueberschritten
est2fe 0:eae8cffdd121 8 #define FEHLER 0x04 // Bit fuer Fehler aufgetreten
est2fe 0:eae8cffdd121 9
est2fe 0:eae8cffdd121 10 typedef struct
est2fe 0:eae8cffdd121 11 {
est2fe 0:eae8cffdd121 12 uint16_t buflen; // Max. Objektanzahl fuer den Buffer
est2fe 0:eae8cffdd121 13 uint16_t bufcnt; // Bufferfuellstand in Objekten
est2fe 0:eae8cffdd121 14 void * in; // Zeiger auf char zum Schreiben (Schreibzeiger)
est2fe 0:eae8cffdd121 15 void * out; // Zeiger auf char zum Lesen (Lesezeiger)
est2fe 0:eae8cffdd121 16 void * buf; // Zeiger auf char[LEN]-Buffer (Buffer an sich)
est2fe 5:ddc33cb62d27 17 uint32_t anzahl; // Anzahl aller geschriebenen Elemente (Absolutanzahl Elementzaehler)
est2fe 0:eae8cffdd121 18 uint32_t fehleranzahl; // Anzahl aufgetretener Fehler
est2fe 0:eae8cffdd121 19 uint16_t Schwelle; // Schwelle fuer "fast voll"
est2fe 0:eae8cffdd121 20 uint16_t flags; // Status-Flags
est2fe 0:eae8cffdd121 21 uint16_t peak_max; // Schleppzeiger ueber den max. Fuellstand an Elementen
est2fe 0:eae8cffdd121 22 uint16_t blockgroesse; // Groesse eines Datenobjekts (1 Byte bis Frames) = Objektgroesse
est2fe 5:ddc33cb62d27 23 } rbuf_t; //
est2fe 0:eae8cffdd121 24
est2fe 4:192672304400 25 rbuf_t *rbuf_init (uint16_t b_size, uint16_t b_schwelle, uint16_t blockgroesse);
est2fe 0:eae8cffdd121 26
est2fe 5:ddc33cb62d27 27 rbuf_t *rbuf_create (uint16_t Objektanzahl, uint16_t Fast_voll_Schwelle, uint16_t Objektgroesse);
est2fe 5:ddc33cb62d27 28 void *rbuf_look (rbuf_t *buffer);
est2fe 5:ddc33cb62d27 29 void *rbuf_get (rbuf_t *buffer, void *target);
est2fe 5:ddc33cb62d27 30 void *rbuf_put (rbuf_t *buffer, void *source);
est2fe 5:ddc33cb62d27 31 uint32_t rbuf_getcnt (rbuf_t *buffer);
est2fe 5:ddc33cb62d27 32 uint32_t rbuf_getflags (rbuf_t *buffer);
est2fe 5:ddc33cb62d27 33 uint32_t rbuf_getfehler (rbuf_t *buffer);
est2fe 5:ddc33cb62d27 34 uint32_t rbuf_leer (rbuf_t *buffer);
est2fe 5:ddc33cb62d27 35 uint32_t rbuf_fast_voll (rbuf_t *buffer);
est2fe 5:ddc33cb62d27 36 uint32_t rbuf_fehler (rbuf_t *buffer);
est2fe 5:ddc33cb62d27 37 uint32_t rbuf_get_fehleranz (rbuf_t *buffer);
est2fe 5:ddc33cb62d27 38 uint32_t rbuf_get_gesendet (rbuf_t *buffer);
est2fe 3:c9c7c8e20336 39
est2fe 4:192672304400 40 #endif // von #define __rbuf_h_