A short test program for all things m3pi and BtBee.
Dependencies: btbee m3pi_ng mbed
Fork of m3pi_btTest by
main.cpp@6:19373be8bfe9, 2014-05-15 (annotated)
- Committer:
- ngoldin
- Date:
- Thu May 15 08:46:40 2014 +0000
- Revision:
- 6:19373be8bfe9
- Parent:
- 5:2e5fd80518c5
dont know when last commit was. for safety.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ngoldin | 0:546e224d2f88 | 1 | #include "mbed.h" |
ngoldin | 1:c1845f088b5d | 2 | #include "m3pi_ng.h" |
ngoldin | 3:545c4c50dc0f | 3 | #include "btbee.h" |
ngoldin | 1:c1845f088b5d | 4 | |
ngoldin | 1:c1845f088b5d | 5 | m3pi m3pi; |
ngoldin | 3:545c4c50dc0f | 6 | btbee btbee; |
ngoldin | 0:546e224d2f88 | 7 | |
ngoldin | 1:c1845f088b5d | 8 | DigitalOut mbed_led[] = {(LED1), (LED2),(LED3), (LED4)}; |
ngoldin | 1:c1845f088b5d | 9 | DigitalOut m3pi_led[] = {(p13), (p14), (p15), (p16), (p17), (p18), (p19), (p20)}; |
ngoldin | 1:c1845f088b5d | 10 | DigitalIn m3pi_pb(p21); |
ngoldin | 4:31939848b5ba | 11 | |
ngoldin | 1:c1845f088b5d | 12 | Timer t1; |
ngoldin | 2:35d1143053d3 | 13 | |
ngoldin | 6:19373be8bfe9 | 14 | //LocalFileSystem local("local"); |
ngoldin | 6:19373be8bfe9 | 15 | |
ngoldin | 1:c1845f088b5d | 16 | int main() |
ngoldin | 1:c1845f088b5d | 17 | { |
ngoldin | 2:35d1143053d3 | 18 | // initialization stuff //////////////////////////////////////////////////////////////////////////////////////////////////// |
ngoldin | 1:c1845f088b5d | 19 | m3pi.locate(0,1); |
ngoldin | 3:545c4c50dc0f | 20 | btbee.reset(); |
ngoldin | 2:35d1143053d3 | 21 | for (int i = 0; i <4; i++) { |
ngoldin | 2:35d1143053d3 | 22 | mbed_led[i] = 0; |
ngoldin | 2:35d1143053d3 | 23 | } |
ngoldin | 2:35d1143053d3 | 24 | for (int i = 0; i <8; i++) { |
ngoldin | 2:35d1143053d3 | 25 | m3pi_led[i]=0; |
ngoldin | 2:35d1143053d3 | 26 | } |
ngoldin | 1:c1845f088b5d | 27 | m3pi_pb.mode(PullUp); // expected would be 1 when pb is pressed, 0 when not, opposite is the case |
ngoldin | 5:2e5fd80518c5 | 28 | |
ngoldin | 3:545c4c50dc0f | 29 | // NOTE on baud rate: the baud rate to be used has to be set on the btBee beforehand. this uses the at mode which is activated by hardware switch. |
ngoldin | 3:545c4c50dc0f | 30 | // only use the hw switch while powered off. use the configure_btbee program to write to it. |
ngoldin | 5:2e5fd80518c5 | 31 | //btbee.baud(9600); // this is BtBee default for regular commands |
ngoldin | 5:2e5fd80518c5 | 32 | //btbee.baud(115200); // this is BtBee regular command set baud rate |
ngoldin | 5:2e5fd80518c5 | 33 | //btbee.format(); // the default should be fine |
ngoldin | 3:545c4c50dc0f | 34 | |
ngoldin | 3:545c4c50dc0f | 35 | // end initialization stuff //////////////////////////////////////////////////////////////////////////////////////////////// |
ngoldin | 2:35d1143053d3 | 36 | |
ngoldin | 4:31939848b5ba | 37 | // let me play you the song of my people... |
ngoldin | 1:c1845f088b5d | 38 | // V=volume max is 15::O5=octave5::G16=G16th note::R24=rest24th note...a rest is needed between any two note that are the same |
ngoldin | 1:c1845f088b5d | 39 | //char dixie[]= {'V','1','5','O','5','G','1','6','E','1','6','C','8','R','2','4','C','8','R','2','4','C','1','6','D','1','6','E','1','6','F','1','6','G','8','R','2','4','G','8','R','2','4','G','8','E','1','6'}; |
ngoldin | 1:c1845f088b5d | 40 | //the number of characters in the array |
ngoldin | 1:c1845f088b5d | 41 | //int len=49; |
ngoldin | 1:c1845f088b5d | 42 | //m3pi.playtune(dixie,len); |
ngoldin | 5:2e5fd80518c5 | 43 | m3pi.locate(0,0); |
ngoldin | 5:2e5fd80518c5 | 44 | m3pi.printf("B:%0.3f%V",m3pi.battery()); |
ngoldin | 6:19373be8bfe9 | 45 | wait(0.3); |
ngoldin | 6:19373be8bfe9 | 46 | |
ngoldin | 6:19373be8bfe9 | 47 | /* m3pi.locate(0,0); |
ngoldin | 6:19373be8bfe9 | 48 | m3pi.printf("%s","fileTest"); |
ngoldin | 6:19373be8bfe9 | 49 | |
ngoldin | 6:19373be8bfe9 | 50 | FILE *fp = fopen("/local/out.txt", "w"); // Open "out.txt" on the local file system for writing |
ngoldin | 6:19373be8bfe9 | 51 | fprintf(fp, "Hello World!"); |
ngoldin | 6:19373be8bfe9 | 52 | fclose(fp); |
ngoldin | 6:19373be8bfe9 | 53 | |
ngoldin | 6:19373be8bfe9 | 54 | m3pi.locate(0,1); |
ngoldin | 6:19373be8bfe9 | 55 | m3pi.printf("%s","doneTest"); |
ngoldin | 6:19373be8bfe9 | 56 | |
ngoldin | 6:19373be8bfe9 | 57 | */ |
ngoldin | 6:19373be8bfe9 | 58 | m3pi.locate(0,0); |
ngoldin | 6:19373be8bfe9 | 59 | m3pi.printf("%s","btTest"); |
ngoldin | 6:19373be8bfe9 | 60 | m3pi.locate(0,1); |
ngoldin | 6:19373be8bfe9 | 61 | m3pi.printf("%s","PBonLNK"); |
ngoldin | 1:c1845f088b5d | 62 | |
ngoldin | 4:31939848b5ba | 63 | // wait for the user to push P21, should be pressed when the bt link is established (green led "link") |
ngoldin | 3:545c4c50dc0f | 64 | while(m3pi_pb) { |
ngoldin | 3:545c4c50dc0f | 65 | m3pi_led[0]=!m3pi_led[0]; |
ngoldin | 3:545c4c50dc0f | 66 | wait(0.1); |
ngoldin | 1:c1845f088b5d | 67 | } |
ngoldin | 2:35d1143053d3 | 68 | |
ngoldin | 4:31939848b5ba | 69 | int iline=1; |
ngoldin | 4:31939848b5ba | 70 | int write = 1; // this could also be a boolean |
ngoldin | 4:31939848b5ba | 71 | char arr_read[30]; // this should be long enough to store any reply coming in over bt. |
ngoldin | 4:31939848b5ba | 72 | int chars_read; // number of chars read in a bt reply |
ngoldin | 4:31939848b5ba | 73 | |
ngoldin | 1:c1845f088b5d | 74 | while (true) { |
ngoldin | 4:31939848b5ba | 75 | |
ngoldin | 4:31939848b5ba | 76 | // this writes "Line 001\n" to "Line 005\n" and then "end\n" to the btbee |
ngoldin | 3:545c4c50dc0f | 77 | if (btbee.writeable() && write ) { |
ngoldin | 4:31939848b5ba | 78 | if (iline==6) { |
ngoldin | 3:545c4c50dc0f | 79 | btbee.printf("end\n"); |
ngoldin | 3:545c4c50dc0f | 80 | write=1; |
ngoldin | 6:19373be8bfe9 | 81 | iline=7; |
ngoldin | 4:31939848b5ba | 82 | }//if |
ngoldin | 3:545c4c50dc0f | 83 | else { |
ngoldin | 6:19373be8bfe9 | 84 | if (iline <6){ |
ngoldin | 4:31939848b5ba | 85 | btbee.printf("Line %0.3d \n",iline); |
ngoldin | 3:545c4c50dc0f | 86 | m3pi_led[0]=0; |
ngoldin | 3:545c4c50dc0f | 87 | m3pi.locate(0,0); |
ngoldin | 4:31939848b5ba | 88 | m3pi.printf("Sent %0.3d",iline); |
ngoldin | 4:31939848b5ba | 89 | iline++; |
ngoldin | 6:19373be8bfe9 | 90 | } |
ngoldin | 4:31939848b5ba | 91 | }//else |
ngoldin | 4:31939848b5ba | 92 | }//if_write |
ngoldin | 4:31939848b5ba | 93 | |
ngoldin | 4:31939848b5ba | 94 | // check for answers after each write /not write |
ngoldin | 1:c1845f088b5d | 95 | while (btbee.readable()) { |
ngoldin | 3:545c4c50dc0f | 96 | m3pi_led[7]=1; |
ngoldin | 3:545c4c50dc0f | 97 | btbee.read_all(arr_read, 30, &chars_read ); |
ngoldin | 3:545c4c50dc0f | 98 | m3pi_led[6]=1; |
ngoldin | 3:545c4c50dc0f | 99 | m3pi.locate(0,1); |
ngoldin | 3:545c4c50dc0f | 100 | m3pi.print(arr_read,chars_read); |
ngoldin | 3:545c4c50dc0f | 101 | m3pi_led[5]=1; |
ngoldin | 4:31939848b5ba | 102 | }//while_readable |
ngoldin | 3:545c4c50dc0f | 103 | wait(0.1); |
ngoldin | 4:31939848b5ba | 104 | }//while true |
ngoldin | 4:31939848b5ba | 105 | |
ngoldin | 4:31939848b5ba | 106 | }//main |
ngoldin | 1:c1845f088b5d | 107 | |
ngoldin | 1:c1845f088b5d | 108 | |
ngoldin | 1:c1845f088b5d | 109 |