Mbed 4dGenie class

Dependents:   Genie_Test 039847382-S3_DS1621_and_LCD_V1

This is a work in progress.

4dGenie class to use with 4dLCD screens that are using the genie environment.

There are still some rare occasions where the 4dLCD might crash, for now i have no solution to this except doing a reset of the 4dLCD.

Please make sure to have the most up to date PmmC loaded on the screen.

usage example :

Mbed4dGenie test program

#include "mbed.h"
#include "mbed_genie.h"

DigitalOut myled(LED1);
/*
    The Mbed4dGenie class requires 3 parameters
    1 - Tx pin
    2 - Rx pin
    3 - Reset pin
*/
Mbed4dGenie lcd4d(PTE0,PTE1,PTB9);



int main() {
    int temp = 0;
printf("Mbed Genie demo \n\r");
lcd4d.Start();


 /*
 for example, in this loop we increment the thermometer0 object from 0 to 100
 */
 
    while(1) {
        if(temp >= 100)
        {
            temp = -1;
        }
        else
        {
            temp++;
        }

        lcd4d.genieWriteObject(GENIE_OBJ_LED_DIGITS,1,temp);

        myled = 1;
        wait(0.05);
        myled = 0;
        wait(0.05);
    }
}
Revision:
9:b74deaac80f9
Parent:
8:b5ba0df2d0db
Child:
10:4d9f1be4a901
--- a/mbed_genie.cpp	Sun Jul 06 17:22:32 2014 +0000
+++ b/mbed_genie.cpp	Tue Jul 08 15:52:26 2014 +0000
@@ -28,6 +28,10 @@
     do
     {
         c = _screen.getc();
+        if(_t.read_ms() >= RxMaxTimeout && state == CommInProgress)
+        {
+            Reset();
+        }
         ManageReceiveData(c);
     }
     while(_screen.readable());
@@ -151,7 +155,7 @@
         
     //Here we dont wiat for a typical answer
     //The screen will respond with an NACK if the command was not understood, otherwise it will send a report object frame    
-    return  WaitForReadAnswer();
+    return  0;//WaitForReadAnswer();
 }
 void Mbed4dGenie::writec(char data)
 {
@@ -192,8 +196,9 @@
         LastResponse = NO_RESPONSE;
         return ERROR_NAK;
     }
-    else if(LastResponse >= timeout) //check if we timed out while waiting for response
+    else if(_t.read_ms() >= timeout) //check if we timed out while waiting for response
     {   
+    
         LastResponse = NO_RESPONSE;
         return ERROR_TIMEOUT;
     }
@@ -217,8 +222,9 @@
         LastResponse = NO_RESPONSE;
         return ERROR_NAK;
     }
-    else if(LastResponse >= timeout)
+    else if(_t.read_ms() >= timeout)
     {   
+        printf("Current timer:%d ; timeout:%d\n\r",_t.read_ms(),timeout);
         LastResponse = NO_RESPONSE;
         return ERROR_TIMEOUT;
     }