![](/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
Writer.cpp
- Committer:
- katrijnverhasselt
- Date:
- 2016-05-18
- Revision:
- 1:8ba039abd9b8
- Parent:
- 0:b40341017545
File content as of revision 1:8ba039abd9b8:
#include "Writer.h" bool Writer::Send(const Translator::MessageInfo message, int dacValue) { // Copy msg to adapt it Translator::MessageInfo msg = message; // Check Read/Write/Option switch (msg.CommandType) { case Translator::MessageInfo::READ: case Translator::MessageInfo::WRITE: // Copy dacValue in msg msg.DacValue = dacValue; // Translate to raw message int8_t* rawMsg; int rawMsgSize; if (!Translator::Translate(msg, &rawMsg, &rawMsgSize)) return false; // <Zie Translator.h voor de eerste uitleg. Dit is het andere voorbeeld. // Hier wordt rawMsg gegeven zonder een grootte. De functie printf zal nu // simpelweg alle karakters uitlezen en stoppen wanneer het '\0' tegenkomt. // Het werkt dus ook naar behoren omdat Translator::Translate dit karakter // erbij zet.> // Send it printf("%s", rawMsg); break; case Translator::MessageInfo::OPTION: // Not yet implemented SendError(msg); break; default: return false; } return true; } bool Writer::SendError(const Translator::MessageInfo message) { // Copy msg to adapt it Translator::MessageInfo msg = message; msg.CommandType = Translator::MessageInfo::ERROR; // Translate to raw message int rawMsgSize; int8_t* rawMsg; if (!Translator::Translate(msg, &rawMsg, &rawMsgSize)) return false; // Send it printf("%s", rawMsg); return true; }