![](/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
Diff: Writer.cpp
- Revision:
- 0:b40341017545
diff -r 000000000000 -r b40341017545 Writer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Writer.cpp Wed May 18 11:22:41 2016 +0000 @@ -0,0 +1,50 @@ +#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; +} \ No newline at end of file