A short test program for all things m3pi and BtBee.

Dependencies:   btbee m3pi_ng mbed

Fork of m3pi_btTest by Nikolas Goldin

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?

UserRevisionLine numberNew 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