![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Simple port of the 4d genie arduino code. Works, but needs more work to be fully functionnal as a class!
main.cpp@4:5e14a065031d, 2014-02-23 (annotated)
- Committer:
- chris215
- Date:
- Sun Feb 23 17:41:02 2014 +0000
- Revision:
- 4:5e14a065031d
- Parent:
- 3:4fe144f2f64e
- Child:
- 5:b1e5af95a2fb
Mbed4dGenie example
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 | 4:5e14a065031d | 5 | /* |
chris215 | 4:5e14a065031d | 6 | The Mbed4dGenie class requires 3 parameters |
chris215 | 4:5e14a065031d | 7 | 1 - Tx pin |
chris215 | 4:5e14a065031d | 8 | 2 - Rx pin |
chris215 | 4:5e14a065031d | 9 | 3 - Reset pin |
chris215 | 4:5e14a065031d | 10 | */ |
chris215 | 4:5e14a065031d | 11 | Mbed4dGenie lcd4d(p9,p10,p11); |
chris215 | 0:f065693322dd | 12 | void myGenieEventHandler(void) |
chris215 | 0:f065693322dd | 13 | { |
chris215 | 4:5e14a065031d | 14 | myled = 1; |
chris215 | 4:5e14a065031d | 15 | genieFrame Event; |
chris215 | 4:5e14a065031d | 16 | lcd4d.genieDequeueEvent(&Event); |
chris215 | 4:5e14a065031d | 17 | //event report from an object |
chris215 | 4:5e14a065031d | 18 | if(Event.reportObject.cmd == GENIE_REPORT_EVENT) |
chris215 | 0:f065693322dd | 19 | { |
chris215 | 4:5e14a065031d | 20 | /* |
chris215 | 4:5e14a065031d | 21 | for example here we check if we received a message from 4dbuttons objects |
chris215 | 4:5e14a065031d | 22 | the index is the button number, refer to the 4dgenie project to know the index |
chris215 | 4:5e14a065031d | 23 | */ |
chris215 | 4:5e14a065031d | 24 | if (Event.reportObject.object == GENIE_OBJ_4DBUTTON) // If the Reported Message was from a Slider |
chris215 | 0:f065693322dd | 25 | { |
chris215 | 4:5e14a065031d | 26 | if (Event.reportObject.index == 0) |
chris215 | 4:5e14a065031d | 27 | { |
chris215 | 4:5e14a065031d | 28 | printf("Button 1 pressed!\n\r"); |
chris215 | 4:5e14a065031d | 29 | } |
chris215 | 4:5e14a065031d | 30 | if (Event.reportObject.index == 1) |
chris215 | 4:5e14a065031d | 31 | { |
chris215 | 4:5e14a065031d | 32 | printf("Button 2 pressed!\n\r"); |
chris215 | 4:5e14a065031d | 33 | } |
chris215 | 4:5e14a065031d | 34 | if (Event.reportObject.index == 2) |
chris215 | 4:5e14a065031d | 35 | { |
chris215 | 4:5e14a065031d | 36 | printf("Button 3 pressed!\n\r"); |
chris215 | 4:5e14a065031d | 37 | } |
chris215 | 0:f065693322dd | 38 | } |
chris215 | 4:5e14a065031d | 39 | } |
chris215 | 4:5e14a065031d | 40 | //Cmd from a reported object (happens when an object read is requested) |
chris215 | 4:5e14a065031d | 41 | if(Event.reportObject.cmd == GENIE_REPORT_OBJ) |
chris215 | 4:5e14a065031d | 42 | { |
chris215 | 4:5e14a065031d | 43 | |
chris215 | 4:5e14a065031d | 44 | } |
chris215 | 4:5e14a065031d | 45 | } |
chris215 | 0:f065693322dd | 46 | |
chris215 | 0:f065693322dd | 47 | |
chris215 | 0:f065693322dd | 48 | |
chris215 | 0:f065693322dd | 49 | int main() { |
chris215 | 3:4fe144f2f64e | 50 | int temp = 0; |
chris215 | 1:203466f6d54f | 51 | printf("Mbed Genie demo \n\r"); |
chris215 | 4:5e14a065031d | 52 | lcd4d.genieAttachEventHandler(&myGenieEventHandler); |
chris215 | 4:5e14a065031d | 53 | lcd4d.genieWriteContrast(0); |
chris215 | 4:5e14a065031d | 54 | wait(0.25); |
chris215 | 4:5e14a065031d | 55 | lcd4d.genieWriteContrast(1); |
chris215 | 0:f065693322dd | 56 | |
chris215 | 3:4fe144f2f64e | 57 | /* |
chris215 | 3:4fe144f2f64e | 58 | for example, in this loop we increment the thermometer0 object from 0 to 100 |
chris215 | 3:4fe144f2f64e | 59 | */ |
chris215 | 4:5e14a065031d | 60 | |
chris215 | 0:f065693322dd | 61 | while(1) { |
chris215 | 3:4fe144f2f64e | 62 | if(temp >= 100) |
chris215 | 3:4fe144f2f64e | 63 | { |
chris215 | 4:5e14a065031d | 64 | temp = -1; |
chris215 | 3:4fe144f2f64e | 65 | } |
chris215 | 3:4fe144f2f64e | 66 | else |
chris215 | 3:4fe144f2f64e | 67 | { |
chris215 | 3:4fe144f2f64e | 68 | temp++; |
chris215 | 3:4fe144f2f64e | 69 | } |
chris215 | 4:5e14a065031d | 70 | lcd4d.genieWriteObject(GENIE_OBJ_THERMOMETER,0,temp); |
chris215 | 0:f065693322dd | 71 | myled = 1; |
chris215 | 3:4fe144f2f64e | 72 | wait(0.25); |
chris215 | 0:f065693322dd | 73 | myled = 0; |
chris215 | 3:4fe144f2f64e | 74 | wait(0.25); |
chris215 | 0:f065693322dd | 75 | } |
chris215 | 0:f065693322dd | 76 | } |