8000 Merge pull request #672 from chegewara/multi_connect · exocode/esp32-snippets@8f106d7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 8f106d7

Browse files
authored
Merge pull request nkolban#672 from chegewara/multi_connect
fix macOS HID compatibility
2 parents a916fba + bac1b24 commit 8f106d7

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

cpp_utils/BLEHIDDevice.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,14 @@ void BLEHIDDevice::hidInfo(uint8_t country, uint8_t flags) {
111111
BLECharacteristic* BLEHIDDevice::inputReport(uint8_t reportID) {
112112
BLECharacteristic* inputReportCharacteristic = m_hidService->createCharacteristic((uint16_t)0x2a4d, BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_NOTIFY);
113113
BLEDescriptor* inputReportDescriptor = new BLEDescriptor(BLEUUID((uint16_t)0x2908));
114+
BLE2902* p2902 = new BLE2902();
115+
inputReportCharacteristic->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
116+
inputReportDescriptor->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
117+
p2902->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
114118

115119
uint8_t desc1_val[] = {reportID, 0x01};
116120
inputReportDescriptor->setValue((uint8_t*)desc1_val, 2);
117-
inputReportCharacteristic->addDescriptor(new BLE2902());
121+
inputReportCharacteristic->addDescriptor(p2902);
118122
inputReportCharacteristic->addDescriptor(inputReportDescriptor);
119123

120124
return inputReportCharacteristic;
@@ -128,6 +132,8 @@ BLECharacteristic* BLEHIDDevice::inputReport(uint8_t reportID) {
128132
BLECharacteristic* BLEHIDDevice::outputReport(uint8_t reportID) {
129133
BLECharacteristic* outputReportCharacteristic = m_hidService->createCharacteristic((uint16_t)0x2a4d, BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE | BLECharacteristic::PROPERTY_WRITE_NR);
130134
BLEDescriptor* outputReportDescriptor = new BLEDescriptor(BLEUUID((uint16_t)0x2908));
135+
outputReportCharacteristic->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
136+
outputReportDescriptor->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
131137

132138
uint8_t desc1_val[] = {reportID, 0x02};
133139
outputReportDescriptor->setValue((uint8_t*)desc1_val, 2);
@@ -144,6 +150,8 @@ BLECharacteristic* BLEHIDDevice::outputReport(uint8_t reportID) {
144150
BLECharacteristic* BLEHIDDevice::featureReport(uint8_t reportID) {
145151
BLECharacteristic* featureReportCharacteristic = m_hidService->createCharacteristic((uint16_t)0x2a4d, BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE);
146152
BLEDescriptor* featureReportDescriptor = new BLEDescriptor(BLEUUID((uint16_t)0x2908));
153+
featureReportCharacteristic->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
154+
featureReportDescriptor->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
147155

148156
uint8_t desc1_val[] = {reportID, 0x03};
149157
featureReportDescriptor->setValue((uint8_t*)desc1_val, 2);

0 commit comments

Comments
 (0)
0