Gets messages form the pc and translates it to I2C and back.

Dependencies:   DevInterfaces I2Cinterfaces MCP4725 mbed

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?

UserRevisionLine numberNew 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 };