Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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.
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(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);
}
}