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

Dependencies:   DevInterfaces I2Cinterfaces MCP4725 mbed

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