@@ -94,6 +94,8 @@ void BleKeyboard::begin(void)
94
94
NimBLEDevice::init (deviceName);
95
95
NimBLEServer* pServer = NimBLEDevice::createServer ();
96
96
pServer->setCallbacks (this );
97
+ // Set server auto-restart advertise on
98
+ pServer->advertiseOnDisconnect (true );
97
99
98
100
hid = new NimBLEHIDDevice (pServer);
99
101
inputKeyboard = hid->getInputReport (KEYBOARD_ID); // <-- input REPORTID from report map
@@ -103,10 +105,17 @@ void BleKeyboard::begin(void)
103
105
outputKeyboard->setCallbacks (this );
104
106
105
107
hid->setManufacturer (deviceManufacturer);
106
-
107
108
hid->setPnp (0x02 , vid, pid, version);
108
109
hid->setHidInfo (0x00 , 0x01 );
109
110
111
+ // Set the Generic Access Appearance value from default: [0] a.k.a. "Unknown" to HID_KEYBOARD
112
+ int RespErr = ble_svc_gap_device_appearance_set (HID_KEYBOARD);
113
+ if (RespErr == 0 ) {
114
+ ESP_LOGI (LOG_TAG, " Generic Access Appearance set to: [%d]" , HID_KEYBOARD);
115
+ } else {
116
+ ESP_LOGD (LOG_TAG, " Unable to set Generic Access Appearance value!" );
117
+ }
118
+
110
119
NimBLEDevice::setSecurityAuth (true , true , true );
111
120
112
121
hid->setReportMap ((uint8_t *)_hidReportDescriptor, sizeof (_hidReportDescriptor));
@@ -116,6 +125,7 @@ void BleKeyboard::begin(void)
116
125
117
126
advertising = pServer->getAdvertising ();
118
127
advertising->setAppearance (HID_KEYBOARD);
128
+ advertising->setName (deviceName);
119
129
advertising->addServiceUUID (hid->getHidService ()->getUUID ());
120
130
advertising->enableScanResponse (false );
121
131
advertising->start ();
0 commit comments