Ahmed Masud Chowdhury
/
bluetooth_lab
test desc
main.cpp@0:5e7defce627a, 2020-03-29 (annotated)
- Committer:
- amasudch
- Date:
- Sun Mar 29 22:22:11 2020 +0000
- Revision:
- 0:5e7defce627a
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
amasudch | 0:5e7defce627a | 1 | #include <stdio.h> |
amasudch | 0:5e7defce627a | 2 | #include <string.h> |
amasudch | 0:5e7defce627a | 3 | #include "mbed.h" |
amasudch | 0:5e7defce627a | 4 | |
amasudch | 0:5e7defce627a | 5 | //Colours for printf |
amasudch | 0:5e7defce627a | 6 | #define cyan "\033[0;36m" /* 0 -> normal; 36 -> cyan */ |
amasudch | 0:5e7defce627a | 7 | #define green "\033[4;32m" /*4 -> underline ; 32 -> green */ |
amasudch | 0:5e7defce627a | 8 | #define blue "\033[9;34m" /*9 -> strike ; 34 -> blue */ |
amasudch | 0:5e7defce627a | 9 | #define KWHT "\x1B[37m" |
amasudch | 0:5e7defce627a | 10 | #define none "\033[0m" /* to flush the previous property */ |
amasudch | 0:5e7defce627a | 11 | |
amasudch | 0:5e7defce627a | 12 | //IO declarations |
amasudch | 0:5e7defce627a | 13 | Serial pc(USBTX, USBRX); //PC UART |
amasudch | 0:5e7defce627a | 14 | //DigitalOut led1(LED1); |
amasudch | 0:5e7defce627a | 15 | DigitalOut GREEN(LED2); //Input Mode |
amasudch | 0:5e7defce627a | 16 | DigitalOut BLUE(LED3); //output mode |
amasudch | 0:5e7defce627a | 17 | DigitalIn sw2(SW2); //INPUT MODE SELECT |
amasudch | 0:5e7defce627a | 18 | DigitalIn sw3(SW3); //Output mode select |
amasudch | 0:5e7defce627a | 19 | |
amasudch | 0:5e7defce627a | 20 | //Bluetooth module declaration |
amasudch | 0:5e7defce627a | 21 | Serial HC06(PTC15, PTC14); //BT TX, RX |
amasudch | 0:5e7defce627a | 22 | char snd[512], rcv[1000]; //send and receive buffer |
amasudch | 0:5e7defce627a | 23 | |
amasudch | 0:5e7defce627a | 24 | int main() |
amasudch | 0:5e7defce627a | 25 | { |
amasudch | 0:5e7defce627a | 26 | |
amasudch | 0:5e7defce627a | 27 | GREEN=BLUE=1; //LEDs are off |
amasudch | 0:5e7defce627a | 28 | int mode=0; //Mode 0 for android-to-k64f, 1 for k64f-to-android |
amasudch | 0:5e7defce627a | 29 | int timer=0; //Timer for entering the default android-to-k64f |
amasudch | 0:5e7defce627a | 30 | |
amasudch | 0:5e7defce627a | 31 | //default settings |
amasudch | 0:5e7defce627a | 32 | HC06.printf("Welcome to the ECE embedded lab\n" |
amasudch | 0:5e7defce627a | 33 | "This lab is intended to create a communication link between embedded system and android device over bluetooth"); |
amasudch | 0:5e7defce627a | 34 | |
amasudch | 0:5e7defce627a | 35 | printf("%swelcome to the ece embedded lab\n" |
amasudch | 0:5e7defce627a | 36 | "This lab is intended to create a communication link between embedded system and android device over bluetooth" |
amasudch | 0:5e7defce627a | 37 | "please make sure that you have the application installed and running on your android device" |
amasudch | 0:5e7defce627a | 38 | "be sure that the bluetooth and location sensor is enabled\n\n\n", cyan); |
amasudch | 0:5e7defce627a | 39 | |
amasudch | 0:5e7defce627a | 40 | HC06.printf("Hold down SW2 (Blue LED) for 3 seconds to choose k64f-to-android mode or SW3(Green LED) FOR Android-to-k64\n"); |
amasudch | 0:5e7defce627a | 41 | printf("%sHold down SW2 (Blue LED) for k64f-to-android mode or""SW3(Green LED) for Android-to-k64\n\n\n", KWHT); |
amasudch | 0:5e7defce627a | 42 | HC06.printf("The default mode (Android-to-K64f mode) will be selected automatically in 15 seconds\n"); |
amasudch | 0:5e7defce627a | 43 | printf("%sThe default mode (android-to-k64f mode) will be selected automatically in 15 seconds\n\n\n", none); |
amasudch | 0:5e7defce627a | 44 | |
amasudch | 0:5e7defce627a | 45 | while(1) { |
amasudch | 0:5e7defce627a | 46 | wait(2); |
amasudch | 0:5e7defce627a | 47 | timer+=1; |
amasudch | 0:5e7defce627a | 48 | if (timer==8) break; |
amasudch | 0:5e7defce627a | 49 | |
amasudch | 0:5e7defce627a | 50 | if(!sw3) { |
amasudch | 0:5e7defce627a | 51 | HC06.printf("\nAndroid-to-k64 mode chosen\n"); |
amasudch | 0:5e7defce627a | 52 | printf("\nAndroid-to-k64f mode chosen\n"); |
amasudch | 0:5e7defce627a | 53 | GREEN=0; |
amasudch | 0:5e7defce627a | 54 | |
amasudch | 0:5e7defce627a | 55 | break; |
amasudch | 0:5e7defce627a | 56 | } |
amasudch | 0:5e7defce627a | 57 | if (!sw2) { |
amasudch | 0:5e7defce627a | 58 | BLUE=0; |
amasudch | 0:5e7defce627a | 59 | mode=1; |
amasudch | 0:5e7defce627a | 60 | HC06.printf("\nK64F-TO android mode chosen\n"); |
amasudch | 0:5e7defce627a | 61 | printf("\nk64f-to-android mode chosen\n"); |
amasudch | 0:5e7defce627a | 62 | |
amasudch | 0:5e7defce627a | 63 | break; |
amasudch | 0:5e7defce627a | 64 | } |
amasudch | 0:5e7defce627a | 65 | } |
amasudch | 0:5e7defce627a | 66 | |
amasudch | 0:5e7defce627a | 67 | while(1) { |
amasudch | 0:5e7defce627a | 68 | while(mode==0) { |
amasudch | 0:5e7defce627a | 69 | HC06.gets(rcv,1000); |
amasudch | 0:5e7defce627a | 70 | //HC06.scanf("%s",rcv); |
amasudch | 0:5e7defce627a | 71 | if (strstr(rcv,"mode=1")!=NULL) { |
amasudch | 0:5e7defce627a | 72 | mode=1; |
amasudch | 0:5e7defce627a | 73 | printf("Mode is changed to K64f-to-Android mode\n"); |
amasudch | 0:5e7defce627a | 74 | puts(rcv); |
amasudch | 0:5e7defce627a | 75 | |
amasudch | 0:5e7defce627a | 76 | } |
amasudch | 0:5e7defce627a | 77 | while (mode==1) { |
amasudch | 0:5e7defce627a | 78 | pc.scanf("%s",snd); |
amasudch | 0:5e7defce627a | 79 | |
amasudch | 0:5e7defce627a | 80 | //pc.gets(snd,510); |
amasudch | 0:5e7defce627a | 81 | |
amasudch | 0:5e7defce627a | 82 | if(strstr(snd,"mode=0")!=NULL) mode=0; |
amasudch | 0:5e7defce627a | 83 | { |
amasudch | 0:5e7defce627a | 84 | mode=0; |
amasudch | 0:5e7defce627a | 85 | printf("Mode is changed to Android-to-K64f mode\n"); |
amasudch | 0:5e7defce627a | 86 | } |
amasudch | 0:5e7defce627a | 87 | pc.printf("%s sent\n",snd); |
amasudch | 0:5e7defce627a | 88 | HC06.printf("%s\n",snd); |
amasudch | 0:5e7defce627a | 89 | } |
amasudch | 0:5e7defce627a | 90 | |
amasudch | 0:5e7defce627a | 91 | } |
amasudch | 0:5e7defce627a | 92 | } |
amasudch | 0:5e7defce627a | 93 | } |