static void run() { ESP_LOGD(LOG_TAG, "MLE-15 sample starting"); BLEDevice::init(""); BLEClient* pClient = BLEDevice::createClient(); pClient->connect(BLEAddress("ff:ff:45:19:14:80")); BLERemoteService* pRemoteService = pClient->getService(serviceUUID); if (pRemoteService == nullptr) { ESP_LOGD(LOG_TAG, "Failed to find our service UUID: %s", serviceUUID.toString().c_str()); return; } BLERemoteCharacteristic* pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID); if (pRemoteCharacteristic == nullptr) { ESP_LOGD(LOG_TAG, "Failed to find our characteristic UUID: %s", charUUID.toString().c_str()); return; } pRemoteCharacteristic->writeValue((uint8_t)1); //BLEClient *pClient = BLE::createClient(); //pClient->setClientCallbacks(new MyClientCallbacks()); //pClient->connect(BLEAddress("00:00:00:00:00:00")); }
void run(void *data) { BLEAddress* pAddress = (BLEAddress *)data; BLEClient* pClient = BLEDevice::createClient(); pClient->connect(*pAddress); pClient->getServices(); BLERemoteService* pRemoteService = pClient->getService(serviceUUID); if (pRemoteService == nullptr) { ESP_LOGD(LOG_TAG, "Failed to find our service UUID: %s", serviceUUID.toString().c_str()); return; } pRemoteService->getCharacteristics(); BLERemoteCharacteristic* pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID); if (pRemoteCharacteristic == nullptr) { ESP_LOGD(LOG_TAG, "Failed to find our characteristic UUID: %s", charUUID.toString().c_str()); return; } pRemoteCharacteristic->readValue(); pRemoteCharacteristic->writeValue("123"); pRemoteCharacteristic->registerForNotify(notifyCallback); pClient->disconnect(); ESP_LOGD(LOG_TAG, "%s", pClient->toString().c_str()); ESP_LOGD(LOG_TAG, "-- End of task"); }
void run(void* data) { BLEAddress* pAddress = (BLEAddress*)data; BLEClient* pClient = BLEDevice::createClient(); BLEDevice::setEncryptionLevel(ESP_BLE_SEC_ENCRYPT); BLEDevice::setSecurityCallbacks(new MySecurity()); BLESecurity *pSecurity = new BLESecurity(); pSecurity->setKeySize(); pSecurity->setAuthenticationMode(ESP_LE_AUTH_REQ_SC_ONLY); pSecurity->setCapability(ESP_IO_CAP_IO); pSecurity->setRespEncryptionKey(ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK); // Connect to the remove BLE Server. pClient->connect(*pAddress); // Obtain a reference to the service we are after in the remote BLE server. BLERemoteService* pRemoteService = pClient->getService(serviceUUID); if (pRemoteService == nullptr) { ESP_LOGD(LOG_TAG, "Failed to find our service UUID: %s", serviceUUID.toString().c_str()); return; } // Obtain a reference to the characteristic in the service of the remote BLE server. BLERemoteCharacteristic* pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID); if (pRemoteCharacteristic == nullptr) { ESP_LOGD(LOG_TAG, "Failed to find our characteristic UUID: %s", charUUID.toString().c_str()); return; } // Read the value of the characteristic. std::string value = pRemoteCharacteristic->readValue(); ESP_LOGD(LOG_TAG, "The characteristic value was: %s", value.c_str()); while(1) { // Set a new value of the characteristic ESP_LOGD(LOG_TAG, "Setting the new value"); std::ostringstream stringStream; struct timeval tv; gettimeofday(&tv, nullptr); stringStream << "Time since boot: " << tv.tv_sec; pRemoteCharacteristic->writeValue(stringStream.str()); FreeRTOS::sleep(1000); } pClient->disconnect(); ESP_LOGD(LOG_TAG, "%s", pClient->toString().c_str()); ESP_LOGD(LOG_TAG, "-- End of task"); } // run
void run(void* data) { BLEAddress* pAddress = (BLEAddress*)data; BLEClient* pClient = BLEDevice::createClient(); // Connect to the remove BLE Server. pClient->connect(*pAddress); // Obtain a reference to the service we are after in the remote BLE server. BLERemoteService* pRemoteService = pClient->getService(serviceUUID); if (pRemoteService == nullptr) { ESP_LOGD(LOG_TAG, "Failed to find our service UUID: %s", serviceUUID.toString().c_str()); return; } // Obtain a reference to the characteristic in the service of the remote BLE server. BLERemoteCharacteristic* pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID); if (pRemoteCharacteristic == nullptr) { ESP_LOGD(LOG_TAG, "Failed to find our characteristic UUID: %s", charUUID.toString().c_str()); return; } // Read the value of the characteristic. std::string value = pRemoteCharacteristic->readValue(); ESP_LOGD(LOG_TAG, "The characteristic value was: %s", value.c_str()); while(1) { // Set a new value of the characteristic ESP_LOGD(LOG_TAG, "Setting the new value"); std::ostringstream stringStream; struct timeval tv; gettimeofday(&tv, nullptr); stringStream << "Time since boot: " << tv.tv_sec; pRemoteCharacteristic->writeValue(stringStream.str()); FreeRTOS::sleep(1000); } pClient->disconnect(); ESP_LOGD(LOG_TAG, "%s", pClient->toString().c_str()); ESP_LOGD(LOG_TAG, "-- End of task"); } // run