A BLE HID controller implementation with communication over SPI

Dependencies:   BLE_API BLE_HID mbed nRF51822

Committer:
mrhannah
Date:
Wed Dec 13 05:34:15 2017 +0000
Revision:
0:f21dc3a04d62
Initial/(final) changes for project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mrhannah 0:f21dc3a04d62 1 /* mbed Microcontroller Library
mrhannah 0:f21dc3a04d62 2 * Copyright (c) 2015 ARM Limited
mrhannah 0:f21dc3a04d62 3 *
mrhannah 0:f21dc3a04d62 4 * Licensed under the Apache License, Version 2.0 (the "License");
mrhannah 0:f21dc3a04d62 5 * you may not use this file except in compliance with the License.
mrhannah 0:f21dc3a04d62 6 * You may obtain a copy of the License at
mrhannah 0:f21dc3a04d62 7 *
mrhannah 0:f21dc3a04d62 8 * http://www.apache.org/licenses/LICENSE-2.0
mrhannah 0:f21dc3a04d62 9 *
mrhannah 0:f21dc3a04d62 10 * Unless required by applicable law or agreed to in writing, software
mrhannah 0:f21dc3a04d62 11 * distributed under the License is distributed on an "AS IS" BASIS,
mrhannah 0:f21dc3a04d62 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mrhannah 0:f21dc3a04d62 13 * See the License for the specific language governing permissions and
mrhannah 0:f21dc3a04d62 14 * limitations under the License.
mrhannah 0:f21dc3a04d62 15 */
mrhannah 0:f21dc3a04d62 16
mrhannah 0:f21dc3a04d62 17 #ifndef HID_EXAMPLES_COMMON_H_
mrhannah 0:f21dc3a04d62 18 #define HID_EXAMPLES_COMMON_H_
mrhannah 0:f21dc3a04d62 19
mrhannah 0:f21dc3a04d62 20 /**
mrhannah 0:f21dc3a04d62 21 * Functions and configuration common to all HID demos
mrhannah 0:f21dc3a04d62 22 */
mrhannah 0:f21dc3a04d62 23
mrhannah 0:f21dc3a04d62 24 #include "ble/BLE.h"
mrhannah 0:f21dc3a04d62 25
mrhannah 0:f21dc3a04d62 26 #include "HIDServiceBase.h"
mrhannah 0:f21dc3a04d62 27
mrhannah 0:f21dc3a04d62 28 /**
mrhannah 0:f21dc3a04d62 29 * IO capabilities of the device. During development, you most likely want "JustWorks", which means
mrhannah 0:f21dc3a04d62 30 * no IO capabilities.
mrhannah 0:f21dc3a04d62 31 * It is also possible to use IO_CAPS_DISPLAY_ONLY to generate and show a pincode on the serial
mrhannah 0:f21dc3a04d62 32 * output.
mrhannah 0:f21dc3a04d62 33 */
mrhannah 0:f21dc3a04d62 34 #ifndef HID_SECURITY_IOCAPS
mrhannah 0:f21dc3a04d62 35 #define HID_SECURITY_IOCAPS (SecurityManager::IO_CAPS_NONE)
mrhannah 0:f21dc3a04d62 36 #endif
mrhannah 0:f21dc3a04d62 37
mrhannah 0:f21dc3a04d62 38 /**
mrhannah 0:f21dc3a04d62 39 * Security level. MITM disabled forces "Just Works". If you require MITM, HID_SECURITY_IOCAPS must
mrhannah 0:f21dc3a04d62 40 * be at least IO_CAPS_DISPLAY_ONLY.
mrhannah 0:f21dc3a04d62 41 */
mrhannah 0:f21dc3a04d62 42 #ifndef HID_SECURITY_REQUIRE_MITM
mrhannah 0:f21dc3a04d62 43 #define HID_SECURITY_REQUIRE_MITM false
mrhannah 0:f21dc3a04d62 44 #endif
mrhannah 0:f21dc3a04d62 45
mrhannah 0:f21dc3a04d62 46 /**
mrhannah 0:f21dc3a04d62 47 * Disable debug messages by setting NDEBUG
mrhannah 0:f21dc3a04d62 48 */
mrhannah 0:f21dc3a04d62 49 #ifndef NDEBUG
mrhannah 0:f21dc3a04d62 50 #define HID_DEBUG(...) printf(__VA_ARGS__)
mrhannah 0:f21dc3a04d62 51 #else
mrhannah 0:f21dc3a04d62 52 #define HID_DEBUG(...)
mrhannah 0:f21dc3a04d62 53 #endif
mrhannah 0:f21dc3a04d62 54
mrhannah 0:f21dc3a04d62 55 /**
mrhannah 0:f21dc3a04d62 56 * Initialize security manager: set callback functions and required security level
mrhannah 0:f21dc3a04d62 57 */
mrhannah 0:f21dc3a04d62 58 void initializeSecurity(BLE &ble);
mrhannah 0:f21dc3a04d62 59
mrhannah 0:f21dc3a04d62 60 /**
mrhannah 0:f21dc3a04d62 61 * - Initialize auxiliary services required by the HID-over-GATT Profile.
mrhannah 0:f21dc3a04d62 62 * - Initialize common Gap advertisement.
mrhannah 0:f21dc3a04d62 63 *
mrhannah 0:f21dc3a04d62 64 * Demos only have to set a custom device name and appearance, and their HID
mrhannah 0:f21dc3a04d62 65 * service.
mrhannah 0:f21dc3a04d62 66 */
mrhannah 0:f21dc3a04d62 67 void initializeHOGP(BLE &ble);
mrhannah 0:f21dc3a04d62 68
mrhannah 0:f21dc3a04d62 69 #endif /* !BLE_HID_COMMON_H_ */