ble nano hid over gatt

Dependencies:   BLE_API mbed-dev nRF51822

Revision:
38:115875b8cb6c
Parent:
37:4ce71fa47fc3
Child:
39:b7889285c9ef
--- a/HIDController_BLE.cpp	Fri Aug 26 00:22:05 2016 +0000
+++ b/HIDController_BLE.cpp	Fri Aug 26 15:22:31 2016 +0000
@@ -43,12 +43,10 @@
 
 static void onDisconnect(const Gap::DisconnectionCallbackParams_t *params) {
 	controllerStatus = DISCONNECTED;
-	BLE::Instance(BLE::DEFAULT_INSTANCE).gap().startAdvertising();
 }
 
 static void onTimeout(const Gap::TimeoutSource_t source) {
 	controllerStatus = TIMEOUT;
-	BLE::Instance(BLE::DEFAULT_INSTANCE).gap().startAdvertising();
 }
 
 static void passkeyDisplayCallback(Gap::Handle_t handle, const SecurityManager::Passkey_t passkey) {
@@ -171,7 +169,7 @@
 	// printf("set advertising interval\r\n");
 	ble.gap().setAdvertisingInterval(20);
 	// printf("set advertising timeout\r\n");
-	ble.gap().setAdvertisingTimeout(180);
+	ble.gap().setAdvertisingTimeout(30);
 	
 	/*
 	ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_DIRECTED);
@@ -197,7 +195,6 @@
 
 	ble.gap().setAdvertisingPolicyMode(Gap::ADV_POLICY_IGNORE_WHITELIST);
 
-
 	// printf("advertising\r\n");
 	error = ble.gap().startAdvertising();
 	if (error != BLE_ERROR_NONE) goto return_error;
@@ -276,3 +273,19 @@
 	batteryService->updateBatteryLevel(percentage);
 }
 
+void HIDController::initializeConnection() {
+	ble_error_t error;
+	BLE& ble = BLE::Instance(BLE::DEFAULT_INSTANCE);
+	ble.gap().setAdvertisingPolicyMode(Gap::ADV_POLICY_IGNORE_WHITELIST);
+
+	// printf("advertising\r\n");
+	error = ble.gap().startAdvertising();
+	if (error != BLE_ERROR_NONE) goto return_error;
+	controllerStatus = ADVERTISING;
+	return;
+
+return_error:
+	printf("error with %d\r\n", error);
+	return;
+}
+