nRF51822 serves as the bridge between BLE central and MCU, which makes cental able to fetch photos from serial camera.
Dependencies: BLE_API mbed nRF51822
Fork of nRF51822_blinky by
inc/ringBuffer.h@12:7060e287bdae, 2016-02-22 (annotated)
- Committer:
- stormysun513
- Date:
- Mon Feb 22 08:50:39 2016 +0000
- Revision:
- 12:7060e287bdae
Workable version 1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
stormysun513 | 12:7060e287bdae | 1 | #ifndef RINGBUFFER_H |
stormysun513 | 12:7060e287bdae | 2 | #define RINGBUFFER_H |
stormysun513 | 12:7060e287bdae | 3 | |
stormysun513 | 12:7060e287bdae | 4 | #include <stdint.h> |
stormysun513 | 12:7060e287bdae | 5 | |
stormysun513 | 12:7060e287bdae | 6 | #define RX_BUFF_SIZE 129 |
stormysun513 | 12:7060e287bdae | 7 | #define BYTES_PER_INTERRUPT 1 |
stormysun513 | 12:7060e287bdae | 8 | |
stormysun513 | 12:7060e287bdae | 9 | typedef struct { |
stormysun513 | 12:7060e287bdae | 10 | uint8_t buffer[RX_BUFF_SIZE]; |
stormysun513 | 12:7060e287bdae | 11 | uint16_t length; |
stormysun513 | 12:7060e287bdae | 12 | uint16_t start; |
stormysun513 | 12:7060e287bdae | 13 | uint16_t end; |
stormysun513 | 12:7060e287bdae | 14 | } RingBuffer; |
stormysun513 | 12:7060e287bdae | 15 | |
stormysun513 | 12:7060e287bdae | 16 | void RingBuffer_init(RingBuffer *buffer); |
stormysun513 | 12:7060e287bdae | 17 | |
stormysun513 | 12:7060e287bdae | 18 | int16_t RingBuffer_read(RingBuffer *buffer, uint8_t *target, uint16_t amount); |
stormysun513 | 12:7060e287bdae | 19 | int16_t RingBuffer_write(RingBuffer *buffer, uint8_t *data, uint16_t amount); |
stormysun513 | 12:7060e287bdae | 20 | bool RingBuffer_readbyte(RingBuffer *buffer, uint8_t *target); |
stormysun513 | 12:7060e287bdae | 21 | bool RingBuffer_writebyte(RingBuffer *buffer, uint8_t byte); |
stormysun513 | 12:7060e287bdae | 22 | |
stormysun513 | 12:7060e287bdae | 23 | bool RingBuffer_isEmpty(RingBuffer *buffer); |
stormysun513 | 12:7060e287bdae | 24 | bool RingBuffer_isFull(RingBuffer *buffer); |
stormysun513 | 12:7060e287bdae | 25 | uint16_t RingBuffer_availableDataAmount(RingBuffer *buffer); |
stormysun513 | 12:7060e287bdae | 26 | uint16_t RingBuffer_avalailableSpaceAmount(RingBuffer *buffer); |
stormysun513 | 12:7060e287bdae | 27 | |
stormysun513 | 12:7060e287bdae | 28 | |
stormysun513 | 12:7060e287bdae | 29 | #define RingBuffer_available_data(B) (((B)->end + (B)->length - (B)->start) % (B)->length) |
stormysun513 | 12:7060e287bdae | 30 | #define RingBuffer_available_space(B) ((B)->length - 1 - RingBuffer_available_data((B))) |
stormysun513 | 12:7060e287bdae | 31 | #define RingBuffer_full(B) (RingBuffer_available_data((B)) - ((B)->length - 1) == 0) |
stormysun513 | 12:7060e287bdae | 32 | #define RingBuffer_empty(B) (RingBuffer_available_data((B)) == 0) |
stormysun513 | 12:7060e287bdae | 33 | #define RingBuffer_puts(B, D) RingBuffer_write((B), bdata((D)), blength((D))) |
stormysun513 | 12:7060e287bdae | 34 | #define RingBuffer_get_all(B) RingBuffer_gets((B), RingBuffer_available_data((B))) |
stormysun513 | 12:7060e287bdae | 35 | #define RingBuffer_starts_at(B) ((B)->buffer + (B)->start) |
stormysun513 | 12:7060e287bdae | 36 | #define RingBuffer_ends_at(B) ((B)->buffer + (B)->end) |
stormysun513 | 12:7060e287bdae | 37 | #define RingBuffer_commit_read(B, A) ((B)->start = ((B)->start + (A)) % (B)->length) |
stormysun513 | 12:7060e287bdae | 38 | #define RingBuffer_commit_write(B, A) ((B)->end = ((B)->end + (A)) % (B)->length) |
stormysun513 | 12:7060e287bdae | 39 | |
stormysun513 | 12:7060e287bdae | 40 | #endif |