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
ringBuffer.h
00001 #ifndef RINGBUFFER_H 00002 #define RINGBUFFER_H 00003 00004 #include <stdint.h> 00005 00006 #define RX_BUFF_SIZE 129 00007 #define BYTES_PER_INTERRUPT 1 00008 00009 typedef struct { 00010 uint8_t buffer[RX_BUFF_SIZE]; 00011 uint16_t length; 00012 uint16_t start; 00013 uint16_t end; 00014 } RingBuffer; 00015 00016 void RingBuffer_init(RingBuffer *buffer); 00017 00018 int16_t RingBuffer_read(RingBuffer *buffer, uint8_t *target, uint16_t amount); 00019 int16_t RingBuffer_write(RingBuffer *buffer, uint8_t *data, uint16_t amount); 00020 bool RingBuffer_readbyte(RingBuffer *buffer, uint8_t *target); 00021 bool RingBuffer_writebyte(RingBuffer *buffer, uint8_t byte); 00022 00023 bool RingBuffer_isEmpty(RingBuffer *buffer); 00024 bool RingBuffer_isFull(RingBuffer *buffer); 00025 uint16_t RingBuffer_availableDataAmount(RingBuffer *buffer); 00026 uint16_t RingBuffer_avalailableSpaceAmount(RingBuffer *buffer); 00027 00028 00029 #define RingBuffer_available_data(B) (((B)->end + (B)->length - (B)->start) % (B)->length) 00030 #define RingBuffer_available_space(B) ((B)->length - 1 - RingBuffer_available_data((B))) 00031 #define RingBuffer_full(B) (RingBuffer_available_data((B)) - ((B)->length - 1) == 0) 00032 #define RingBuffer_empty(B) (RingBuffer_available_data((B)) == 0) 00033 #define RingBuffer_puts(B, D) RingBuffer_write((B), bdata((D)), blength((D))) 00034 #define RingBuffer_get_all(B) RingBuffer_gets((B), RingBuffer_available_data((B))) 00035 #define RingBuffer_starts_at(B) ((B)->buffer + (B)->start) 00036 #define RingBuffer_ends_at(B) ((B)->buffer + (B)->end) 00037 #define RingBuffer_commit_read(B, A) ((B)->start = ((B)->start + (A)) % (B)->length) 00038 #define RingBuffer_commit_write(B, A) ((B)->end = ((B)->end + (A)) % (B)->length) 00039 00040 #endif
Generated on Sun Jul 24 2022 10:29:02 by 1.7.2