diff --git a/epicardium/ble/ble_main.c b/epicardium/ble/ble_main.c index bd2f9948201243e63e6a6e48228640c0b58b6154..76aba4885722889771e4e2aa030e3fc7a71342c1 100644 --- a/epicardium/ble/ble_main.c +++ b/epicardium/ble/ble_main.c @@ -185,6 +185,29 @@ static const uint8_t bleAdvDataDisc[] = DM_ADV_TYPE_128_UUID_PART, CARD10_UUID_SUFFIX, 0x0, CARD10_UUID_PREFIX, + 2, /*! length */ + DM_ADV_TYPE_TX_POWER, /*! AD type */ + 0, /*! tx power */ +}; + +/*! advertising data, discoverable mode with HID service*/ +static const uint8_t bleAdvDataDiscHID[] = +{ + /*! flags */ + 2, /*! length */ + DM_ADV_TYPE_FLAGS, /*! AD type */ + DM_FLAG_LE_LIMITED_DISC | /*! flags */ + DM_FLAG_LE_BREDR_NOT_SUP, + + 3, + DM_ADV_TYPE_APPEARANCE, + UINT16_TO_BYTES(CH_APPEAR_WATCH), + + /*! service UUID list */ + 17, + DM_ADV_TYPE_128_UUID_PART, + CARD10_UUID_SUFFIX, 0x0, CARD10_UUID_PREFIX, + 3, /*! length */ DM_ADV_TYPE_16_UUID_PART, /*! AD type */ UINT16_TO_BYTES(ATT_UUID_HID_SERVICE) @@ -514,7 +537,12 @@ static void bleSetup(bleMsg_t *pMsg) } /* set advertising and scan response data for discoverable mode */ - AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(bleAdvDataDisc), (uint8_t *) bleAdvDataDisc); + if(config_get_boolean_with_default("ble_hid_enable", false)) { + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(bleAdvDataDiscHID), (uint8_t *) bleAdvDataDiscHID); + } else { + AppAdvSetData(APP_ADV_DATA_DISCOVERABLE, sizeof(bleAdvDataDisc), (uint8_t *) bleAdvDataDisc); + } + AppAdvSetData(APP_SCAN_DATA_DISCOVERABLE, sizeof(bleScanDataDisc), (uint8_t *) bleScanDataDisc); /* set advertising and scan response data for connectable mode */