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:
5:3eb81723edc5
Parent:
4:23c46eb6f0db
--- a/mbed_genie.cpp	Sun Feb 23 18:01:55 2014 +0000
+++ b/mbed_genie.cpp	Wed Jun 18 01:02:45 2014 +0000
@@ -7,6 +7,7 @@
 Mbed4dGenie::Mbed4dGenie(PinName TxPin,PinName RxPin, PinName resetpin) : _screen(TxPin,RxPin) , _reset(resetpin)
 {
     //reset the 4d screen
+    _screen.baud(115200);
     _reset = 0;
     wait(0.25);
     _reset = 1;
@@ -358,6 +359,8 @@
 // help recover from errors.
 //
 void Mbed4dGenie::_handleError (void) {
+    _genieError = ERROR_NONE;
+    
 }
 
 
@@ -424,6 +427,7 @@
                                     default:
                                     // error, bad character, no other character 
                                     // is acceptable in this state
+                                    pc.printf("error1\n\r");
                                     return GENIE_EVENT_RXCHAR;
                                     
                             }
@@ -442,6 +446,7 @@
                                             _geniePopLinkState();
                                             _genieError = ERROR_NAK;
                                             _handleError();
+                                            pc.printf("error2:NAK\n\r");
                                             return GENIE_EVENT_RXCHAR;
                             
                                     case GENIE_REPORT_EVENT:
@@ -486,6 +491,7 @@
                                     case GENIE_NAK:
                                     default:
                                     // error, bad character
+                                    pc.printf("error3\n\r");
                                     return GENIE_EVENT_RXCHAR;
     //                                break;
                             }
@@ -530,6 +536,7 @@
                             } else {
                                     _genieError = ERROR_BAD_CS;
                                     _handleError();
+                                    pc.printf("error4\n\r");
                             }        
                     }
                     rxframe_count++;