Mbed 4dGenie class

Dependents:   Genie_Test 039847382-S3_DS1621_and_LCD_V1

You are viewing an older revision! See the latest version

Homepage

This library is a port of the arduino library made by 4d systems. It works with 4dgl screen running a genie program

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(p9,p10,p11);
void myGenieEventHandler(void) 
{
    myled = 1;
    genieFrame Event;
    lcd4d.genieDequeueEvent(&Event);
    //event report from an object
    if(Event.reportObject.cmd == GENIE_REPORT_EVENT)
    {
        /*
        for example here we check if we received a message from 4dbuttons objects
        the index is the button number, refer to the 4dgenie project to know the index
        */
        if (Event.reportObject.object == GENIE_OBJ_4DBUTTON)                // If the Reported Message was from a Slider
        {
            if (Event.reportObject.index == 0) 
            {
                 printf("Button 1 pressed!\n\r");
            }
            if (Event.reportObject.index == 1) 
            {
                printf("Button 2 pressed!\n\r");
            }
            if (Event.reportObject.index == 2) 
            {
                printf("Button 3 pressed!\n\r");
            }
        }
      }
      //Cmd from a reported object (happens when an object read is requested)
      if(Event.reportObject.cmd == GENIE_REPORT_OBJ)
      {
    
      }
}



int main() {
    int temp = 0;
printf("Mbed Genie demo \n\r");
lcd4d.genieAttachEventHandler(&myGenieEventHandler);
lcd4d.genieWriteContrast(0);
wait(0.25);
lcd4d.genieWriteContrast(1);

 /*
 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_THERMOMETER,0,temp);
        myled = 1;
        wait(0.25);
        myled = 0;
        wait(0.25);
    }
}


All wikipages