![](/media/cache/profiles/06833b73c7b85d172f55b6f38a40b094.jpg.50x50_q85.jpg)
a quick program to test the 4Dgenie library
Fork of Genie_Test by
Diff: main.cpp
- Revision:
- 5:b1e5af95a2fb
- Parent:
- 4:5e14a065031d
- Child:
- 6:120a0a3ff2e1
--- a/main.cpp Sun Feb 23 17:41:02 2014 +0000 +++ b/main.cpp Sun Jul 06 17:24:43 2014 +0000 @@ -2,75 +2,68 @@ #include "mbed_genie.h" DigitalOut myled(LED1); +DigitalOut myledr(LED2); /* The Mbed4dGenie class requires 3 parameters 1 - Tx pin 2 - Rx pin 3 - Reset pin */ -Mbed4dGenie lcd4d(p9,p10,p11); -void myGenieEventHandler(void) +Mbed4dGenie lcd4d(PTE0,PTE1,PTB9); + +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 + genieFrame TheEven; + while(lcd4d.PendingFrames()){ + if(lcd4d.genieDequeueEvent(&TheEven)) { - if (Event.reportObject.index == 0) + + if( TheEven.reportObject.cmd == GENIE_REPORT_EVENT) { - printf("Button 1 pressed!\n\r"); + myledr = !myledr; //toggle led when receiving a genie event frame } - 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); - + printf("Mbed Genie demo \n\r"); + lcd4d.Start(); + lcd4d.genieAttachEventHandler(&MyGenieEventHandler); /* - for example, in this loop we increment the thermometer0 object from 0 to 100 + for example, in this loop we increment the object from 0 to 100 */ while(1) { if(temp >= 100) { - temp = -1; + temp = 0; } else { temp++; } - lcd4d.genieWriteObject(GENIE_OBJ_THERMOMETER,0,temp); + + //printf("write:%d\n\r",lcd4d.genieWriteObject(GENIE_OBJ_LED_DIGITS,1,temp)); + int error; + error = lcd4d.genieWriteObject(GENIE_OBJ_LED_DIGITS,1,temp); + if(error != ERROR_NONE) + { + printf("Error is:%d\n\r",error); + } + myled = 1; - wait(0.25); + //wait(0.05); + //printf("read:%d\n\r",lcd4d.genieReadObj(GENIE_OBJ_LED_DIGITS,1)); + error = lcd4d.genieReadObj(GENIE_OBJ_LED_DIGITS,1); + if(error != ERROR_NONE) + { + printf("Error is:%d\n\r",error); + } myled = 0; - wait(0.25); + //wait(0.05); } }