三浦 颯太
/
MainBoard2019_LineHub_ver2
waaaa
RingBuffer/RingBuffer.h@1:9b6f10b4bc71, 2019-11-07 (annotated)
- Committer:
- M_souta
- Date:
- Thu Nov 07 11:15:29 2019 +0000
- Revision:
- 1:9b6f10b4bc71
- Parent:
- 0:cb29cf2767cd
ver2.0.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
M_souta | 0:cb29cf2767cd | 1 | /* |
M_souta | 0:cb29cf2767cd | 2 | * RingBuffer.h |
M_souta | 0:cb29cf2767cd | 3 | * |
M_souta | 0:cb29cf2767cd | 4 | * Created: 2016/08/10 12:15:08 |
M_souta | 0:cb29cf2767cd | 5 | * Author: masuk |
M_souta | 0:cb29cf2767cd | 6 | */ |
M_souta | 0:cb29cf2767cd | 7 | |
M_souta | 0:cb29cf2767cd | 8 | |
M_souta | 0:cb29cf2767cd | 9 | #ifndef RINGBUFFER_H_ |
M_souta | 0:cb29cf2767cd | 10 | #define RINGBUFFER_H_ |
M_souta | 0:cb29cf2767cd | 11 | |
M_souta | 0:cb29cf2767cd | 12 | #include <stdint.h> |
M_souta | 0:cb29cf2767cd | 13 | |
M_souta | 0:cb29cf2767cd | 14 | namespace RINGBUFFER |
M_souta | 0:cb29cf2767cd | 15 | { |
M_souta | 0:cb29cf2767cd | 16 | //循環型バッファ 使用するバッファの配列と大きさを指定してください |
M_souta | 0:cb29cf2767cd | 17 | class RingBuffer |
M_souta | 0:cb29cf2767cd | 18 | { |
M_souta | 0:cb29cf2767cd | 19 | struct |
M_souta | 0:cb29cf2767cd | 20 | { |
M_souta | 0:cb29cf2767cd | 21 | char *data; |
M_souta | 0:cb29cf2767cd | 22 | int size; |
M_souta | 0:cb29cf2767cd | 23 | uint8_t top; |
M_souta | 0:cb29cf2767cd | 24 | uint8_t bottom; |
M_souta | 0:cb29cf2767cd | 25 | uint8_t length; |
M_souta | 0:cb29cf2767cd | 26 | bool fullup; |
M_souta | 0:cb29cf2767cd | 27 | }Buffer; |
M_souta | 0:cb29cf2767cd | 28 | |
M_souta | 0:cb29cf2767cd | 29 | public: |
M_souta | 0:cb29cf2767cd | 30 | RingBuffer(char *bufPtr, int size); |
M_souta | 0:cb29cf2767cd | 31 | |
M_souta | 0:cb29cf2767cd | 32 | //バッファにデータを追加 |
M_souta | 0:cb29cf2767cd | 33 | void PutData(char data, bool ASCIItoNum = false); |
M_souta | 0:cb29cf2767cd | 34 | void PutData(char *data, int length); |
M_souta | 0:cb29cf2767cd | 35 | void PutData(const char *str); |
M_souta | 0:cb29cf2767cd | 36 | |
M_souta | 0:cb29cf2767cd | 37 | //バッファからデータを1byte読み出し |
M_souta | 0:cb29cf2767cd | 38 | char GetData(); |
M_souta | 0:cb29cf2767cd | 39 | |
M_souta | 0:cb29cf2767cd | 40 | //バッファが飽和しているか確認 |
M_souta | 0:cb29cf2767cd | 41 | bool IsFullup(); |
M_souta | 0:cb29cf2767cd | 42 | //バッファにデータが存在するか確認 |
M_souta | 0:cb29cf2767cd | 43 | bool InAnyData(); |
M_souta | 0:cb29cf2767cd | 44 | }; |
M_souta | 0:cb29cf2767cd | 45 | } |
M_souta | 0:cb29cf2767cd | 46 | |
M_souta | 0:cb29cf2767cd | 47 | |
M_souta | 0:cb29cf2767cd | 48 | |
M_souta | 0:cb29cf2767cd | 49 | #endif /* RINGBUFFER_H_ */ |