BLE_periferal

Dependencies:   mbed

Committer:
sink
Date:
Tue Aug 06 03:27:08 2019 +0000
Revision:
0:f152b8894d8f
BLE;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sink 0:f152b8894d8f 1 #include "mbed.h"
sink 0:f152b8894d8f 2 #include "string"
sink 0:f152b8894d8f 3 Ticker timer;
sink 0:f152b8894d8f 4
sink 0:f152b8894d8f 5 RawSerial BT(p13, p14, 115200);
sink 0:f152b8894d8f 6 RawSerial pc(USBTX,USBRX,115200);
sink 0:f152b8894d8f 7 bool Connected = 0;
sink 0:f152b8894d8f 8 bool mldp_online = 0;
sink 0:f152b8894d8f 9 string recv_str = "";
sink 0:f152b8894d8f 10
sink 0:f152b8894d8f 11 void BT_recv(){
sink 0:f152b8894d8f 12 char bt_c = BT.getc();
sink 0:f152b8894d8f 13 if(bt_c == 'd') {
sink 0:f152b8894d8f 14 Connected = 1;
sink 0:f152b8894d8f 15 recv_str += bt_c;
sink 0:f152b8894d8f 16 }
sink 0:f152b8894d8f 17 if (Connected && bt_c == 'P') recv_str = "";
sink 0:f152b8894d8f 18 else recv_str += bt_c;
sink 0:f152b8894d8f 19 }
sink 0:f152b8894d8f 20
sink 0:f152b8894d8f 21 void set(){
sink 0:f152b8894d8f 22 wait(1.0);
sink 0:f152b8894d8f 23 BT.printf("+\r");
sink 0:f152b8894d8f 24 wait(0.5);
sink 0:f152b8894d8f 25 BT.printf("SF,1\r");
sink 0:f152b8894d8f 26 wait(0.5);
sink 0:f152b8894d8f 27 BT.printf("SR,32000000\r");
sink 0:f152b8894d8f 28 wait(0.5);
sink 0:f152b8894d8f 29 BT.printf("R,1\r");
sink 0:f152b8894d8f 30 wait(4.0);
sink 0:f152b8894d8f 31 BT.printf("A\r");
sink 0:f152b8894d8f 32 }
sink 0:f152b8894d8f 33
sink 0:f152b8894d8f 34 void timer_warikomi(){
sink 0:f152b8894d8f 35 static int time_co = 0;
sink 0:f152b8894d8f 36 if(Connected && !mldp_online && time_co > 25) {
sink 0:f152b8894d8f 37 BT.printf("I\r");
sink 0:f152b8894d8f 38 mldp_online = 1;
sink 0:f152b8894d8f 39 pc.printf(recv_str.c_str());
sink 0:f152b8894d8f 40 pc.printf("MLDP_ONLINE\n");
sink 0:f152b8894d8f 41 recv_str = "";
sink 0:f152b8894d8f 42 }
sink 0:f152b8894d8f 43 else if (Connected && mldp_online){
sink 0:f152b8894d8f 44 BT.printf("Slave_on\n");
sink 0:f152b8894d8f 45 pc.printf(recv_str.c_str());
sink 0:f152b8894d8f 46 recv_str = "";
sink 0:f152b8894d8f 47 }
sink 0:f152b8894d8f 48 else {
sink 0:f152b8894d8f 49 pc.printf(recv_str.c_str());
sink 0:f152b8894d8f 50 time_co++;
sink 0:f152b8894d8f 51 }
sink 0:f152b8894d8f 52 }
sink 0:f152b8894d8f 53
sink 0:f152b8894d8f 54 int main() {
sink 0:f152b8894d8f 55 BT.attach(&BT_recv,RawSerial::RxIrq);
sink 0:f152b8894d8f 56
sink 0:f152b8894d8f 57 set();
sink 0:f152b8894d8f 58
sink 0:f152b8894d8f 59 timer.attach(&timer_warikomi,0.02);
sink 0:f152b8894d8f 60 while(1) {
sink 0:f152b8894d8f 61 }
sink 0:f152b8894d8f 62 }