Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Wed Nov 19 13:36:33 2014 +0000
Revision:
72:895ca792c647
Child:
99:e80850c51106
send_to_cbx | send2callbox under development -- antes de modularizar melhor o src.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 72:895ca792c647 1 #include "ring_buffer.h"
klauss 72:895ca792c647 2
klauss 72:895ca792c647 3 ring_buffer * ring_buffer_init( ring_buffer * rb ){
klauss 72:895ca792c647 4 if( rb == NULL ){
klauss 72:895ca792c647 5 rb = ( ring_buffer * )malloc( sizeof( ring_buffer ) );
klauss 72:895ca792c647 6 rb->begin = 0;
klauss 72:895ca792c647 7 rb->end = 0;
klauss 72:895ca792c647 8 rb->size = 0;
klauss 72:895ca792c647 9 rb->data = ( uint8_t * )malloc( sizeof( uint8_t ) * __CB_BUFFER_SIZE__ * RING_BUFFER_SIZE );
klauss 72:895ca792c647 10 return( rb );
klauss 72:895ca792c647 11 }else return( rb );
klauss 72:895ca792c647 12 }
klauss 72:895ca792c647 13
klauss 72:895ca792c647 14 void ring_buffer_delete( ring_buffer **rb ){
klauss 72:895ca792c647 15 if( (*rb) != NULL ){
klauss 72:895ca792c647 16 if( (*rb)->data != NULL ) free( (*rb)->data );
klauss 72:895ca792c647 17 free( *rb );
klauss 72:895ca792c647 18 }
klauss 72:895ca792c647 19 *rb = NULL;
klauss 72:895ca792c647 20 return;
klauss 72:895ca792c647 21 }
klauss 72:895ca792c647 22
klauss 72:895ca792c647 23 uint8_t ring_buffer_add( ring_buffer * rb, uint8_t * data ){
klauss 72:895ca792c647 24 if( rb == NULL ) return 0x99;
klauss 72:895ca792c647 25
klauss 72:895ca792c647 26 if( data == NULL ) return 0x98;
klauss 72:895ca792c647 27
klauss 72:895ca792c647 28 if( rb->size == RING_BUFFER_SIZE ) return 0x01;
klauss 72:895ca792c647 29
klauss 72:895ca792c647 30 else{
klauss 72:895ca792c647 31 rb_xmemcpy( rb->data + ( __CB_BUFFER_SIZE__ * rb->end ), data, __CB_BUFFER_SIZE__ );
klauss 72:895ca792c647 32 if( ++( rb->end ) == RING_BUFFER_SIZE ) rb->end = 0;
klauss 72:895ca792c647 33 rb->size++;
klauss 72:895ca792c647 34 }
klauss 72:895ca792c647 35
klauss 72:895ca792c647 36 return( 0x00 );
klauss 72:895ca792c647 37 }
klauss 72:895ca792c647 38
klauss 72:895ca792c647 39 uint8_t * ring_buffer_get_next( ring_buffer * rb ){
klauss 72:895ca792c647 40 if( rb == NULL ) return( NULL );
klauss 72:895ca792c647 41
klauss 72:895ca792c647 42 if( rb->size == 0 ) return( NULL );
klauss 72:895ca792c647 43
klauss 72:895ca792c647 44 uint8_t * tmp = rb->data + ( rb->begin * __CB_BUFFER_SIZE__ );
klauss 72:895ca792c647 45 if( rb->size == 0 ){
klauss 72:895ca792c647 46 rb->begin = 0;
klauss 72:895ca792c647 47 rb->end = 0;
klauss 72:895ca792c647 48 rb->size = 0;
klauss 72:895ca792c647 49 }
klauss 72:895ca792c647 50 /* Por que ( RING_BUFFER_SIZE - 1 ) ???
klauss 72:895ca792c647 51 * rb->begin retorna a posição 0, 1, 2 somente
klauss 72:895ca792c647 52 **/
klauss 72:895ca792c647 53 if( ++( rb->begin ) > ( RING_BUFFER_SIZE - 1 ) ) rb->begin = 0;
klauss 72:895ca792c647 54
klauss 72:895ca792c647 55 if( rb->size != 0 ) rb->size--;
klauss 72:895ca792c647 56
klauss 72:895ca792c647 57 return( tmp );
klauss 72:895ca792c647 58 }
klauss 72:895ca792c647 59
klauss 72:895ca792c647 60 bool unit_test_01(){
klauss 72:895ca792c647 61 /* next on empty ring_buffer */
klauss 72:895ca792c647 62
klauss 72:895ca792c647 63 ring_buffer * rb = ring_buffer_init( NULL );
klauss 72:895ca792c647 64
klauss 72:895ca792c647 65 uint8_t * data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 66 assert( data == NULL );
klauss 72:895ca792c647 67
klauss 72:895ca792c647 68 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 69 assert( data == NULL );
klauss 72:895ca792c647 70
klauss 72:895ca792c647 71 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 72 assert( data == NULL );
klauss 72:895ca792c647 73
klauss 72:895ca792c647 74 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 75 assert( data == NULL );
klauss 72:895ca792c647 76
klauss 72:895ca792c647 77 ring_buffer_delete( &rb );
klauss 72:895ca792c647 78
klauss 72:895ca792c647 79 return( rb == NULL ) ? true : false;
klauss 72:895ca792c647 80 }
klauss 72:895ca792c647 81
klauss 72:895ca792c647 82 bool unit_test_02(){
klauss 72:895ca792c647 83 /* add 1 next 4 */
klauss 72:895ca792c647 84 ring_buffer * rb = ring_buffer_init( NULL );
klauss 72:895ca792c647 85
klauss 72:895ca792c647 86 uint8_t data_buff[ __CB_BUFFER_SIZE__ ], *data = NULL;
klauss 72:895ca792c647 87
klauss 72:895ca792c647 88 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xab;
klauss 72:895ca792c647 89 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 90 assert( rb->size == 1 );
klauss 72:895ca792c647 91
klauss 72:895ca792c647 92 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 93 assert( data != NULL );
klauss 72:895ca792c647 94 assert( rb->size == 0 );
klauss 72:895ca792c647 95
klauss 72:895ca792c647 96 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 97 assert( data == NULL );
klauss 72:895ca792c647 98 assert( rb->size == 0 );
klauss 72:895ca792c647 99
klauss 72:895ca792c647 100 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 101 assert( data == NULL );
klauss 72:895ca792c647 102 assert( rb->size == 0 );
klauss 72:895ca792c647 103
klauss 72:895ca792c647 104 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 105 assert( data == NULL );
klauss 72:895ca792c647 106 assert( rb->size == 0 );
klauss 72:895ca792c647 107
klauss 72:895ca792c647 108 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 109 assert( data == NULL );
klauss 72:895ca792c647 110 assert( rb->size == 0 );
klauss 72:895ca792c647 111
klauss 72:895ca792c647 112 ring_buffer_delete( &rb );
klauss 72:895ca792c647 113 return( rb == NULL ) ? true : false;
klauss 72:895ca792c647 114
klauss 72:895ca792c647 115 }
klauss 72:895ca792c647 116
klauss 72:895ca792c647 117 bool unit_test_03(){
klauss 72:895ca792c647 118 /* ad 1, next 1, cmp, add 2, next one, cmp, next one, cmp, next one, cmp */
klauss 72:895ca792c647 119
klauss 72:895ca792c647 120 ring_buffer * rb = ring_buffer_init( NULL );
klauss 72:895ca792c647 121
klauss 72:895ca792c647 122 uint8_t data_buff[ __CB_BUFFER_SIZE__ ], *data = NULL;
klauss 72:895ca792c647 123
klauss 72:895ca792c647 124 bool flag = true;
klauss 72:895ca792c647 125
klauss 72:895ca792c647 126 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xab;
klauss 72:895ca792c647 127 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 128 assert( rb->size == 1 );
klauss 72:895ca792c647 129
klauss 72:895ca792c647 130 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 131 assert( data != NULL );
klauss 72:895ca792c647 132 assert( rb->size == 0 );
klauss 72:895ca792c647 133 flag = true;
klauss 72:895ca792c647 134 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xab ) flag = false;
klauss 72:895ca792c647 135 assert( flag == true );
klauss 72:895ca792c647 136
klauss 72:895ca792c647 137 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xcc;
klauss 72:895ca792c647 138 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 139 assert( rb->size == 1 );
klauss 72:895ca792c647 140
klauss 72:895ca792c647 141 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xdb;
klauss 72:895ca792c647 142 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 143 assert( rb->size == 2 );
klauss 72:895ca792c647 144
klauss 72:895ca792c647 145 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 146 assert( data != NULL );
klauss 72:895ca792c647 147 assert( rb->size == 1 );
klauss 72:895ca792c647 148 flag = true;
klauss 72:895ca792c647 149 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xcc ) flag = false;
klauss 72:895ca792c647 150 assert( flag == true );
klauss 72:895ca792c647 151
klauss 72:895ca792c647 152 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 153 assert( data != NULL );
klauss 72:895ca792c647 154 assert( rb->size == 0 );
klauss 72:895ca792c647 155 flag = true;
klauss 72:895ca792c647 156 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xdb ) flag = false;
klauss 72:895ca792c647 157 assert( flag == true );
klauss 72:895ca792c647 158
klauss 72:895ca792c647 159 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 160 assert( data == NULL );
klauss 72:895ca792c647 161 assert( rb->size == 0 );
klauss 72:895ca792c647 162
klauss 72:895ca792c647 163 ring_buffer_delete( &rb );
klauss 72:895ca792c647 164
klauss 72:895ca792c647 165 return( rb == NULL ) ? true : false;
klauss 72:895ca792c647 166 }
klauss 72:895ca792c647 167
klauss 72:895ca792c647 168 bool unit_test_04(){
klauss 72:895ca792c647 169 /* add 1, next 1, add 2, next one, add 1, next 2, add 3, next 1, add 1, next 3 */
klauss 72:895ca792c647 170
klauss 72:895ca792c647 171 ring_buffer * rb = ring_buffer_init( NULL );
klauss 72:895ca792c647 172
klauss 72:895ca792c647 173 uint8_t data_buff[ __CB_BUFFER_SIZE__ ], *data = NULL;
klauss 72:895ca792c647 174
klauss 72:895ca792c647 175 bool flag = true;
klauss 72:895ca792c647 176
klauss 72:895ca792c647 177 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xab;
klauss 72:895ca792c647 178 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 179 assert( rb->size == 1 );
klauss 72:895ca792c647 180
klauss 72:895ca792c647 181 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 182 assert( data != NULL );
klauss 72:895ca792c647 183 assert( rb->size == 0 );
klauss 72:895ca792c647 184 flag = true;
klauss 72:895ca792c647 185 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xab ) flag = false;
klauss 72:895ca792c647 186 assert( flag == true );
klauss 72:895ca792c647 187
klauss 72:895ca792c647 188 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xcc;
klauss 72:895ca792c647 189 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 190 assert( rb->size == 1 );
klauss 72:895ca792c647 191
klauss 72:895ca792c647 192 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xdb;
klauss 72:895ca792c647 193 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 194 assert( rb->size == 2 );
klauss 72:895ca792c647 195
klauss 72:895ca792c647 196 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 197 assert( data != NULL );
klauss 72:895ca792c647 198 assert( rb->size == 1 );
klauss 72:895ca792c647 199 flag = true;
klauss 72:895ca792c647 200 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xcc ) flag = false;
klauss 72:895ca792c647 201 assert( flag == true );
klauss 72:895ca792c647 202
klauss 72:895ca792c647 203 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xdd;
klauss 72:895ca792c647 204 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 205 assert( rb->size == 2 );
klauss 72:895ca792c647 206
klauss 72:895ca792c647 207 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 208 assert( data != NULL );
klauss 72:895ca792c647 209 assert( rb->size == 1 );
klauss 72:895ca792c647 210 flag = true;
klauss 72:895ca792c647 211 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xdb ) flag = false;
klauss 72:895ca792c647 212 assert( flag == true );
klauss 72:895ca792c647 213
klauss 72:895ca792c647 214 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 215 assert( data != NULL );
klauss 72:895ca792c647 216 assert( rb->size == 0 );
klauss 72:895ca792c647 217 flag = true;
klauss 72:895ca792c647 218 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xdd ) flag = false;
klauss 72:895ca792c647 219 assert( flag == true );
klauss 72:895ca792c647 220
klauss 72:895ca792c647 221 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xaa;
klauss 72:895ca792c647 222 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 223 assert( rb->size == 1 );
klauss 72:895ca792c647 224
klauss 72:895ca792c647 225 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xab;
klauss 72:895ca792c647 226 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 227 assert( rb->size == 2 );
klauss 72:895ca792c647 228
klauss 72:895ca792c647 229 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xac;
klauss 72:895ca792c647 230 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 231 assert( rb->size == 3 );
klauss 72:895ca792c647 232
klauss 72:895ca792c647 233 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 234 assert( data != NULL );
klauss 72:895ca792c647 235 assert( rb->size == 2 );
klauss 72:895ca792c647 236 flag = true;
klauss 72:895ca792c647 237
klauss 72:895ca792c647 238 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xaa ) flag = false;
klauss 72:895ca792c647 239 assert( flag == true );
klauss 72:895ca792c647 240
klauss 72:895ca792c647 241 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 242 assert( data != NULL );
klauss 72:895ca792c647 243 assert( rb->size == 1 );
klauss 72:895ca792c647 244 flag = true;
klauss 72:895ca792c647 245 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xab ) flag = false;
klauss 72:895ca792c647 246 assert( flag == true );
klauss 72:895ca792c647 247
klauss 72:895ca792c647 248 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 249 assert( data != NULL );
klauss 72:895ca792c647 250 assert( rb->size == 0 );
klauss 72:895ca792c647 251 flag = true;
klauss 72:895ca792c647 252 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xac ) flag = false;
klauss 72:895ca792c647 253 assert( flag == true );
klauss 72:895ca792c647 254
klauss 72:895ca792c647 255 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ){
klauss 72:895ca792c647 256 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 257 assert( data == NULL );
klauss 72:895ca792c647 258 assert( rb->size == 0 );
klauss 72:895ca792c647 259 }
klauss 72:895ca792c647 260
klauss 72:895ca792c647 261 ring_buffer_delete( &rb );
klauss 72:895ca792c647 262
klauss 72:895ca792c647 263 return( rb == NULL ) ? true : false;
klauss 72:895ca792c647 264 }
klauss 72:895ca792c647 265
klauss 72:895ca792c647 266 bool unit_test_05(){
klauss 72:895ca792c647 267 /* add 3 add 300, next 1, add 301, next 300, add 300, next 300 */
klauss 72:895ca792c647 268
klauss 72:895ca792c647 269 ring_buffer * rb = ring_buffer_init( NULL );
klauss 72:895ca792c647 270 uint8_t data_buff[ __CB_BUFFER_SIZE__ ], *data = NULL;
klauss 72:895ca792c647 271 bool flag = true;
klauss 72:895ca792c647 272
klauss 72:895ca792c647 273 // add 3
klauss 72:895ca792c647 274 uint8_t value = 0x00;
klauss 72:895ca792c647 275 for( uint8_t count = 0; count < 3; count++ ){
klauss 72:895ca792c647 276 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = value;
klauss 72:895ca792c647 277 ring_buffer_add( rb, data_buff );
klauss 72:895ca792c647 278 assert( rb->size == ( count + 1 ) );
klauss 72:895ca792c647 279 value++;
klauss 72:895ca792c647 280 }
klauss 72:895ca792c647 281 // add 300
klauss 72:895ca792c647 282 for( uint16_t count = 0; count < __CB_BUFFER_SIZE__; count++ ){
klauss 72:895ca792c647 283 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = value;
klauss 72:895ca792c647 284 assert( ring_buffer_add( rb, data_buff ) == 0x01 ) ;
klauss 72:895ca792c647 285 assert( rb->size == RING_BUFFER_SIZE );
klauss 72:895ca792c647 286 value++;
klauss 72:895ca792c647 287 }
klauss 72:895ca792c647 288 // next 1
klauss 72:895ca792c647 289 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 290 assert( data != NULL );
klauss 72:895ca792c647 291 assert( rb->size == 2 );
klauss 72:895ca792c647 292 flag = true;
klauss 72:895ca792c647 293 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0x00 ) flag = false;
klauss 72:895ca792c647 294 assert( flag == true );
klauss 72:895ca792c647 295
klauss 72:895ca792c647 296 // add 1
klauss 72:895ca792c647 297 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = 0xff;
klauss 72:895ca792c647 298 assert( ring_buffer_add( rb, data_buff ) == 0x00 );
klauss 72:895ca792c647 299
klauss 72:895ca792c647 300 // add 300
klauss 72:895ca792c647 301 value = 0xee;
klauss 72:895ca792c647 302 for( uint16_t count = 0; count < __CB_BUFFER_SIZE__; count++ ){
klauss 72:895ca792c647 303 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = value;
klauss 72:895ca792c647 304 assert( ring_buffer_add( rb, data_buff ) == 0x01 );
klauss 72:895ca792c647 305 assert( rb->size == RING_BUFFER_SIZE );
klauss 72:895ca792c647 306 value++;
klauss 72:895ca792c647 307 }
klauss 72:895ca792c647 308
klauss 72:895ca792c647 309 // next 1
klauss 72:895ca792c647 310 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 311 assert( data != NULL );
klauss 72:895ca792c647 312 assert( rb->size == 2 );
klauss 72:895ca792c647 313 flag = true;
klauss 72:895ca792c647 314 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0x01 ) flag = false;
klauss 72:895ca792c647 315 assert( flag == true );
klauss 72:895ca792c647 316
klauss 72:895ca792c647 317 //next 1
klauss 72:895ca792c647 318 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 319 assert( data != NULL );
klauss 72:895ca792c647 320 assert( rb->size == 1 );
klauss 72:895ca792c647 321 flag = true;
klauss 72:895ca792c647 322 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0x02 ) flag = false;
klauss 72:895ca792c647 323 assert( flag == true );
klauss 72:895ca792c647 324
klauss 72:895ca792c647 325 //next 1
klauss 72:895ca792c647 326 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 327 assert( data != NULL );
klauss 72:895ca792c647 328 assert( rb->size == 0 );
klauss 72:895ca792c647 329 flag = true;
klauss 72:895ca792c647 330 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != 0xff ) flag = false;
klauss 72:895ca792c647 331 assert( flag == true );
klauss 72:895ca792c647 332
klauss 72:895ca792c647 333 // next 300 - 3
klauss 72:895ca792c647 334 for( uint16_t count = 0; count < __CB_BUFFER_SIZE__ - 3; count++ ){
klauss 72:895ca792c647 335 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 336 assert( data == NULL );
klauss 72:895ca792c647 337 }
klauss 72:895ca792c647 338
klauss 72:895ca792c647 339 // add 300
klauss 72:895ca792c647 340 value = 0xbb;
klauss 72:895ca792c647 341 for( uint16_t count = 0; count < __CB_BUFFER_SIZE__; count++ ){
klauss 72:895ca792c647 342 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) data_buff[ i ] = value;
klauss 72:895ca792c647 343
klauss 72:895ca792c647 344 if( rb->size != RING_BUFFER_SIZE ) assert( ring_buffer_add( rb, data_buff ) == 0x00 );
klauss 72:895ca792c647 345
klauss 72:895ca792c647 346 else assert( ring_buffer_add( rb, data_buff ) == 0x01 );
klauss 72:895ca792c647 347
klauss 72:895ca792c647 348 value++;
klauss 72:895ca792c647 349 }
klauss 72:895ca792c647 350 // next 3
klauss 72:895ca792c647 351 value = 0xbb;
klauss 72:895ca792c647 352 for( uint8_t count = 0; count < 3; count++ ){
klauss 72:895ca792c647 353 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 354 assert( data != NULL );
klauss 72:895ca792c647 355 assert( rb->size == ( RING_BUFFER_SIZE - 1 - count ) );
klauss 72:895ca792c647 356 flag = true;
klauss 72:895ca792c647 357 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ) if( data[ i ] != value ) flag = false;
klauss 72:895ca792c647 358 assert( flag == true );
klauss 72:895ca792c647 359 value++;
klauss 72:895ca792c647 360 }
klauss 72:895ca792c647 361
klauss 72:895ca792c647 362 for( uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ){
klauss 72:895ca792c647 363 data = ring_buffer_get_next( rb );
klauss 72:895ca792c647 364 assert( data == NULL );
klauss 72:895ca792c647 365 assert( rb->size == 0 );
klauss 72:895ca792c647 366 }
klauss 72:895ca792c647 367
klauss 72:895ca792c647 368 ring_buffer_delete( &rb );
klauss 72:895ca792c647 369
klauss 72:895ca792c647 370 return( rb == NULL ) ? true : false;
klauss 72:895ca792c647 371
klauss 72:895ca792c647 372 }
klauss 72:895ca792c647 373
klauss 72:895ca792c647 374 /*
klauss 72:895ca792c647 375 int main(){
klauss 72:895ca792c647 376 assert( 1 == unit_test_01() );
klauss 72:895ca792c647 377 printf("unit_test 01 -- ok\n\r");
klauss 72:895ca792c647 378
klauss 72:895ca792c647 379 assert( 1 == unit_test_02() );
klauss 72:895ca792c647 380 printf("unit_test 02 -- ok\n\r");
klauss 72:895ca792c647 381
klauss 72:895ca792c647 382 assert( 1 == unit_test_03() );
klauss 72:895ca792c647 383 printf("unit_test 03 -- ok\n\r");
klauss 72:895ca792c647 384
klauss 72:895ca792c647 385 assert( 1 == unit_test_04() );
klauss 72:895ca792c647 386 printf("unit_test 04 -- ok\n\r");
klauss 72:895ca792c647 387
klauss 72:895ca792c647 388 assert( 1 == unit_test_05() );
klauss 72:895ca792c647 389 printf("unit_test 05 -- ok\n\r");
klauss 72:895ca792c647 390
klauss 72:895ca792c647 391 return( 0 );
klauss 72:895ca792c647 392 }
klauss 72:895ca792c647 393 */
klauss 72:895ca792c647 394
klauss 72:895ca792c647 395 void rb_xmemcpy(uint8_t * dest, uint8_t * src, uint16_t size){
klauss 72:895ca792c647 396 while (size--) *dest++ = *src++;
klauss 72:895ca792c647 397 }