ble nano hid over gatt
Dependencies: BLE_API mbed-dev nRF51822
ScanParametersService.h
00001 #ifndef __BLE_SCAN_PARAMETERS_SERVICE_H__ 00002 #define __BLE_SCAN_PARAMETERS_SERVICE_H__ 00003 00004 #include "ble/BLE.h" 00005 00006 #pragma pack(push, 1) 00007 typedef struct { 00008 uint16_t LE_Scan_Interval; 00009 uint16_t LE_Scan_Window; 00010 } ScanIntervalWindow_t; 00011 #pragma pack(pop) 00012 00013 class ScanParametersService { 00014 public: 00015 ScanParametersService( 00016 BLE &_ble 00017 ) : 00018 ble(_ble), 00019 scanIntervalWindowCharacteristic( 00020 GattCharacteristic::UUID_SCAN_INTERVAL_WINDOW_CHAR, 00021 (uint8_t*)&scanIntervalWindowData, 00022 sizeof(scanIntervalWindowData), 00023 sizeof(scanIntervalWindowData), 00024 GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE_WITHOUT_RESPONSE 00025 ), 00026 scanRefreshCharacteristic( 00027 GattCharacteristic::UUID_SCAN_REFRESH_CHAR, 00028 &scanRefreshData, 00029 sizeof(scanIntervalWindowData), 00030 sizeof(scanIntervalWindowData), 00031 GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY 00032 ) 00033 { 00034 GattCharacteristic *charTable[] = { 00035 &scanIntervalWindowCharacteristic, 00036 &scanRefreshCharacteristic 00037 }; 00038 00039 GattService scanParametersService( 00040 GattService::UUID_SCAN_PARAMETERS_SERVICE, 00041 charTable, 00042 sizeof(charTable) / sizeof(GattCharacteristic *) 00043 ); 00044 00045 ble.addService(scanParametersService); 00046 ble.gattServer().onDataWritten(this, &ScanParametersService::onDataWritten); 00047 } 00048 00049 protected: 00050 BLE& ble; 00051 00052 ScanIntervalWindow_t scanIntervalWindowData; 00053 uint8_t scanRefreshData; 00054 00055 GattCharacteristic scanIntervalWindowCharacteristic; 00056 GattCharacteristic scanRefreshCharacteristic; 00057 00058 void onDataWritten(const GattWriteCallbackParams *params) { 00059 if (params->handle == scanIntervalWindowCharacteristic.getValueHandle()) { 00060 DEBUG_PRINTF_BLE_INTERRUPT("onDataWritten: scanIntervalWindow %d bytes\r\n", params->len); 00061 } 00062 } 00063 }; 00064 00065 #endif
Generated on Tue Jul 12 2022 14:16:48 by 1.7.2