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

Dependencies:   DevInterfaces I2Cinterfaces MCP4725 mbed

Committer:
katrijnverhasselt
Date:
Wed Jun 15 10:53:32 2016 +0000
Revision:
2:2330ad8b1baa
Parent:
0:b40341017545
Finished programming. This program now simply extract only the info it needs and sends all of it immediately through its I2C port.

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 2:2330ad8b1baa 14 static const int _maxSize = 256; // Limitation of MCP4725, NOT as described according to protocol
katrijnverhasselt 2:2330ad8b1baa 15 bool _isNewMessageReceived; // True if a complete message was read
katrijnverhasselt 2:2330ad8b1baa 16 Translator::MessageInfo _lastMessageInfo; // Contains formatted message info
katrijnverhasselt 2:2330ad8b1baa 17 char _lastMessage[_maxSize];// last complete message received
katrijnverhasselt 0:b40341017545 18 int _lastMessageSize; // size of last complete message received
katrijnverhasselt 2:2330ad8b1baa 19 char _buffer[_maxSize]; // temporary storage while reading a message
katrijnverhasselt 2:2330ad8b1baa 20 int _bufferSize; // size of the buffer
katrijnverhasselt 0:b40341017545 21
katrijnverhasselt 2:2330ad8b1baa 22 char _lastChar; // last byte read
katrijnverhasselt 0:b40341017545 23 int _index; // current number of characters read
katrijnverhasselt 0:b40341017545 24
katrijnverhasselt 0:b40341017545 25 public:
katrijnverhasselt 0:b40341017545 26 // Default constructor, attaches a callback to pc
katrijnverhasselt 0:b40341017545 27 Reader();
katrijnverhasselt 0:b40341017545 28
katrijnverhasselt 2:2330ad8b1baa 29 // Returns true only once when a complete message was read
katrijnverhasselt 0:b40341017545 30 bool IsNewMessageReceived();
katrijnverhasselt 0:b40341017545 31 Translator::MessageInfo GetLastMessageInfo() const;
katrijnverhasselt 0:b40341017545 32 // Returns the last message (without header)
katrijnverhasselt 2:2330ad8b1baa 33 const char* GetLastMessage() const;
katrijnverhasselt 0:b40341017545 34 // Returns the size of the last message
katrijnverhasselt 0:b40341017545 35 int GetLastMessageSize() const;
katrijnverhasselt 0:b40341017545 36
katrijnverhasselt 0:b40341017545 37 private:
katrijnverhasselt 0:b40341017545 38 // Function to be attached to pc
katrijnverhasselt 0:b40341017545 39 void pcCallback();
katrijnverhasselt 2:2330ad8b1baa 40 // Resets the buffer
katrijnverhasselt 2:2330ad8b1baa 41 void Reset();
katrijnverhasselt 0:b40341017545 42 };