taka yamanouchi
/
mbed_BT_Slave
BLE_periferal
main.cpp@0:f152b8894d8f, 2019-08-06 (annotated)
- Committer:
- sink
- Date:
- Tue Aug 06 03:27:08 2019 +0000
- Revision:
- 0:f152b8894d8f
BLE;
Who changed what in which revision?
User | Revision | Line number | New 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 | } |