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:
Sun Jul 06 17:24:43 2014 +0000
Revision:
5:b1e5af95a2fb
Parent:
4:5e14a065031d
Demo application updated to work with the new 4dgenie class

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 5:b1e5af95a2fb 5 DigitalOut myledr(LED2);
chris215 4:5e14a065031d 6 /*
chris215 4:5e14a065031d 7 The Mbed4dGenie class requires 3 parameters
chris215 4:5e14a065031d 8 1 - Tx pin
chris215 4:5e14a065031d 9 2 - Rx pin
chris215 4:5e14a065031d 10 3 - Reset pin
chris215 4:5e14a065031d 11 */
chris215 5:b1e5af95a2fb 12 Mbed4dGenie lcd4d(PTE0,PTE1,PTB9);
chris215 5:b1e5af95a2fb 13
chris215 5:b1e5af95a2fb 14 void MyGenieEventHandler(void)
chris215 0:f065693322dd 15 {
chris215 5:b1e5af95a2fb 16 genieFrame TheEven;
chris215 5:b1e5af95a2fb 17 while(lcd4d.PendingFrames()){
chris215 5:b1e5af95a2fb 18 if(lcd4d.genieDequeueEvent(&TheEven))
chris215 0:f065693322dd 19 {
chris215 5:b1e5af95a2fb 20
chris215 5:b1e5af95a2fb 21 if( TheEven.reportObject.cmd == GENIE_REPORT_EVENT)
chris215 4:5e14a065031d 22 {
chris215 5:b1e5af95a2fb 23 myledr = !myledr; //toggle led when receiving a genie event frame
chris215 4:5e14a065031d 24 }
chris215 5:b1e5af95a2fb 25
chris215 5:b1e5af95a2fb 26
chris215 0:f065693322dd 27 }
chris215 5:b1e5af95a2fb 28 }
chris215 4:5e14a065031d 29 }
chris215 0:f065693322dd 30
chris215 0:f065693322dd 31 int main() {
chris215 3:4fe144f2f64e 32 int temp = 0;
chris215 5:b1e5af95a2fb 33 printf("Mbed Genie demo \n\r");
chris215 5:b1e5af95a2fb 34 lcd4d.Start();
chris215 5:b1e5af95a2fb 35 lcd4d.genieAttachEventHandler(&MyGenieEventHandler);
chris215 3:4fe144f2f64e 36 /*
chris215 5:b1e5af95a2fb 37 for example, in this loop we increment the object from 0 to 100
chris215 3:4fe144f2f64e 38 */
chris215 4:5e14a065031d 39
chris215 0:f065693322dd 40 while(1) {
chris215 3:4fe144f2f64e 41 if(temp >= 100)
chris215 3:4fe144f2f64e 42 {
chris215 5:b1e5af95a2fb 43 temp = 0;
chris215 3:4fe144f2f64e 44 }
chris215 3:4fe144f2f64e 45 else
chris215 3:4fe144f2f64e 46 {
chris215 3:4fe144f2f64e 47 temp++;
chris215 3:4fe144f2f64e 48 }
chris215 5:b1e5af95a2fb 49
chris215 5:b1e5af95a2fb 50 //printf("write:%d\n\r",lcd4d.genieWriteObject(GENIE_OBJ_LED_DIGITS,1,temp));
chris215 5:b1e5af95a2fb 51 int error;
chris215 5:b1e5af95a2fb 52 error = lcd4d.genieWriteObject(GENIE_OBJ_LED_DIGITS,1,temp);
chris215 5:b1e5af95a2fb 53 if(error != ERROR_NONE)
chris215 5:b1e5af95a2fb 54 {
chris215 5:b1e5af95a2fb 55 printf("Error is:%d\n\r",error);
chris215 5:b1e5af95a2fb 56 }
chris215 5:b1e5af95a2fb 57
chris215 0:f065693322dd 58 myled = 1;
chris215 5:b1e5af95a2fb 59 //wait(0.05);
chris215 5:b1e5af95a2fb 60 //printf("read:%d\n\r",lcd4d.genieReadObj(GENIE_OBJ_LED_DIGITS,1));
chris215 5:b1e5af95a2fb 61 error = lcd4d.genieReadObj(GENIE_OBJ_LED_DIGITS,1);
chris215 5:b1e5af95a2fb 62 if(error != ERROR_NONE)
chris215 5:b1e5af95a2fb 63 {
chris215 5:b1e5af95a2fb 64 printf("Error is:%d\n\r",error);
chris215 5:b1e5af95a2fb 65 }
chris215 0:f065693322dd 66 myled = 0;
chris215 5:b1e5af95a2fb 67 //wait(0.05);
chris215 0:f065693322dd 68 }
chris215 0:f065693322dd 69 }