christian b
/
Genie_Test
Simple port of the 4d genie arduino code. Works, but needs more work to be fully functionnal as a class!
main.cpp@5:b1e5af95a2fb, 2014-07-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |