Simple port of the 4d genie arduino code. Works, but needs more work to be fully functionnal as a class!

Dependencies:   mbed 4dGENIE

Committer:
chris215
Date:
Sat Dec 07 02:34:40 2013 +0000
Revision:
3:4fe144f2f64e
Parent:
2:e0f7812d4524
Child:
4:5e14a065031d
test with thermometer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chris215 0:f065693322dd 1 #include "mbed.h"
chris215 0:f065693322dd 2 #include "mbed_genie.h"
chris215 3:4fe144f2f64e 3
chris215 0:f065693322dd 4 DigitalOut myled(LED1);
chris215 0:f065693322dd 5 void myGenieEventHandler(void)
chris215 0:f065693322dd 6 {
chris215 0:f065693322dd 7 genieFrame Event;
chris215 0:f065693322dd 8 genieDequeueEvent(&Event);
chris215 0:f065693322dd 9 //event report from an object
chris215 0:f065693322dd 10 if(Event.reportObject.cmd == GENIE_REPORT_EVENT)
chris215 0:f065693322dd 11 {
chris215 3:4fe144f2f64e 12 /*
chris215 3:4fe144f2f64e 13 for example here we check if we received a message from 4dbuttons objects
chris215 3:4fe144f2f64e 14 the index is the button number, refer to the 4dgenie project to know the index
chris215 3:4fe144f2f64e 15 */
chris215 0:f065693322dd 16 if (Event.reportObject.object == GENIE_OBJ_4DBUTTON) // If the Reported Message was from a Slider
chris215 0:f065693322dd 17 {
chris215 0:f065693322dd 18 if (Event.reportObject.index == 0)
chris215 0:f065693322dd 19 {
chris215 0:f065693322dd 20 printf("Button 1 pressed!\n\r");
chris215 0:f065693322dd 21 }
chris215 0:f065693322dd 22 if (Event.reportObject.index == 1)
chris215 0:f065693322dd 23 {
chris215 0:f065693322dd 24 printf("Button 2 pressed!\n\r");
chris215 0:f065693322dd 25 }
chris215 0:f065693322dd 26 if (Event.reportObject.index == 2)
chris215 0:f065693322dd 27 {
chris215 0:f065693322dd 28 printf("Button 3 pressed!\n\r");
chris215 0:f065693322dd 29 }
chris215 0:f065693322dd 30 }
chris215 0:f065693322dd 31 }
chris215 0:f065693322dd 32 //Cmd from a reported object (happens when an object read is requested)
chris215 0:f065693322dd 33 if(Event.reportObject.cmd == GENIE_REPORT_OBJ)
chris215 0:f065693322dd 34 {
chris215 0:f065693322dd 35
chris215 0:f065693322dd 36 }
chris215 0:f065693322dd 37
chris215 0:f065693322dd 38
chris215 0:f065693322dd 39 }
chris215 0:f065693322dd 40
chris215 0:f065693322dd 41 int main() {
chris215 3:4fe144f2f64e 42 int temp = 0;
chris215 3:4fe144f2f64e 43
chris215 2:e0f7812d4524 44 SetupGenie();
chris215 2:e0f7812d4524 45 genieAttachEventHandler(&myGenieEventHandler);
chris215 2:e0f7812d4524 46 genieWriteContrast(0);
chris215 0:f065693322dd 47
chris215 1:203466f6d54f 48 printf("Mbed Genie demo \n\r");
chris215 1:203466f6d54f 49
chris215 1:203466f6d54f 50
chris215 2:e0f7812d4524 51 genieWriteContrast(1);
chris215 0:f065693322dd 52
chris215 3:4fe144f2f64e 53 /*
chris215 3:4fe144f2f64e 54 for example, in this loop we increment the thermometer0 object from 0 to 100
chris215 3:4fe144f2f64e 55 */
chris215 0:f065693322dd 56 while(1) {
chris215 3:4fe144f2f64e 57 if(temp >= 100)
chris215 3:4fe144f2f64e 58 {
chris215 3:4fe144f2f64e 59 temp = 0;
chris215 3:4fe144f2f64e 60 }
chris215 3:4fe144f2f64e 61 else
chris215 3:4fe144f2f64e 62 {
chris215 3:4fe144f2f64e 63 temp++;
chris215 3:4fe144f2f64e 64 }
chris215 3:4fe144f2f64e 65 genieWriteObject(GENIE_OBJ_THERMOMETER,0,temp);
chris215 0:f065693322dd 66 myled = 1;
chris215 3:4fe144f2f64e 67 wait(0.25);
chris215 0:f065693322dd 68 myled = 0;
chris215 3:4fe144f2f64e 69 wait(0.25);
chris215 0:f065693322dd 70 }
chris215 0:f065693322dd 71 }