![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Gets messages form the pc and translates it to I2C and back.
Dependencies: DevInterfaces I2Cinterfaces MCP4725 mbed
Reader.h@0:b40341017545, 2016-05-18 (annotated)
- Committer:
- katrijnverhasselt
- Date:
- Wed May 18 11:22:41 2016 +0000
- Revision:
- 0:b40341017545
- Child:
- 2:2330ad8b1baa
Full program
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
katrijnverhasselt | 0:b40341017545 | 1 | #pragma once |
katrijnverhasselt | 0:b40341017545 | 2 | |
katrijnverhasselt | 0:b40341017545 | 3 | #include <string> |
katrijnverhasselt | 0:b40341017545 | 4 | #include "mbed.h" |
katrijnverhasselt | 0:b40341017545 | 5 | #include "Translator.h" |
katrijnverhasselt | 0:b40341017545 | 6 | |
katrijnverhasselt | 0:b40341017545 | 7 | // Reads the input buffer and notifies when a new message is ready |
katrijnverhasselt | 0:b40341017545 | 8 | class Reader { |
katrijnverhasselt | 0:b40341017545 | 9 | |
katrijnverhasselt | 0:b40341017545 | 10 | private: |
katrijnverhasselt | 0:b40341017545 | 11 | // PC interaction object |
katrijnverhasselt | 0:b40341017545 | 12 | Serial pc; |
katrijnverhasselt | 0:b40341017545 | 13 | |
katrijnverhasselt | 0:b40341017545 | 14 | static const int _maxSize = 255+2; |
katrijnverhasselt | 0:b40341017545 | 15 | bool _isNewMessageReceived; // set to true if a complete message was read |
katrijnverhasselt | 0:b40341017545 | 16 | Translator::MessageInfo _lastMessageInfo; |
katrijnverhasselt | 0:b40341017545 | 17 | int8_t _lastMessage[_maxSize]; // last complete message received |
katrijnverhasselt | 0:b40341017545 | 18 | int _lastMessageSize; // size of last complete message received |
katrijnverhasselt | 0:b40341017545 | 19 | int8_t _buffer[_maxSize]; // temporary storage while reading a message |
katrijnverhasselt | 0:b40341017545 | 20 | int _bufferSize; // size of the buffer |
katrijnverhasselt | 0:b40341017545 | 21 | |
katrijnverhasselt | 0:b40341017545 | 22 | int8_t _lastChar; // last byte read |
katrijnverhasselt | 0:b40341017545 | 23 | bool _isMessageStarted; // starting character was received |
katrijnverhasselt | 0:b40341017545 | 24 | int _charsToRead; // number of characters to read |
katrijnverhasselt | 0:b40341017545 | 25 | int _index; // current number of characters read |
katrijnverhasselt | 0:b40341017545 | 26 | |
katrijnverhasselt | 0:b40341017545 | 27 | public: |
katrijnverhasselt | 0:b40341017545 | 28 | // Default constructor, attaches a callback to pc |
katrijnverhasselt | 0:b40341017545 | 29 | Reader(); |
katrijnverhasselt | 0:b40341017545 | 30 | |
katrijnverhasselt | 0:b40341017545 | 31 | // Returns true once if a complete message was read |
katrijnverhasselt | 0:b40341017545 | 32 | bool IsNewMessageReceived(); |
katrijnverhasselt | 0:b40341017545 | 33 | Translator::MessageInfo GetLastMessageInfo() const; |
katrijnverhasselt | 0:b40341017545 | 34 | // Returns the last message (without header) |
katrijnverhasselt | 0:b40341017545 | 35 | const int8_t* GetLastMessage() const; |
katrijnverhasselt | 0:b40341017545 | 36 | // Returns the size of the last message |
katrijnverhasselt | 0:b40341017545 | 37 | int GetLastMessageSize() const; |
katrijnverhasselt | 0:b40341017545 | 38 | |
katrijnverhasselt | 0:b40341017545 | 39 | private: |
katrijnverhasselt | 0:b40341017545 | 40 | // Function to be attached to pc |
katrijnverhasselt | 0:b40341017545 | 41 | void pcCallback(); |
katrijnverhasselt | 0:b40341017545 | 42 | }; |