med ble switch science
Dependencies: BLE_API SDFileSystem mbed-rtos mbed nRF51822
Diff: main.cpp
- Revision:
- 2:592364ca5fb2
- Parent:
- 1:fa329dd713be
- Child:
- 3:8fcc0e904fd6
diff -r fa329dd713be -r 592364ca5fb2 main.cpp --- a/main.cpp Mon Oct 24 11:01:50 2016 +0000 +++ b/main.cpp Tue Oct 25 05:32:14 2016 +0000 @@ -6,17 +6,19 @@ #include "rtos.h" #include <string.h> #include "SDFileSystem.h" -#define n 10//addressを保存する個数 +#define n 100//addressを保存する個数 #define m 12//addressとtimeを入れる #define GET_TIME 10000 #define SEND_TIME 20000 #define AA 0xAA +#define BB 0xBB -//DigitalOut myled3(LED3); +DigitalOut myled3(LED3); //DigitalOut myled2(LED2); Semaphore one_slot(1); + Timer timer; BLE ble; char address[n][m]={};//保存する配列を初期化 const GapScanningParams scanningParams; @@ -30,6 +32,7 @@ void onScanCallback(const Gap::AdvertisementCallbackParams_t *params){ time_t seconds = time(NULL); // JST struct tm *t = localtime(&seconds); + /*printf("%04d/%02d/%02d %02d:%02d:%02d\r\n", t->tm_year + 1900, t->tm_mon, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec); */ @@ -88,19 +91,19 @@ void test_thread(void const *name) { while (true) { - Timer timer; + //Timer timer; one_slot.wait(); if(!strcmp((const char*)name, "1")){ printf("**startAdvertising thread**\n\r"); - wt=100; + wt=2000; ble.gap().stopAdvertising(); ble.startScan(&onScanCallback); } //2 if(!strcmp((const char*)name, "2")){ printf("**send thread**\n\r"); - //myled3 = 1; + myled3 = 1; wt=SEND_TIME; //printf("%d秒間の送信\n\r",wt/1000); ble.gap().startAdvertising();//BLEの送信 @@ -108,20 +111,25 @@ //3 if(!strcmp((const char*)name, "3")){ + //timer.reset(); memset(address, 0, sizeof(address));//配列の初期化 + counter = 0; printf("**get thread**\n\r"); - //myled3 = 0; + myled3 = 0; wt=0;//central modeの際はthreadの時間は0sec - wt1=GET_TIME;//centralmode の時間はこっち + wt1 = GET_TIME;//centralmode の時間はこっち fp = fopen("/sd/test.csv", "a"); //printf("%d秒間の受信\n\r",wt1/1000); + // printf("before\n\r"); timer.start(); + //printf("after\n\r"); while(1){ //myled3 = 1; ble.waitForEvent(); if(timer.read() > wt1/1000){ //myled3 = 0; + //printf("into IF\n\r"); timer.stop(); timer.reset(); ble.stopScan(); @@ -145,7 +153,7 @@ if (error != BLE_ERROR_NONE) { return; } - const uint8_t address1[] = {AA,AA,AA,AA,AA,AA}; + const uint8_t address1[] = {BB,BB,BB,BB,BB,BB}; ble.gap().setAddress(BLEProtocol::AddressType::PUBLIC, address1); // ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME)); // ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);