Copy disabled (too large)
Download .txt
Showing preview only (51,081K chars total). Download the full file to get everything.
Repository: genokolar/nrf52-keyboard
Branch: Glab3.0
Commit: 2a4bdaf52905
Files: 2051
Total size: 48.2 MB
Directory structure:
gitextract_li59bh28/
├── .dockerignore
├── .gitattributes
├── .github/
│ └── workflows/
│ ├── Build.yml
│ └── Release.yml
├── .gitignore
├── .gitmodules
├── .travis.yml
├── .vscode/
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
├── Dockerfile
├── KeymapDownloader/
│ ├── .gitignore
│ ├── KeymapDownloader/
│ │ ├── App.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── CustomHID.cs
│ │ ├── FodyWeavers.xml
│ │ ├── FodyWeavers.xsd
│ │ ├── KeymapDownloader.csproj
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── Resources/
│ │ │ ├── Entypo-license.txt
│ │ │ ├── Icons.xaml
│ │ │ ├── IconsNonShared.xaml
│ │ │ └── WindowsIcons-license.txt
│ │ └── packages.config
│ └── KeymapDownloader.sln
├── README.md
├── SDK/
│ ├── components/
│ │ ├── ble/
│ │ │ ├── ble_advertising/
│ │ │ │ ├── ble_advertising.c
│ │ │ │ └── ble_advertising.h
│ │ │ ├── ble_link_ctx_manager/
│ │ │ │ ├── ble_link_ctx_manager.c
│ │ │ │ └── ble_link_ctx_manager.h
│ │ │ ├── ble_racp/
│ │ │ │ ├── ble_racp.c
│ │ │ │ └── ble_racp.h
│ │ │ ├── ble_services/
│ │ │ │ ├── ble_ancs_c/
│ │ │ │ │ ├── ancs_app_attr_get.c
│ │ │ │ │ ├── ancs_app_attr_get.h
│ │ │ │ │ ├── ancs_attr_parser.c
│ │ │ │ │ ├── ancs_attr_parser.h
│ │ │ │ │ ├── nrf_ble_ancs_c.c
│ │ │ │ │ └── nrf_ble_ancs_c.h
│ │ │ │ ├── ble_ans_c/
│ │ │ │ │ ├── ble_ans_c.c
│ │ │ │ │ └── ble_ans_c.h
│ │ │ │ ├── ble_bas/
│ │ │ │ │ ├── ble_bas.c
│ │ │ │ │ └── ble_bas.h
│ │ │ │ ├── ble_bas_c/
│ │ │ │ │ ├── ble_bas_c.c
│ │ │ │ │ └── ble_bas_c.h
│ │ │ │ ├── ble_bps/
│ │ │ │ │ ├── ble_bps.c
│ │ │ │ │ └── ble_bps.h
│ │ │ │ ├── ble_cscs/
│ │ │ │ │ ├── ble_cscs.c
│ │ │ │ │ ├── ble_cscs.h
│ │ │ │ │ ├── ble_sc_ctrlpt.c
│ │ │ │ │ └── ble_sc_ctrlpt.h
│ │ │ │ ├── ble_cts_c/
│ │ │ │ │ ├── ble_cts_c.c
│ │ │ │ │ └── ble_cts_c.h
│ │ │ │ ├── ble_dfu/
│ │ │ │ │ ├── ble_dfu.c
│ │ │ │ │ ├── ble_dfu.h
│ │ │ │ │ ├── ble_dfu_bonded.c
│ │ │ │ │ └── ble_dfu_unbonded.c
│ │ │ │ ├── ble_dis/
│ │ │ │ │ ├── ble_dis.c
│ │ │ │ │ └── ble_dis.h
│ │ │ │ ├── ble_dis_c/
│ │ │ │ │ ├── ble_dis_c.c
│ │ │ │ │ └── ble_dis_c.h
│ │ │ │ ├── ble_escs/
│ │ │ │ │ ├── escs_defs.h
│ │ │ │ │ ├── nrf_ble_escs.c
│ │ │ │ │ └── nrf_ble_escs.h
│ │ │ │ ├── ble_gls/
│ │ │ │ │ ├── ble_gls.c
│ │ │ │ │ ├── ble_gls.h
│ │ │ │ │ ├── ble_gls_db.c
│ │ │ │ │ └── ble_gls_db.h
│ │ │ │ ├── ble_hids/
│ │ │ │ │ ├── ble_hids.c
│ │ │ │ │ └── ble_hids.h
│ │ │ │ ├── ble_hrs/
│ │ │ │ │ ├── ble_hrs.c
│ │ │ │ │ └── ble_hrs.h
│ │ │ │ ├── ble_hrs_c/
│ │ │ │ │ ├── ble_hrs_c.c
│ │ │ │ │ └── ble_hrs_c.h
│ │ │ │ ├── ble_hts/
│ │ │ │ │ ├── ble_hts.c
│ │ │ │ │ └── ble_hts.h
│ │ │ │ ├── ble_ias/
│ │ │ │ │ ├── ble_ias.c
│ │ │ │ │ └── ble_ias.h
│ │ │ │ ├── ble_ias_c/
│ │ │ │ │ ├── ble_ias_c.c
│ │ │ │ │ └── ble_ias_c.h
│ │ │ │ ├── ble_ipsp/
│ │ │ │ │ ├── ble_ipsp.c
│ │ │ │ │ └── ble_ipsp.h
│ │ │ │ ├── ble_lbs/
│ │ │ │ │ ├── ble_lbs.c
│ │ │ │ │ └── ble_lbs.h
│ │ │ │ ├── ble_lbs_c/
│ │ │ │ │ ├── ble_lbs_c.c
│ │ │ │ │ └── ble_lbs_c.h
│ │ │ │ ├── ble_lls/
│ │ │ │ │ ├── ble_lls.c
│ │ │ │ │ └── ble_lls.h
│ │ │ │ ├── ble_nus/
│ │ │ │ │ ├── ble_nus.c
│ │ │ │ │ └── ble_nus.h
│ │ │ │ ├── ble_nus_c/
│ │ │ │ │ ├── ble_nus_c.c
│ │ │ │ │ └── ble_nus_c.h
│ │ │ │ ├── ble_rscs/
│ │ │ │ │ ├── ble_rscs.c
│ │ │ │ │ └── ble_rscs.h
│ │ │ │ ├── ble_rscs_c/
│ │ │ │ │ ├── ble_rscs_c.c
│ │ │ │ │ └── ble_rscs_c.h
│ │ │ │ ├── ble_tps/
│ │ │ │ │ ├── ble_tps.c
│ │ │ │ │ └── ble_tps.h
│ │ │ │ ├── eddystone/
│ │ │ │ │ ├── es.h
│ │ │ │ │ ├── es_adv.c
│ │ │ │ │ ├── es_adv.h
│ │ │ │ │ ├── es_adv_frame.c
│ │ │ │ │ ├── es_adv_frame.h
│ │ │ │ │ ├── es_adv_timing.c
│ │ │ │ │ ├── es_adv_timing.h
│ │ │ │ │ ├── es_adv_timing_resolver.c
│ │ │ │ │ ├── es_adv_timing_resolver.h
│ │ │ │ │ ├── es_battery_voltage.h
│ │ │ │ │ ├── es_battery_voltage_saadc.c
│ │ │ │ │ ├── es_flash.c
│ │ │ │ │ ├── es_flash.h
│ │ │ │ │ ├── es_gatts.c
│ │ │ │ │ ├── es_gatts.h
│ │ │ │ │ ├── es_gatts_read.c
│ │ │ │ │ ├── es_gatts_read.h
│ │ │ │ │ ├── es_gatts_write.c
│ │ │ │ │ ├── es_gatts_write.h
│ │ │ │ │ ├── es_security.c
│ │ │ │ │ ├── es_security.h
│ │ │ │ │ ├── es_slot.c
│ │ │ │ │ ├── es_slot.h
│ │ │ │ │ ├── es_slot_reg.c
│ │ │ │ │ ├── es_slot_reg.h
│ │ │ │ │ ├── es_stopwatch.c
│ │ │ │ │ ├── es_stopwatch.h
│ │ │ │ │ ├── es_tlm.c
│ │ │ │ │ ├── es_tlm.h
│ │ │ │ │ ├── es_util.h
│ │ │ │ │ ├── nrf_ble_es.c
│ │ │ │ │ └── nrf_ble_es.h
│ │ │ │ ├── experimental_ble_lns/
│ │ │ │ │ ├── ble_ln_common.h
│ │ │ │ │ ├── ble_ln_cp.c
│ │ │ │ │ ├── ble_ln_cp.h
│ │ │ │ │ ├── ble_ln_db.c
│ │ │ │ │ ├── ble_ln_db.h
│ │ │ │ │ ├── ble_lns.c
│ │ │ │ │ └── ble_lns.h
│ │ │ │ ├── experimental_ble_ots/
│ │ │ │ │ ├── ble_ots.c
│ │ │ │ │ ├── ble_ots.h
│ │ │ │ │ ├── ble_ots_l2cap.c
│ │ │ │ │ ├── ble_ots_l2cap.h
│ │ │ │ │ ├── ble_ots_oacp.c
│ │ │ │ │ ├── ble_ots_oacp.h
│ │ │ │ │ ├── ble_ots_object.c
│ │ │ │ │ └── ble_ots_object.h
│ │ │ │ ├── experimental_gatts_c/
│ │ │ │ │ ├── nrf_ble_gatts_c.c
│ │ │ │ │ └── nrf_ble_gatts_c.h
│ │ │ │ ├── experimental_nrf_ble_cgms/
│ │ │ │ │ ├── cgms_db.c
│ │ │ │ │ ├── cgms_db.h
│ │ │ │ │ ├── cgms_meas.c
│ │ │ │ │ ├── cgms_meas.h
│ │ │ │ │ ├── cgms_racp.c
│ │ │ │ │ ├── cgms_racp.h
│ │ │ │ │ ├── cgms_socp.c
│ │ │ │ │ ├── cgms_socp.h
│ │ │ │ │ ├── cgms_sst.c
│ │ │ │ │ ├── cgms_sst.h
│ │ │ │ │ ├── nrf_ble_cgms.c
│ │ │ │ │ └── nrf_ble_cgms.h
│ │ │ │ ├── experimental_nrf_ble_ots_c/
│ │ │ │ │ ├── nrf_ble_ots_c.c
│ │ │ │ │ ├── nrf_ble_ots_c.h
│ │ │ │ │ ├── nrf_ble_ots_c_l2cap.c
│ │ │ │ │ ├── nrf_ble_ots_c_l2cap.h
│ │ │ │ │ ├── nrf_ble_ots_c_oacp.c
│ │ │ │ │ └── nrf_ble_ots_c_oacp.h
│ │ │ │ └── nrf_ble_bms/
│ │ │ │ ├── nrf_ble_bms.c
│ │ │ │ └── nrf_ble_bms.h
│ │ │ ├── common/
│ │ │ │ ├── ble_advdata.c
│ │ │ │ ├── ble_advdata.h
│ │ │ │ ├── ble_conn_params.c
│ │ │ │ ├── ble_conn_params.h
│ │ │ │ ├── ble_conn_state.c
│ │ │ │ ├── ble_conn_state.h
│ │ │ │ ├── ble_date_time.h
│ │ │ │ ├── ble_gatt_db.h
│ │ │ │ ├── ble_sensor_location.h
│ │ │ │ ├── ble_srv_common.c
│ │ │ │ └── ble_srv_common.h
│ │ │ ├── nrf_ble_gatt/
│ │ │ │ ├── nrf_ble_gatt.c
│ │ │ │ └── nrf_ble_gatt.h
│ │ │ ├── nrf_ble_qwr/
│ │ │ │ ├── nrf_ble_qwr.c
│ │ │ │ └── nrf_ble_qwr.h
│ │ │ ├── nrf_ble_scan/
│ │ │ │ ├── nrf_ble_scan.c
│ │ │ │ └── nrf_ble_scan.h
│ │ │ └── peer_manager/
│ │ │ ├── auth_status_tracker.c
│ │ │ ├── auth_status_tracker.h
│ │ │ ├── gatt_cache_manager.c
│ │ │ ├── gatt_cache_manager.h
│ │ │ ├── gatts_cache_manager.c
│ │ │ ├── gatts_cache_manager.h
│ │ │ ├── id_manager.c
│ │ │ ├── id_manager.h
│ │ │ ├── nrf_ble_lesc.c
│ │ │ ├── nrf_ble_lesc.h
│ │ │ ├── peer_data_storage.c
│ │ │ ├── peer_data_storage.h
│ │ │ ├── peer_database.c
│ │ │ ├── peer_database.h
│ │ │ ├── peer_id.c
│ │ │ ├── peer_id.h
│ │ │ ├── peer_manager.c
│ │ │ ├── peer_manager.h
│ │ │ ├── peer_manager_handler.c
│ │ │ ├── peer_manager_handler.h
│ │ │ ├── peer_manager_internal.h
│ │ │ ├── peer_manager_types.h
│ │ │ ├── pm_buffer.c
│ │ │ ├── pm_buffer.h
│ │ │ ├── security_dispatcher.c
│ │ │ ├── security_dispatcher.h
│ │ │ ├── security_manager.c
│ │ │ └── security_manager.h
│ │ ├── boards/
│ │ │ ├── arduino_joystick_shield_v1a.h
│ │ │ ├── arduino_primo.h
│ │ │ ├── boards.c
│ │ │ ├── boards.h
│ │ │ ├── d52_starterkit.h
│ │ │ ├── n5_starterkit.h
│ │ │ ├── nrf6310.h
│ │ │ ├── pca10000.h
│ │ │ ├── pca10001.h
│ │ │ ├── pca10003.h
│ │ │ ├── pca10028.h
│ │ │ ├── pca10031.h
│ │ │ ├── pca10036.h
│ │ │ ├── pca10040.h
│ │ │ ├── pca10056.h
│ │ │ ├── pca10059.h
│ │ │ ├── pca10100.h
│ │ │ ├── pca10112.h
│ │ │ ├── pca20006.h
│ │ │ ├── pca20020.h
│ │ │ └── wt51822.h
│ │ ├── libraries/
│ │ │ ├── atomic/
│ │ │ │ ├── nrf_atomic.c
│ │ │ │ ├── nrf_atomic.h
│ │ │ │ ├── nrf_atomic_internal.h
│ │ │ │ └── nrf_atomic_sanity_check.h
│ │ │ ├── atomic_fifo/
│ │ │ │ ├── nrf_atfifo.c
│ │ │ │ ├── nrf_atfifo.h
│ │ │ │ └── nrf_atfifo_internal.h
│ │ │ ├── atomic_flags/
│ │ │ │ ├── nrf_atflags.c
│ │ │ │ └── nrf_atflags.h
│ │ │ ├── balloc/
│ │ │ │ ├── nrf_balloc.c
│ │ │ │ └── nrf_balloc.h
│ │ │ ├── block_dev/
│ │ │ │ ├── empty/
│ │ │ │ │ ├── nrf_block_dev_empty.c
│ │ │ │ │ └── nrf_block_dev_empty.h
│ │ │ │ ├── nrf_block_dev.h
│ │ │ │ ├── qspi/
│ │ │ │ │ ├── nrf_block_dev_qspi.c
│ │ │ │ │ ├── nrf_block_dev_qspi.h
│ │ │ │ │ ├── nrf_serial_flash_params.c
│ │ │ │ │ └── nrf_serial_flash_params.h
│ │ │ │ ├── ram/
│ │ │ │ │ ├── nrf_block_dev_ram.c
│ │ │ │ │ └── nrf_block_dev_ram.h
│ │ │ │ └── sdc/
│ │ │ │ ├── nrf_block_dev_sdc.c
│ │ │ │ └── nrf_block_dev_sdc.h
│ │ │ ├── bootloader/
│ │ │ │ ├── ant_dfu/
│ │ │ │ │ └── nrf_dfu_ant.c
│ │ │ │ ├── ble_dfu/
│ │ │ │ │ ├── nrf_dfu_ble.c
│ │ │ │ │ ├── nrf_dfu_ble.h
│ │ │ │ │ └── nrf_dfu_ble_svci_bond_sharing.h
│ │ │ │ ├── dfu/
│ │ │ │ │ ├── dfu-cc.options
│ │ │ │ │ ├── dfu-cc.pb.c
│ │ │ │ │ ├── dfu-cc.pb.h
│ │ │ │ │ ├── dfu-cc.proto
│ │ │ │ │ ├── nrf_dfu.c
│ │ │ │ │ ├── nrf_dfu.h
│ │ │ │ │ ├── nrf_dfu_flash.c
│ │ │ │ │ ├── nrf_dfu_flash.h
│ │ │ │ │ ├── nrf_dfu_handling_error.c
│ │ │ │ │ ├── nrf_dfu_handling_error.h
│ │ │ │ │ ├── nrf_dfu_mbr.c
│ │ │ │ │ ├── nrf_dfu_mbr.h
│ │ │ │ │ ├── nrf_dfu_req_handler.c
│ │ │ │ │ ├── nrf_dfu_req_handler.h
│ │ │ │ │ ├── nrf_dfu_settings.c
│ │ │ │ │ ├── nrf_dfu_settings.h
│ │ │ │ │ ├── nrf_dfu_settings_svci.c
│ │ │ │ │ ├── nrf_dfu_svci.c
│ │ │ │ │ ├── nrf_dfu_svci_handler.c
│ │ │ │ │ ├── nrf_dfu_transport.c
│ │ │ │ │ ├── nrf_dfu_transport.h
│ │ │ │ │ ├── nrf_dfu_trigger_usb.c
│ │ │ │ │ ├── nrf_dfu_trigger_usb.h
│ │ │ │ │ ├── nrf_dfu_types.h
│ │ │ │ │ ├── nrf_dfu_utils.c
│ │ │ │ │ ├── nrf_dfu_utils.h
│ │ │ │ │ ├── nrf_dfu_validation.c
│ │ │ │ │ ├── nrf_dfu_validation.h
│ │ │ │ │ ├── nrf_dfu_ver_validation.c
│ │ │ │ │ └── nrf_dfu_ver_validation.h
│ │ │ │ ├── nrf_bootloader.c
│ │ │ │ ├── nrf_bootloader.h
│ │ │ │ ├── nrf_bootloader_app_start.c
│ │ │ │ ├── nrf_bootloader_app_start.h
│ │ │ │ ├── nrf_bootloader_app_start_final.c
│ │ │ │ ├── nrf_bootloader_dfu_timers.c
│ │ │ │ ├── nrf_bootloader_dfu_timers.h
│ │ │ │ ├── nrf_bootloader_fw_activation.c
│ │ │ │ ├── nrf_bootloader_fw_activation.h
│ │ │ │ ├── nrf_bootloader_info.c
│ │ │ │ ├── nrf_bootloader_info.h
│ │ │ │ ├── nrf_bootloader_wdt.c
│ │ │ │ ├── nrf_bootloader_wdt.h
│ │ │ │ └── serial_dfu/
│ │ │ │ ├── nrf_dfu_serial.c
│ │ │ │ ├── nrf_dfu_serial.h
│ │ │ │ ├── nrf_dfu_serial_uart.c
│ │ │ │ └── nrf_dfu_serial_usb.c
│ │ │ ├── bsp/
│ │ │ │ ├── bsp.c
│ │ │ │ ├── bsp.h
│ │ │ │ ├── bsp_btn_ant.c
│ │ │ │ ├── bsp_btn_ant.h
│ │ │ │ ├── bsp_btn_ble.c
│ │ │ │ ├── bsp_btn_ble.h
│ │ │ │ ├── bsp_cli.c
│ │ │ │ ├── bsp_cli.h
│ │ │ │ ├── bsp_config.h
│ │ │ │ ├── bsp_nfc.c
│ │ │ │ └── bsp_nfc.h
│ │ │ ├── button/
│ │ │ │ ├── app_button.c
│ │ │ │ └── app_button.h
│ │ │ ├── cli/
│ │ │ │ ├── ble_uart/
│ │ │ │ │ ├── nrf_cli_ble_uart.c
│ │ │ │ │ └── nrf_cli_ble_uart.h
│ │ │ │ ├── cdc_acm/
│ │ │ │ │ ├── nrf_cli_cdc_acm.c
│ │ │ │ │ └── nrf_cli_cdc_acm.h
│ │ │ │ ├── cli_utils_cmds.c
│ │ │ │ ├── libuarte/
│ │ │ │ │ ├── nrf_cli_libuarte.c
│ │ │ │ │ └── nrf_cli_libuarte.h
│ │ │ │ ├── nrf_cli.c
│ │ │ │ ├── nrf_cli.h
│ │ │ │ ├── nrf_cli_types.h
│ │ │ │ ├── nrf_cli_vt100.h
│ │ │ │ ├── rtt/
│ │ │ │ │ ├── nrf_cli_rtt.c
│ │ │ │ │ └── nrf_cli_rtt.h
│ │ │ │ └── uart/
│ │ │ │ ├── nrf_cli_uart.c
│ │ │ │ └── nrf_cli_uart.h
│ │ │ ├── crc16/
│ │ │ │ ├── crc16.c
│ │ │ │ └── crc16.h
│ │ │ ├── crc32/
│ │ │ │ ├── crc32.c
│ │ │ │ └── crc32.h
│ │ │ ├── crypto/
│ │ │ │ ├── backend/
│ │ │ │ │ ├── cc310/
│ │ │ │ │ │ ├── cc310_backend_aes.c
│ │ │ │ │ │ ├── cc310_backend_aes.h
│ │ │ │ │ │ ├── cc310_backend_aes_aead.c
│ │ │ │ │ │ ├── cc310_backend_aes_aead.h
│ │ │ │ │ │ ├── cc310_backend_chacha_poly_aead.c
│ │ │ │ │ │ ├── cc310_backend_chacha_poly_aead.h
│ │ │ │ │ │ ├── cc310_backend_ecc.c
│ │ │ │ │ │ ├── cc310_backend_ecc.h
│ │ │ │ │ │ ├── cc310_backend_ecdh.c
│ │ │ │ │ │ ├── cc310_backend_ecdh.h
│ │ │ │ │ │ ├── cc310_backend_ecdsa.c
│ │ │ │ │ │ ├── cc310_backend_ecdsa.h
│ │ │ │ │ │ ├── cc310_backend_eddsa.c
│ │ │ │ │ │ ├── cc310_backend_eddsa.h
│ │ │ │ │ │ ├── cc310_backend_hash.c
│ │ │ │ │ │ ├── cc310_backend_hash.h
│ │ │ │ │ │ ├── cc310_backend_hmac.c
│ │ │ │ │ │ ├── cc310_backend_hmac.h
│ │ │ │ │ │ ├── cc310_backend_init.c
│ │ │ │ │ │ ├── cc310_backend_mutex.c
│ │ │ │ │ │ ├── cc310_backend_mutex.h
│ │ │ │ │ │ ├── cc310_backend_rng.c
│ │ │ │ │ │ ├── cc310_backend_rng.h
│ │ │ │ │ │ ├── cc310_backend_shared.c
│ │ │ │ │ │ └── cc310_backend_shared.h
│ │ │ │ │ ├── cc310_bl/
│ │ │ │ │ │ ├── cc310_bl_backend_ecc.c
│ │ │ │ │ │ ├── cc310_bl_backend_ecc.h
│ │ │ │ │ │ ├── cc310_bl_backend_ecdh.h
│ │ │ │ │ │ ├── cc310_bl_backend_ecdsa.c
│ │ │ │ │ │ ├── cc310_bl_backend_ecdsa.h
│ │ │ │ │ │ ├── cc310_bl_backend_hash.c
│ │ │ │ │ │ ├── cc310_bl_backend_hash.h
│ │ │ │ │ │ ├── cc310_bl_backend_init.c
│ │ │ │ │ │ ├── cc310_bl_backend_shared.c
│ │ │ │ │ │ └── cc310_bl_backend_shared.h
│ │ │ │ │ ├── cifra/
│ │ │ │ │ │ ├── cifra_backend_aes_aead.c
│ │ │ │ │ │ └── cifra_backend_aes_aead.h
│ │ │ │ │ ├── mbedtls/
│ │ │ │ │ │ ├── mbedtls_backend_aes.c
│ │ │ │ │ │ ├── mbedtls_backend_aes.h
│ │ │ │ │ │ ├── mbedtls_backend_aes_aead.c
│ │ │ │ │ │ ├── mbedtls_backend_aes_aead.h
│ │ │ │ │ │ ├── mbedtls_backend_ecc.c
│ │ │ │ │ │ ├── mbedtls_backend_ecc.h
│ │ │ │ │ │ ├── mbedtls_backend_ecdh.c
│ │ │ │ │ │ ├── mbedtls_backend_ecdh.h
│ │ │ │ │ │ ├── mbedtls_backend_ecdsa.c
│ │ │ │ │ │ ├── mbedtls_backend_ecdsa.h
│ │ │ │ │ │ ├── mbedtls_backend_hash.c
│ │ │ │ │ │ ├── mbedtls_backend_hash.h
│ │ │ │ │ │ ├── mbedtls_backend_hmac.c
│ │ │ │ │ │ ├── mbedtls_backend_hmac.h
│ │ │ │ │ │ └── mbedtls_backend_init.c
│ │ │ │ │ ├── micro_ecc/
│ │ │ │ │ │ ├── micro_ecc_backend_ecc.c
│ │ │ │ │ │ ├── micro_ecc_backend_ecc.h
│ │ │ │ │ │ ├── micro_ecc_backend_ecdh.c
│ │ │ │ │ │ ├── micro_ecc_backend_ecdh.h
│ │ │ │ │ │ ├── micro_ecc_backend_ecdsa.c
│ │ │ │ │ │ ├── micro_ecc_backend_ecdsa.h
│ │ │ │ │ │ └── micro_ecc_backend_shared.h
│ │ │ │ │ ├── nrf_hw/
│ │ │ │ │ │ ├── nrf_hw_backend_init.c
│ │ │ │ │ │ ├── nrf_hw_backend_rng.c
│ │ │ │ │ │ ├── nrf_hw_backend_rng.h
│ │ │ │ │ │ ├── nrf_hw_backend_rng_mbedtls.c
│ │ │ │ │ │ └── nrf_hw_backend_rng_mbedtls.h
│ │ │ │ │ ├── nrf_sw/
│ │ │ │ │ │ ├── nrf_sw_backend_hash.c
│ │ │ │ │ │ └── nrf_sw_backend_hash.h
│ │ │ │ │ ├── oberon/
│ │ │ │ │ │ ├── oberon_backend_chacha_poly_aead.c
│ │ │ │ │ │ ├── oberon_backend_chacha_poly_aead.h
│ │ │ │ │ │ ├── oberon_backend_ecc.c
│ │ │ │ │ │ ├── oberon_backend_ecc.h
│ │ │ │ │ │ ├── oberon_backend_ecdh.c
│ │ │ │ │ │ ├── oberon_backend_ecdh.h
│ │ │ │ │ │ ├── oberon_backend_ecdsa.c
│ │ │ │ │ │ ├── oberon_backend_ecdsa.h
│ │ │ │ │ │ ├── oberon_backend_eddsa.c
│ │ │ │ │ │ ├── oberon_backend_eddsa.h
│ │ │ │ │ │ ├── oberon_backend_hash.c
│ │ │ │ │ │ ├── oberon_backend_hash.h
│ │ │ │ │ │ ├── oberon_backend_hmac.c
│ │ │ │ │ │ └── oberon_backend_hmac.h
│ │ │ │ │ └── optiga/
│ │ │ │ │ ├── optiga_backend_ecc.c
│ │ │ │ │ ├── optiga_backend_ecc.h
│ │ │ │ │ ├── optiga_backend_ecdh.c
│ │ │ │ │ ├── optiga_backend_ecdh.h
│ │ │ │ │ ├── optiga_backend_ecdsa.c
│ │ │ │ │ ├── optiga_backend_ecdsa.h
│ │ │ │ │ ├── optiga_backend_init.c
│ │ │ │ │ ├── optiga_backend_rng.c
│ │ │ │ │ ├── optiga_backend_rng.h
│ │ │ │ │ ├── optiga_backend_utils.c
│ │ │ │ │ └── optiga_backend_utils.h
│ │ │ │ ├── nrf_crypto.h
│ │ │ │ ├── nrf_crypto_aead.c
│ │ │ │ ├── nrf_crypto_aead.h
│ │ │ │ ├── nrf_crypto_aead_backend.h
│ │ │ │ ├── nrf_crypto_aead_shared.h
│ │ │ │ ├── nrf_crypto_aes.c
│ │ │ │ ├── nrf_crypto_aes.h
│ │ │ │ ├── nrf_crypto_aes_backend.h
│ │ │ │ ├── nrf_crypto_aes_shared.c
│ │ │ │ ├── nrf_crypto_aes_shared.h
│ │ │ │ ├── nrf_crypto_ecc.c
│ │ │ │ ├── nrf_crypto_ecc.h
│ │ │ │ ├── nrf_crypto_ecc_backend.h
│ │ │ │ ├── nrf_crypto_ecc_shared.h
│ │ │ │ ├── nrf_crypto_ecdh.c
│ │ │ │ ├── nrf_crypto_ecdh.h
│ │ │ │ ├── nrf_crypto_ecdh_backend.h
│ │ │ │ ├── nrf_crypto_ecdh_shared.h
│ │ │ │ ├── nrf_crypto_ecdsa.c
│ │ │ │ ├── nrf_crypto_ecdsa.h
│ │ │ │ ├── nrf_crypto_ecdsa_backend.h
│ │ │ │ ├── nrf_crypto_ecdsa_shared.h
│ │ │ │ ├── nrf_crypto_eddsa.c
│ │ │ │ ├── nrf_crypto_eddsa.h
│ │ │ │ ├── nrf_crypto_eddsa_backend.h
│ │ │ │ ├── nrf_crypto_eddsa_shared.h
│ │ │ │ ├── nrf_crypto_error.c
│ │ │ │ ├── nrf_crypto_error.h
│ │ │ │ ├── nrf_crypto_hash.c
│ │ │ │ ├── nrf_crypto_hash.h
│ │ │ │ ├── nrf_crypto_hash_backend.h
│ │ │ │ ├── nrf_crypto_hash_shared.h
│ │ │ │ ├── nrf_crypto_hkdf.c
│ │ │ │ ├── nrf_crypto_hkdf.h
│ │ │ │ ├── nrf_crypto_hmac.c
│ │ │ │ ├── nrf_crypto_hmac.h
│ │ │ │ ├── nrf_crypto_hmac_backend.h
│ │ │ │ ├── nrf_crypto_hmac_shared.h
│ │ │ │ ├── nrf_crypto_init.c
│ │ │ │ ├── nrf_crypto_init.h
│ │ │ │ ├── nrf_crypto_mem.h
│ │ │ │ ├── nrf_crypto_rng.c
│ │ │ │ ├── nrf_crypto_rng.h
│ │ │ │ ├── nrf_crypto_rng_backend.h
│ │ │ │ ├── nrf_crypto_rng_shared.h
│ │ │ │ ├── nrf_crypto_shared.c
│ │ │ │ ├── nrf_crypto_shared.h
│ │ │ │ └── nrf_crypto_types.h
│ │ │ ├── csense/
│ │ │ │ ├── nrf_csense.c
│ │ │ │ ├── nrf_csense.h
│ │ │ │ └── nrf_csense_macros.h
│ │ │ ├── csense_drv/
│ │ │ │ ├── nrf_drv_csense.c
│ │ │ │ └── nrf_drv_csense.h
│ │ │ ├── delay/
│ │ │ │ └── nrf_delay.h
│ │ │ ├── ecc/
│ │ │ │ ├── ecc.c
│ │ │ │ └── ecc.h
│ │ │ ├── experimental_section_vars/
│ │ │ │ ├── nrf_section.h
│ │ │ │ ├── nrf_section_iter.c
│ │ │ │ └── nrf_section_iter.h
│ │ │ ├── experimental_task_manager/
│ │ │ │ ├── task_manager.c
│ │ │ │ ├── task_manager.h
│ │ │ │ ├── task_manager_core_armgcc.S
│ │ │ │ ├── task_manager_core_iar.s
│ │ │ │ └── task_manager_core_keil.s
│ │ │ ├── fds/
│ │ │ │ ├── fds.c
│ │ │ │ ├── fds.h
│ │ │ │ └── fds_internal_defs.h
│ │ │ ├── fifo/
│ │ │ │ ├── app_fifo.c
│ │ │ │ └── app_fifo.h
│ │ │ ├── fstorage/
│ │ │ │ ├── nrf_fstorage.c
│ │ │ │ ├── nrf_fstorage.h
│ │ │ │ ├── nrf_fstorage_nvmc.c
│ │ │ │ ├── nrf_fstorage_nvmc.h
│ │ │ │ ├── nrf_fstorage_sd.c
│ │ │ │ └── nrf_fstorage_sd.h
│ │ │ ├── gfx/
│ │ │ │ ├── nrf_gfx.c
│ │ │ │ ├── nrf_gfx.h
│ │ │ │ └── nrf_lcd.h
│ │ │ ├── gpiote/
│ │ │ │ ├── app_gpiote.c
│ │ │ │ └── app_gpiote.h
│ │ │ ├── hardfault/
│ │ │ │ ├── hardfault.h
│ │ │ │ ├── hardfault_genhf.h
│ │ │ │ ├── hardfault_implementation.c
│ │ │ │ ├── nrf51/
│ │ │ │ │ └── handler/
│ │ │ │ │ ├── hardfault_handler_gcc.c
│ │ │ │ │ ├── hardfault_handler_iar.c
│ │ │ │ │ └── hardfault_handler_keil.c
│ │ │ │ └── nrf52/
│ │ │ │ └── handler/
│ │ │ │ ├── hardfault_handler_gcc.c
│ │ │ │ ├── hardfault_handler_iar.c
│ │ │ │ └── hardfault_handler_keil.c
│ │ │ ├── hci/
│ │ │ │ ├── hci_mem_pool.c
│ │ │ │ ├── hci_mem_pool.h
│ │ │ │ ├── hci_slip.c
│ │ │ │ ├── hci_slip.h
│ │ │ │ ├── hci_transport.c
│ │ │ │ └── hci_transport.h
│ │ │ ├── led_softblink/
│ │ │ │ ├── led_softblink.c
│ │ │ │ └── led_softblink.h
│ │ │ ├── log/
│ │ │ │ ├── nrf_log.h
│ │ │ │ ├── nrf_log_backend_flash.h
│ │ │ │ ├── nrf_log_backend_interface.h
│ │ │ │ ├── nrf_log_backend_rtt.h
│ │ │ │ ├── nrf_log_backend_uart.h
│ │ │ │ ├── nrf_log_ctrl.h
│ │ │ │ ├── nrf_log_default_backends.h
│ │ │ │ ├── nrf_log_instance.h
│ │ │ │ ├── nrf_log_str_formatter.h
│ │ │ │ ├── nrf_log_types.h
│ │ │ │ └── src/
│ │ │ │ ├── nrf_log_backend_flash.c
│ │ │ │ ├── nrf_log_backend_rtt.c
│ │ │ │ ├── nrf_log_backend_serial.c
│ │ │ │ ├── nrf_log_backend_serial.h
│ │ │ │ ├── nrf_log_backend_uart.c
│ │ │ │ ├── nrf_log_ctrl_internal.h
│ │ │ │ ├── nrf_log_default_backends.c
│ │ │ │ ├── nrf_log_frontend.c
│ │ │ │ ├── nrf_log_internal.h
│ │ │ │ └── nrf_log_str_formatter.c
│ │ │ ├── low_power_pwm/
│ │ │ │ ├── low_power_pwm.c
│ │ │ │ └── low_power_pwm.h
│ │ │ ├── mem_manager/
│ │ │ │ ├── mem_manager.c
│ │ │ │ └── mem_manager.h
│ │ │ ├── memobj/
│ │ │ │ ├── nrf_memobj.c
│ │ │ │ └── nrf_memobj.h
│ │ │ ├── mpu/
│ │ │ │ ├── nrf_mpu_lib.c
│ │ │ │ └── nrf_mpu_lib.h
│ │ │ ├── mutex/
│ │ │ │ └── nrf_mtx.h
│ │ │ ├── pwm/
│ │ │ │ ├── app_pwm.c
│ │ │ │ └── app_pwm.h
│ │ │ ├── pwr_mgmt/
│ │ │ │ ├── nrf_pwr_mgmt.c
│ │ │ │ └── nrf_pwr_mgmt.h
│ │ │ ├── queue/
│ │ │ │ ├── nrf_queue.c
│ │ │ │ └── nrf_queue.h
│ │ │ ├── ringbuf/
│ │ │ │ ├── nrf_ringbuf.c
│ │ │ │ └── nrf_ringbuf.h
│ │ │ ├── scheduler/
│ │ │ │ ├── app_scheduler.c
│ │ │ │ ├── app_scheduler.h
│ │ │ │ └── app_scheduler_serconn.c
│ │ │ ├── sha256/
│ │ │ │ ├── sha256.c
│ │ │ │ └── sha256.h
│ │ │ ├── simple_timer/
│ │ │ │ ├── app_simple_timer.c
│ │ │ │ └── app_simple_timer.h
│ │ │ ├── slip/
│ │ │ │ ├── slip.c
│ │ │ │ └── slip.h
│ │ │ ├── sortlist/
│ │ │ │ ├── nrf_sortlist.c
│ │ │ │ └── nrf_sortlist.h
│ │ │ ├── spi_mngr/
│ │ │ │ ├── nrf_spi_mngr.c
│ │ │ │ └── nrf_spi_mngr.h
│ │ │ ├── stack_guard/
│ │ │ │ ├── nrf_stack_guard.c
│ │ │ │ └── nrf_stack_guard.h
│ │ │ ├── stack_info/
│ │ │ │ └── nrf_stack_info.h
│ │ │ ├── strerror/
│ │ │ │ ├── nrf_strerror.c
│ │ │ │ └── nrf_strerror.h
│ │ │ ├── svc/
│ │ │ │ ├── nrf_svc_function.h
│ │ │ │ ├── nrf_svc_handler.c
│ │ │ │ ├── nrf_svci.h
│ │ │ │ ├── nrf_svci_async_function.h
│ │ │ │ └── nrf_svci_async_handler.h
│ │ │ ├── timer/
│ │ │ │ ├── app_timer.c
│ │ │ │ ├── app_timer.h
│ │ │ │ ├── app_timer2.c
│ │ │ │ ├── app_timer_freertos.c
│ │ │ │ ├── app_timer_rtx.c
│ │ │ │ ├── drv_rtc.c
│ │ │ │ └── drv_rtc.h
│ │ │ ├── twi_mngr/
│ │ │ │ ├── nrf_twi_mngr.c
│ │ │ │ └── nrf_twi_mngr.h
│ │ │ ├── twi_sensor/
│ │ │ │ ├── nrf_twi_sensor.c
│ │ │ │ └── nrf_twi_sensor.h
│ │ │ ├── uart/
│ │ │ │ ├── app_uart.c
│ │ │ │ ├── app_uart.h
│ │ │ │ ├── app_uart_fifo.c
│ │ │ │ └── retarget.c
│ │ │ ├── usbd/
│ │ │ │ ├── app_usbd.c
│ │ │ │ ├── app_usbd.h
│ │ │ │ ├── app_usbd_class_base.h
│ │ │ │ ├── app_usbd_core.c
│ │ │ │ ├── app_usbd_core.h
│ │ │ │ ├── app_usbd_descriptor.h
│ │ │ │ ├── app_usbd_langid.h
│ │ │ │ ├── app_usbd_request.h
│ │ │ │ ├── app_usbd_serial_num.c
│ │ │ │ ├── app_usbd_serial_num.h
│ │ │ │ ├── app_usbd_string_desc.c
│ │ │ │ ├── app_usbd_string_desc.h
│ │ │ │ ├── app_usbd_types.h
│ │ │ │ └── class/
│ │ │ │ ├── audio/
│ │ │ │ │ ├── app_usbd_audio.c
│ │ │ │ │ ├── app_usbd_audio.h
│ │ │ │ │ ├── app_usbd_audio_desc.h
│ │ │ │ │ ├── app_usbd_audio_internal.h
│ │ │ │ │ └── app_usbd_audio_types.h
│ │ │ │ ├── cdc/
│ │ │ │ │ ├── acm/
│ │ │ │ │ │ ├── app_usbd_cdc_acm.c
│ │ │ │ │ │ ├── app_usbd_cdc_acm.h
│ │ │ │ │ │ └── app_usbd_cdc_acm_internal.h
│ │ │ │ │ ├── app_usbd_cdc_desc.h
│ │ │ │ │ └── app_usbd_cdc_types.h
│ │ │ │ ├── dummy/
│ │ │ │ │ ├── app_usbd_dummy.c
│ │ │ │ │ ├── app_usbd_dummy.h
│ │ │ │ │ ├── app_usbd_dummy_internal.h
│ │ │ │ │ └── app_usbd_dummy_types.h
│ │ │ │ ├── hid/
│ │ │ │ │ ├── app_usbd_hid.c
│ │ │ │ │ ├── app_usbd_hid.h
│ │ │ │ │ ├── app_usbd_hid_types.h
│ │ │ │ │ ├── generic/
│ │ │ │ │ │ ├── app_usbd_hid_generic.c
│ │ │ │ │ │ ├── app_usbd_hid_generic.h
│ │ │ │ │ │ ├── app_usbd_hid_generic_desc.h
│ │ │ │ │ │ └── app_usbd_hid_generic_internal.h
│ │ │ │ │ ├── kbd/
│ │ │ │ │ │ ├── app_usbd_hid_kbd.c
│ │ │ │ │ │ ├── app_usbd_hid_kbd.h
│ │ │ │ │ │ ├── app_usbd_hid_kbd_desc.h
│ │ │ │ │ │ └── app_usbd_hid_kbd_internal.h
│ │ │ │ │ └── mouse/
│ │ │ │ │ ├── app_usbd_hid_mouse.c
│ │ │ │ │ ├── app_usbd_hid_mouse.h
│ │ │ │ │ ├── app_usbd_hid_mouse_desc.h
│ │ │ │ │ └── app_usbd_hid_mouse_internal.h
│ │ │ │ ├── msc/
│ │ │ │ │ ├── app_usbd_msc.c
│ │ │ │ │ ├── app_usbd_msc.h
│ │ │ │ │ ├── app_usbd_msc_desc.h
│ │ │ │ │ ├── app_usbd_msc_internal.h
│ │ │ │ │ ├── app_usbd_msc_scsi.h
│ │ │ │ │ └── app_usbd_msc_types.h
│ │ │ │ └── nrf_dfu_trigger/
│ │ │ │ ├── app_usbd_nrf_dfu_trigger.c
│ │ │ │ ├── app_usbd_nrf_dfu_trigger.h
│ │ │ │ ├── app_usbd_nrf_dfu_trigger_internal.h
│ │ │ │ └── app_usbd_nrf_dfu_trigger_types.h
│ │ │ └── util/
│ │ │ ├── app_error.c
│ │ │ ├── app_error.h
│ │ │ ├── app_error_handler_gcc.c
│ │ │ ├── app_error_handler_iar.c
│ │ │ ├── app_error_handler_keil.c
│ │ │ ├── app_error_weak.c
│ │ │ ├── app_error_weak.h
│ │ │ ├── app_util.h
│ │ │ ├── app_util_bds.h
│ │ │ ├── app_util_platform.c
│ │ │ ├── app_util_platform.h
│ │ │ ├── nordic_common.h
│ │ │ ├── nrf_assert.c
│ │ │ ├── nrf_assert.h
│ │ │ ├── nrf_bitmask.h
│ │ │ ├── sdk_alloca.h
│ │ │ ├── sdk_common.h
│ │ │ ├── sdk_errors.h
│ │ │ ├── sdk_macros.h
│ │ │ ├── sdk_mapped_flags.c
│ │ │ ├── sdk_mapped_flags.h
│ │ │ ├── sdk_os.h
│ │ │ └── sdk_resources.h
│ │ ├── proprietary_rf/
│ │ │ ├── esb/
│ │ │ │ ├── nrf_esb.c
│ │ │ │ ├── nrf_esb.h
│ │ │ │ ├── nrf_esb_error_codes.h
│ │ │ │ └── nrf_esb_resources.h
│ │ │ └── gzll/
│ │ │ ├── arm/
│ │ │ │ └── license.txt
│ │ │ ├── config/
│ │ │ │ └── nrf_gzp_config.h
│ │ │ ├── gcc/
│ │ │ │ ├── gzll_nrf51_gcc.a
│ │ │ │ ├── gzll_nrf51_sd_resources_gcc.a
│ │ │ │ ├── gzll_nrf52810_gcc.a
│ │ │ │ ├── gzll_nrf52810_sd_resources_gcc.a
│ │ │ │ ├── gzll_nrf52811_gcc.a
│ │ │ │ ├── gzll_nrf52811_sd_resources_gcc.a
│ │ │ │ ├── gzll_nrf52840_gcc.a
│ │ │ │ ├── gzll_nrf52840_sd_resources_gcc.a
│ │ │ │ ├── gzll_nrf52_gcc.a
│ │ │ │ ├── gzll_nrf52_sd_resources_gcc.a
│ │ │ │ └── license.txt
│ │ │ ├── iar/
│ │ │ │ ├── gzll_nrf51_iar.a
│ │ │ │ ├── gzll_nrf51_sd_resources_iar.a
│ │ │ │ ├── gzll_nrf52840_iar.a
│ │ │ │ ├── gzll_nrf52840_sd_resources_iar.a
│ │ │ │ ├── gzll_nrf52_iar.a
│ │ │ │ ├── gzll_nrf52_sd_resources_iar.a
│ │ │ │ └── license.txt
│ │ │ ├── nrf_gzll.h
│ │ │ ├── nrf_gzll_constants.h
│ │ │ ├── nrf_gzll_error.h
│ │ │ ├── nrf_gzll_resources.h
│ │ │ ├── nrf_gzp.c
│ │ │ ├── nrf_gzp.h
│ │ │ ├── nrf_gzp_device.c
│ │ │ ├── nrf_gzp_host.c
│ │ │ └── nrf_gzp_host_nrf5x.c
│ │ ├── serialization/
│ │ │ ├── application/
│ │ │ │ ├── codecs/
│ │ │ │ │ ├── ant/
│ │ │ │ │ │ ├── middleware/
│ │ │ │ │ │ │ └── app_mw_ant.c
│ │ │ │ │ │ └── serializers/
│ │ │ │ │ │ ├── ant_acknowledge_message_tx.c
│ │ │ │ │ │ ├── ant_active_search_sharing_cycles_get.c
│ │ │ │ │ │ ├── ant_active_search_sharing_cycles_set.c
│ │ │ │ │ │ ├── ant_adv_burst_config_set.c
│ │ │ │ │ │ ├── ant_app.h
│ │ │ │ │ │ ├── ant_broadcast_message_tx.c
│ │ │ │ │ │ ├── ant_capabilities_get.c
│ │ │ │ │ │ ├── ant_channel_assign.c
│ │ │ │ │ │ ├── ant_channel_close.c
│ │ │ │ │ │ ├── ant_channel_id_get.c
│ │ │ │ │ │ ├── ant_channel_id_set.c
│ │ │ │ │ │ ├── ant_channel_low_priority_rx_search_timeout_set.c
│ │ │ │ │ │ ├── ant_channel_open_with_offset.c
│ │ │ │ │ │ ├── ant_channel_period_get.c
│ │ │ │ │ │ ├── ant_channel_period_set.c
│ │ │ │ │ │ ├── ant_channel_radio_freq_get.c
│ │ │ │ │ │ ├── ant_channel_radio_freq_set.c
│ │ │ │ │ │ ├── ant_channel_radio_tx_power_set.c
│ │ │ │ │ │ ├── ant_channel_rx_search_timeout_set.c
│ │ │ │ │ │ ├── ant_channel_status_get.c
│ │ │ │ │ │ ├── ant_channel_unassign.c
│ │ │ │ │ │ ├── ant_coex_config_get.c
│ │ │ │ │ │ ├── ant_coex_config_set.c
│ │ │ │ │ │ ├── ant_crypto_channel_enable.c
│ │ │ │ │ │ ├── ant_crypto_info_get.c
│ │ │ │ │ │ ├── ant_crypto_info_set.c
│ │ │ │ │ │ ├── ant_crypto_key_set.c
│ │ │ │ │ │ ├── ant_cw_test_mode.c
│ │ │ │ │ │ ├── ant_cw_test_mode_init.c
│ │ │ │ │ │ ├── ant_enable.c
│ │ │ │ │ │ ├── ant_event.c
│ │ │ │ │ │ ├── ant_event.h
│ │ │ │ │ │ ├── ant_id_list_add.c
│ │ │ │ │ │ ├── ant_id_list_config.c
│ │ │ │ │ │ ├── ant_lib_config_clear.c
│ │ │ │ │ │ ├── ant_lib_config_get.c
│ │ │ │ │ │ ├── ant_lib_config_set.c
│ │ │ │ │ │ ├── ant_network_address_set.c
│ │ │ │ │ │ ├── ant_prox_search_set.c
│ │ │ │ │ │ ├── ant_rx_scan_mode_start.c
│ │ │ │ │ │ ├── ant_search_channel_priority_set.c
│ │ │ │ │ │ ├── ant_search_waveform_set.c
│ │ │ │ │ │ ├── ant_stack_reset.c
│ │ │ │ │ │ └── ant_version_get.c
│ │ │ │ │ ├── ble/
│ │ │ │ │ │ ├── middleware/
│ │ │ │ │ │ │ ├── app_mw_ble.c
│ │ │ │ │ │ │ ├── app_mw_ble_gap.c
│ │ │ │ │ │ │ ├── app_mw_ble_gattc.c
│ │ │ │ │ │ │ ├── app_mw_ble_gatts.c
│ │ │ │ │ │ │ ├── app_mw_ble_l2cap.c
│ │ │ │ │ │ │ └── app_mw_nrf_soc.c
│ │ │ │ │ │ └── serializers/
│ │ │ │ │ │ ├── app_ble_gap_sec_keys.c
│ │ │ │ │ │ ├── app_ble_gap_sec_keys.h
│ │ │ │ │ │ ├── app_ble_user_mem.c
│ │ │ │ │ │ ├── app_ble_user_mem.h
│ │ │ │ │ │ ├── ble_app.c
│ │ │ │ │ │ ├── ble_app.h
│ │ │ │ │ │ ├── ble_event.c
│ │ │ │ │ │ ├── ble_evt_app.c
│ │ │ │ │ │ ├── ble_evt_app.h
│ │ │ │ │ │ ├── ble_gap_app.c
│ │ │ │ │ │ ├── ble_gap_app.h
│ │ │ │ │ │ ├── ble_gap_evt_app.c
│ │ │ │ │ │ ├── ble_gap_evt_app.h
│ │ │ │ │ │ ├── ble_gattc_app.c
│ │ │ │ │ │ ├── ble_gattc_app.h
│ │ │ │ │ │ ├── ble_gattc_evt_app.c
│ │ │ │ │ │ ├── ble_gattc_evt_app.h
│ │ │ │ │ │ ├── ble_gatts_app.c
│ │ │ │ │ │ ├── ble_gatts_app.h
│ │ │ │ │ │ ├── ble_gatts_evt_app.c
│ │ │ │ │ │ ├── ble_gatts_evt_app.h
│ │ │ │ │ │ ├── ble_l2cap_app.c
│ │ │ │ │ │ ├── ble_l2cap_app.h
│ │ │ │ │ │ ├── ble_l2cap_evt_app.c
│ │ │ │ │ │ ├── ble_l2cap_evt_app.h
│ │ │ │ │ │ ├── nrf_soc_app.c
│ │ │ │ │ │ └── nrf_soc_app.h
│ │ │ │ │ └── common/
│ │ │ │ │ ├── ble_dtm_app.c
│ │ │ │ │ ├── ble_dtm_app.h
│ │ │ │ │ ├── ble_dtm_init.c
│ │ │ │ │ ├── conn_systemreset.c
│ │ │ │ │ └── conn_systemreset.h
│ │ │ │ ├── hal/
│ │ │ │ │ ├── ser_app_hal.h
│ │ │ │ │ ├── ser_app_hal_nrf5x.c
│ │ │ │ │ ├── ser_app_power_system_off.c
│ │ │ │ │ └── ser_app_power_system_off.h
│ │ │ │ └── transport/
│ │ │ │ ├── ser_sd_transport.c
│ │ │ │ ├── ser_sd_transport.h
│ │ │ │ ├── ser_softdevice_handler.c
│ │ │ │ └── ser_softdevice_handler.h
│ │ │ ├── common/
│ │ │ │ ├── ble_serialization.c
│ │ │ │ ├── ble_serialization.h
│ │ │ │ ├── cond_field_serialization.c
│ │ │ │ ├── cond_field_serialization.h
│ │ │ │ ├── ser_config.h
│ │ │ │ ├── ser_dbg_sd_str.c
│ │ │ │ ├── ser_dbg_sd_str.h
│ │ │ │ ├── struct_ser/
│ │ │ │ │ ├── ant/
│ │ │ │ │ │ ├── ant_struct_serialization.c
│ │ │ │ │ │ └── ant_struct_serialization.h
│ │ │ │ │ └── ble/
│ │ │ │ │ ├── ble_gap_struct_serialization.c
│ │ │ │ │ ├── ble_gap_struct_serialization.h
│ │ │ │ │ ├── ble_gatt_struct_serialization.c
│ │ │ │ │ ├── ble_gatt_struct_serialization.h
│ │ │ │ │ ├── ble_gattc_struct_serialization.c
│ │ │ │ │ ├── ble_gattc_struct_serialization.h
│ │ │ │ │ ├── ble_gatts_struct_serialization.c
│ │ │ │ │ ├── ble_gatts_struct_serialization.h
│ │ │ │ │ ├── ble_l2cap_struct_serialization.c
│ │ │ │ │ ├── ble_l2cap_struct_serialization.h
│ │ │ │ │ ├── ble_struct_serialization.c
│ │ │ │ │ ├── ble_struct_serialization.h
│ │ │ │ │ ├── nrf_soc_struct_serialization.c
│ │ │ │ │ └── nrf_soc_struct_serialization.h
│ │ │ │ └── transport/
│ │ │ │ ├── dtm_uart_params.h
│ │ │ │ ├── ser_hal_transport.c
│ │ │ │ ├── ser_hal_transport.h
│ │ │ │ ├── ser_phy/
│ │ │ │ │ ├── config/
│ │ │ │ │ │ ├── ser_config_5W_app.h
│ │ │ │ │ │ ├── ser_phy_config_app.h
│ │ │ │ │ │ ├── ser_phy_config_conn.h
│ │ │ │ │ │ ├── ser_phy_debug_app.h
│ │ │ │ │ │ └── ser_phy_debug_conn.h
│ │ │ │ │ ├── ser_phy.c
│ │ │ │ │ ├── ser_phy.h
│ │ │ │ │ ├── ser_phy_hci.c
│ │ │ │ │ ├── ser_phy_hci.h
│ │ │ │ │ ├── ser_phy_hci_slip.c
│ │ │ │ │ ├── ser_phy_hci_slip_cdc.c
│ │ │ │ │ ├── ser_phy_nohci.c
│ │ │ │ │ ├── ser_phy_spi_5W_master.c
│ │ │ │ │ ├── ser_phy_spi_5W_slave.c
│ │ │ │ │ ├── ser_phy_spi_master.c
│ │ │ │ │ ├── ser_phy_spi_slave.c
│ │ │ │ │ └── ser_phy_uart.c
│ │ │ │ └── ser_phy_debug_comm.h
│ │ │ └── connectivity/
│ │ │ ├── codecs/
│ │ │ │ ├── ant/
│ │ │ │ │ ├── middleware/
│ │ │ │ │ │ ├── conn_mw_ant.c
│ │ │ │ │ │ └── conn_mw_ant.h
│ │ │ │ │ └── serializers/
│ │ │ │ │ ├── ant_acknowledge_message_tx.c
│ │ │ │ │ ├── ant_active_search_sharing_cycles_get.c
│ │ │ │ │ ├── ant_active_search_sharing_cycles_set.c
│ │ │ │ │ ├── ant_adv_burst_config_set.c
│ │ │ │ │ ├── ant_broadcast_message_tx.c
│ │ │ │ │ ├── ant_capabilities_get.c
│ │ │ │ │ ├── ant_channel_assign.c
│ │ │ │ │ ├── ant_channel_close.c
│ │ │ │ │ ├── ant_channel_id_get.c
│ │ │ │ │ ├── ant_channel_id_set.c
│ │ │ │ │ ├── ant_channel_low_priority_rx_search_timout_set.c
│ │ │ │ │ ├── ant_channel_open_with_offset.c
│ │ │ │ │ ├── ant_channel_period_get.c
│ │ │ │ │ ├── ant_channel_period_set.c
│ │ │ │ │ ├── ant_channel_radio_freq_get.c
│ │ │ │ │ ├── ant_channel_radio_freq_set.c
│ │ │ │ │ ├── ant_channel_radio_tx_power_set.c
│ │ │ │ │ ├── ant_channel_rx_search_timeout_set.c
│ │ │ │ │ ├── ant_channel_status_get.c
│ │ │ │ │ ├── ant_channel_unassign.c
│ │ │ │ │ ├── ant_coex_config_get.c
│ │ │ │ │ ├── ant_coex_config_set.c
│ │ │ │ │ ├── ant_conn.h
│ │ │ │ │ ├── ant_crypto_channel_enable.c
│ │ │ │ │ ├── ant_crypto_info_get.c
│ │ │ │ │ ├── ant_crypto_info_set.c
│ │ │ │ │ ├── ant_crypto_key_set.c
│ │ │ │ │ ├── ant_cw_test_mode.c
│ │ │ │ │ ├── ant_cw_test_mode_init.c
│ │ │ │ │ ├── ant_enable.c
│ │ │ │ │ ├── ant_event.c
│ │ │ │ │ ├── ant_event.h
│ │ │ │ │ ├── ant_event_rx.c
│ │ │ │ │ ├── ant_event_rx.h
│ │ │ │ │ ├── ant_id_list_add.c
│ │ │ │ │ ├── ant_id_list_config.c
│ │ │ │ │ ├── ant_lib_config_clear.c
│ │ │ │ │ ├── ant_lib_config_get.c
│ │ │ │ │ ├── ant_lib_config_set.c
│ │ │ │ │ ├── ant_network_address_set.c
│ │ │ │ │ ├── ant_prox_search_set.c
│ │ │ │ │ ├── ant_rx_scan_mode_start.c
│ │ │ │ │ ├── ant_search_channel_priority_set.c
│ │ │ │ │ ├── ant_search_waveform_set.c
│ │ │ │ │ ├── ant_stack_reset.c
│ │ │ │ │ └── ant_version_get.c
│ │ │ │ ├── ble/
│ │ │ │ │ ├── middleware/
│ │ │ │ │ │ ├── conn_mw.h
│ │ │ │ │ │ ├── conn_mw_ble.c
│ │ │ │ │ │ ├── conn_mw_ble.h
│ │ │ │ │ │ ├── conn_mw_ble_gap.c
│ │ │ │ │ │ ├── conn_mw_ble_gap.h
│ │ │ │ │ │ ├── conn_mw_ble_gattc.c
│ │ │ │ │ │ ├── conn_mw_ble_gattc.h
│ │ │ │ │ │ ├── conn_mw_ble_gatts.c
│ │ │ │ │ │ ├── conn_mw_ble_gatts.h
│ │ │ │ │ │ ├── conn_mw_ble_l2cap.c
│ │ │ │ │ │ └── conn_mw_ble_l2cap.h
│ │ │ │ │ └── serializers/
│ │ │ │ │ ├── ble_conn.c
│ │ │ │ │ ├── ble_conn.h
│ │ │ │ │ ├── ble_event_enc.c
│ │ │ │ │ ├── ble_evt_conn.c
│ │ │ │ │ ├── ble_evt_conn.h
│ │ │ │ │ ├── ble_gap_conn.c
│ │ │ │ │ ├── ble_gap_conn.h
│ │ │ │ │ ├── ble_gap_evt_conn.c
│ │ │ │ │ ├── ble_gap_evt_conn.h
│ │ │ │ │ ├── ble_gattc_conn.c
│ │ │ │ │ ├── ble_gattc_conn.h
│ │ │ │ │ ├── ble_gattc_evt_conn.c
│ │ │ │ │ ├── ble_gattc_evt_conn.h
│ │ │ │ │ ├── ble_gatts_conn.c
│ │ │ │ │ ├── ble_gatts_conn.h
│ │ │ │ │ ├── ble_gatts_evt_conn.c
│ │ │ │ │ ├── ble_gatts_evt_conn.h
│ │ │ │ │ ├── ble_l2cap_conn.c
│ │ │ │ │ ├── ble_l2cap_conn.h
│ │ │ │ │ ├── ble_l2cap_evt_conn.c
│ │ │ │ │ ├── ble_l2cap_evt_conn.h
│ │ │ │ │ ├── conn_ble_gap_sec_keys.c
│ │ │ │ │ ├── conn_ble_gap_sec_keys.h
│ │ │ │ │ ├── conn_ble_l2cap_sdu_pool.c
│ │ │ │ │ ├── conn_ble_l2cap_sdu_pool.h
│ │ │ │ │ ├── conn_ble_user_mem.c
│ │ │ │ │ ├── conn_ble_user_mem.h
│ │ │ │ │ ├── nrf_soc_conn.c
│ │ │ │ │ └── nrf_soc_conn.h
│ │ │ │ └── common/
│ │ │ │ ├── ble_dtm_conn.h
│ │ │ │ ├── ble_dtm_init.c
│ │ │ │ ├── conn_mw.c
│ │ │ │ ├── conn_mw.h
│ │ │ │ ├── conn_mw_items.c
│ │ │ │ ├── conn_mw_nrf_soc.c
│ │ │ │ └── conn_mw_nrf_soc.h
│ │ │ ├── hal/
│ │ │ │ ├── dtm_uart.c
│ │ │ │ └── dtm_uart.h
│ │ │ ├── ser_conn_cmd_decoder.c
│ │ │ ├── ser_conn_cmd_decoder.h
│ │ │ ├── ser_conn_dtm_cmd_decoder.c
│ │ │ ├── ser_conn_dtm_cmd_decoder.h
│ │ │ ├── ser_conn_error_handling.c
│ │ │ ├── ser_conn_event_encoder.c
│ │ │ ├── ser_conn_event_encoder.h
│ │ │ ├── ser_conn_handlers.c
│ │ │ ├── ser_conn_handlers.h
│ │ │ ├── ser_conn_pkt_decoder.c
│ │ │ ├── ser_conn_pkt_decoder.h
│ │ │ ├── ser_conn_reset_cmd_decoder.c
│ │ │ └── ser_conn_reset_cmd_decoder.h
│ │ ├── softdevice/
│ │ │ ├── common/
│ │ │ │ ├── nrf_sdh.c
│ │ │ │ ├── nrf_sdh.h
│ │ │ │ ├── nrf_sdh_ant.c
│ │ │ │ ├── nrf_sdh_ant.h
│ │ │ │ ├── nrf_sdh_ble.c
│ │ │ │ ├── nrf_sdh_ble.h
│ │ │ │ ├── nrf_sdh_freertos.c
│ │ │ │ ├── nrf_sdh_freertos.h
│ │ │ │ ├── nrf_sdh_soc.c
│ │ │ │ └── nrf_sdh_soc.h
│ │ │ ├── mbr/
│ │ │ │ ├── headers/
│ │ │ │ │ ├── nrf_mbr.h
│ │ │ │ │ └── nrf_svc.h
│ │ │ │ └── hex/
│ │ │ │ └── mbr_nrf52_2.4.1_licence-agreement.txt
│ │ │ ├── s112/
│ │ │ │ ├── doc/
│ │ │ │ │ └── s112_nrf52_7.2.0_licence-agreement.txt
│ │ │ │ ├── headers/
│ │ │ │ │ ├── ble.h
│ │ │ │ │ ├── ble_err.h
│ │ │ │ │ ├── ble_gap.h
│ │ │ │ │ ├── ble_gatt.h
│ │ │ │ │ ├── ble_gattc.h
│ │ │ │ │ ├── ble_gatts.h
│ │ │ │ │ ├── ble_hci.h
│ │ │ │ │ ├── ble_ranges.h
│ │ │ │ │ ├── ble_types.h
│ │ │ │ │ ├── nrf52/
│ │ │ │ │ │ └── nrf_mbr.h
│ │ │ │ │ ├── nrf_error.h
│ │ │ │ │ ├── nrf_error_sdm.h
│ │ │ │ │ ├── nrf_error_soc.h
│ │ │ │ │ ├── nrf_nvic.h
│ │ │ │ │ ├── nrf_sd_def.h
│ │ │ │ │ ├── nrf_sdm.h
│ │ │ │ │ ├── nrf_soc.h
│ │ │ │ │ └── nrf_svc.h
│ │ │ │ ├── hex/
│ │ │ │ │ └── s112_nrf52_7.2.0_licence-agreement.txt
│ │ │ │ └── toolchain/
│ │ │ │ ├── armgcc/
│ │ │ │ │ └── armgcc_s112_nrf52810_xxaa.ld
│ │ │ │ └── iar/
│ │ │ │ └── iar_s112_nrf52810_xxaa.icf
│ │ │ └── s132/
│ │ │ ├── doc/
│ │ │ │ └── s132_nrf52_7.2.0_licence-agreement.txt
│ │ │ ├── headers/
│ │ │ │ ├── ble.h
│ │ │ │ ├── ble_err.h
│ │ │ │ ├── ble_gap.h
│ │ │ │ ├── ble_gatt.h
│ │ │ │ ├── ble_gattc.h
│ │ │ │ ├── ble_gatts.h
│ │ │ │ ├── ble_hci.h
│ │ │ │ ├── ble_l2cap.h
│ │ │ │ ├── ble_ranges.h
│ │ │ │ ├── ble_types.h
│ │ │ │ ├── nrf52/
│ │ │ │ │ └── nrf_mbr.h
│ │ │ │ ├── nrf_error.h
│ │ │ │ ├── nrf_error_sdm.h
│ │ │ │ ├── nrf_error_soc.h
│ │ │ │ ├── nrf_nvic.h
│ │ │ │ ├── nrf_sd_def.h
│ │ │ │ ├── nrf_sdm.h
│ │ │ │ ├── nrf_soc.h
│ │ │ │ └── nrf_svc.h
│ │ │ ├── hex/
│ │ │ │ └── s132_nrf52_7.2.0_licence-agreement.txt
│ │ │ └── toolchain/
│ │ │ ├── armgcc/
│ │ │ │ └── armgcc_s132_nrf52832_xxaa.ld
│ │ │ └── iar/
│ │ │ └── iar_s132_nrf52832_xxaa.icf
│ │ └── toolchain/
│ │ ├── arm/
│ │ │ └── uicr_config.h
│ │ ├── cmsis/
│ │ │ ├── dsp/
│ │ │ │ ├── GCC/
│ │ │ │ │ ├── libarm_cortexM4l_math.a
│ │ │ │ │ └── libarm_cortexM4lf_math.a
│ │ │ │ ├── Include/
│ │ │ │ │ ├── arm_common_tables.h
│ │ │ │ │ ├── arm_const_structs.h
│ │ │ │ │ └── arm_math.h
│ │ │ │ └── license.txt
│ │ │ └── include/
│ │ │ ├── cmsis_armcc.h
│ │ │ ├── cmsis_armclang.h
│ │ │ ├── cmsis_armclang_ltm.h
│ │ │ ├── cmsis_compiler.h
│ │ │ ├── cmsis_gcc.h
│ │ │ ├── cmsis_iccarm.h
│ │ │ ├── cmsis_version.h
│ │ │ ├── core_armv81mml.h
│ │ │ ├── core_armv8mbl.h
│ │ │ ├── core_armv8mml.h
│ │ │ ├── core_cm0.h
│ │ │ ├── core_cm0plus.h
│ │ │ ├── core_cm1.h
│ │ │ ├── core_cm23.h
│ │ │ ├── core_cm3.h
│ │ │ ├── core_cm33.h
│ │ │ ├── core_cm35p.h
│ │ │ ├── core_cm4.h
│ │ │ ├── core_cm7.h
│ │ │ ├── core_sc000.h
│ │ │ ├── core_sc300.h
│ │ │ ├── mpu_armv7.h
│ │ │ ├── mpu_armv8.h
│ │ │ └── tz_context.h
│ │ └── gcc/
│ │ ├── Makefile.common
│ │ ├── Makefile.posix
│ │ ├── Makefile.windows
│ │ ├── dump.mk
│ │ └── gcc_nrf51_common.ld
│ ├── external/
│ │ ├── fprintf/
│ │ │ ├── nrf_fprintf.c
│ │ │ ├── nrf_fprintf.h
│ │ │ ├── nrf_fprintf_format.c
│ │ │ └── nrf_fprintf_format.h
│ │ ├── licenses_external.txt
│ │ ├── micro-ecc/
│ │ │ ├── build_all.bat
│ │ │ ├── build_all.sh
│ │ │ ├── license.txt
│ │ │ ├── nrf51_armgcc/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf51.a
│ │ │ ├── nrf51_iar/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf51.a
│ │ │ ├── nrf51_keil/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ └── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ ├── nrf52hf_armgcc/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf52.a
│ │ │ ├── nrf52hf_iar/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf52.a
│ │ │ ├── nrf52hf_keil/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ └── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ ├── nrf52nf_armgcc/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf52.a
│ │ │ ├── nrf52nf_iar/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf52.a
│ │ │ └── nrf52nf_keil/
│ │ │ └── armgcc/
│ │ │ ├── Makefile
│ │ │ └── ext_micro_ecc_gcc_nRF5x.ld
│ │ ├── nano-pb/
│ │ │ ├── LICENSE.txt
│ │ │ ├── generator/
│ │ │ │ ├── camel_case_splitter.py
│ │ │ │ ├── nanopb_generator.py
│ │ │ │ ├── proto/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── google/
│ │ │ │ │ │ └── protobuf/
│ │ │ │ │ │ └── descriptor.proto
│ │ │ │ │ ├── nanopb.proto
│ │ │ │ │ ├── nanopb_pb2.py
│ │ │ │ │ ├── plugin.proto
│ │ │ │ │ └── plugin_pb2.py
│ │ │ │ ├── protoc-gen-nanopb
│ │ │ │ └── protoc-gen-nanopb.bat
│ │ │ ├── pb.h
│ │ │ ├── pb_common.c
│ │ │ ├── pb_common.h
│ │ │ ├── pb_decode.c
│ │ │ ├── pb_decode.h
│ │ │ ├── pb_encode.c
│ │ │ └── pb_encode.h
│ │ ├── nrf_oberon/
│ │ │ ├── include/
│ │ │ │ ├── mbedtls/
│ │ │ │ │ ├── chacha20_alt.h
│ │ │ │ │ ├── ecjpake_alt.h
│ │ │ │ │ ├── poly1305_alt.h
│ │ │ │ │ ├── sha1_alt.h
│ │ │ │ │ └── sha256_alt.h
│ │ │ │ ├── ocrypto_aes_cbc.h
│ │ │ │ ├── ocrypto_aes_ccm.h
│ │ │ │ ├── ocrypto_aes_cmac.h
│ │ │ │ ├── ocrypto_aes_ctr.h
│ │ │ │ ├── ocrypto_aes_eax.h
│ │ │ │ ├── ocrypto_aes_gcm.h
│ │ │ │ ├── ocrypto_aes_key.h
│ │ │ │ ├── ocrypto_chacha20.h
│ │ │ │ ├── ocrypto_chacha20_poly1305.h
│ │ │ │ ├── ocrypto_chacha20_poly1305_inc.h
│ │ │ │ ├── ocrypto_constant_time.h
│ │ │ │ ├── ocrypto_curve25519.h
│ │ │ │ ├── ocrypto_curve_p224.h
│ │ │ │ ├── ocrypto_curve_p256.h
│ │ │ │ ├── ocrypto_ecdh_p224.h
│ │ │ │ ├── ocrypto_ecdh_p256.h
│ │ │ │ ├── ocrypto_ecdsa_p224.h
│ │ │ │ ├── ocrypto_ecdsa_p256.h
│ │ │ │ ├── ocrypto_ecjpake_p256.h
│ │ │ │ ├── ocrypto_ed25519.h
│ │ │ │ ├── ocrypto_hkdf_sha1.h
│ │ │ │ ├── ocrypto_hkdf_sha256.h
│ │ │ │ ├── ocrypto_hkdf_sha512.h
│ │ │ │ ├── ocrypto_hmac_sha1.h
│ │ │ │ ├── ocrypto_hmac_sha256.h
│ │ │ │ ├── ocrypto_hmac_sha512.h
│ │ │ │ ├── ocrypto_poly1305.h
│ │ │ │ ├── ocrypto_rsa.h
│ │ │ │ ├── ocrypto_rsa_key.h
│ │ │ │ ├── ocrypto_sc_p224.h
│ │ │ │ ├── ocrypto_sc_p256.h
│ │ │ │ ├── ocrypto_sha1.h
│ │ │ │ ├── ocrypto_sha224.h
│ │ │ │ ├── ocrypto_sha256.h
│ │ │ │ ├── ocrypto_sha384.h
│ │ │ │ ├── ocrypto_sha512.h
│ │ │ │ ├── ocrypto_srp.h
│ │ │ │ └── ocrypto_srtp.h
│ │ │ ├── lib/
│ │ │ │ ├── cortex-m0/
│ │ │ │ │ └── soft-float/
│ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ ├── liboberon_mbedtls_3.0.8.a
│ │ │ │ │ └── short-wchar/
│ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ └── liboberon_mbedtls_3.0.8.a
│ │ │ │ ├── cortex-m4/
│ │ │ │ │ ├── hard-float/
│ │ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ │ ├── liboberon_mbedtls_3.0.8.a
│ │ │ │ │ │ └── short-wchar/
│ │ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ │ └── liboberon_mbedtls_3.0.8.a
│ │ │ │ │ └── soft-float/
│ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ ├── liboberon_mbedtls_3.0.8.a
│ │ │ │ │ └── short-wchar/
│ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ └── liboberon_mbedtls_3.0.8.a
│ │ │ │ └── license.txt
│ │ │ └── license.txt
│ │ └── segger_rtt/
│ │ ├── SEGGER_RTT.c
│ │ ├── SEGGER_RTT.h
│ │ ├── SEGGER_RTT_Conf.h
│ │ ├── SEGGER_RTT_Syscalls_GCC.c
│ │ ├── SEGGER_RTT_Syscalls_IAR.c
│ │ ├── SEGGER_RTT_Syscalls_KEIL.c
│ │ ├── SEGGER_RTT_Syscalls_SES.c
│ │ ├── SEGGER_RTT_printf.c
│ │ └── license/
│ │ └── license.txt
│ ├── integration/
│ │ └── nrfx/
│ │ ├── legacy/
│ │ │ ├── apply_old_config.h
│ │ │ ├── nrf_drv_clock.c
│ │ │ ├── nrf_drv_clock.h
│ │ │ ├── nrf_drv_common.h
│ │ │ ├── nrf_drv_comp.h
│ │ │ ├── nrf_drv_gpiote.h
│ │ │ ├── nrf_drv_i2s.h
│ │ │ ├── nrf_drv_lpcomp.h
│ │ │ ├── nrf_drv_pdm.h
│ │ │ ├── nrf_drv_power.c
│ │ │ ├── nrf_drv_power.h
│ │ │ ├── nrf_drv_ppi.c
│ │ │ ├── nrf_drv_ppi.h
│ │ │ ├── nrf_drv_pwm.h
│ │ │ ├── nrf_drv_qdec.h
│ │ │ ├── nrf_drv_qspi.h
│ │ │ ├── nrf_drv_rng.c
│ │ │ ├── nrf_drv_rng.h
│ │ │ ├── nrf_drv_rtc.h
│ │ │ ├── nrf_drv_saadc.h
│ │ │ ├── nrf_drv_spi.c
│ │ │ ├── nrf_drv_spi.h
│ │ │ ├── nrf_drv_spis.c
│ │ │ ├── nrf_drv_spis.h
│ │ │ ├── nrf_drv_swi.c
│ │ │ ├── nrf_drv_swi.h
│ │ │ ├── nrf_drv_systick.h
│ │ │ ├── nrf_drv_timer.h
│ │ │ ├── nrf_drv_twi.c
│ │ │ ├── nrf_drv_twi.h
│ │ │ ├── nrf_drv_twis.h
│ │ │ ├── nrf_drv_uart.c
│ │ │ ├── nrf_drv_uart.h
│ │ │ ├── nrf_drv_usbd.h
│ │ │ ├── nrf_drv_usbd_errata.h
│ │ │ └── nrf_drv_wdt.h
│ │ ├── nrfx_config.h
│ │ ├── nrfx_glue.h
│ │ └── nrfx_log.h
│ └── modules/
│ └── nrfx/
│ ├── drivers/
│ │ ├── include/
│ │ │ ├── nrf_bitmask.h
│ │ │ ├── nrfx_adc.h
│ │ │ ├── nrfx_clock.h
│ │ │ ├── nrfx_comp.h
│ │ │ ├── nrfx_dppi.h
│ │ │ ├── nrfx_gpiote.h
│ │ │ ├── nrfx_i2s.h
│ │ │ ├── nrfx_lpcomp.h
│ │ │ ├── nrfx_nfct.h
│ │ │ ├── nrfx_nvmc.h
│ │ │ ├── nrfx_pdm.h
│ │ │ ├── nrfx_power.h
│ │ │ ├── nrfx_power_clock.h
│ │ │ ├── nrfx_ppi.h
│ │ │ ├── nrfx_pwm.h
│ │ │ ├── nrfx_qdec.h
│ │ │ ├── nrfx_qspi.h
│ │ │ ├── nrfx_rng.h
│ │ │ ├── nrfx_rtc.h
│ │ │ ├── nrfx_saadc.h
│ │ │ ├── nrfx_saadc_v2.h
│ │ │ ├── nrfx_spi.h
│ │ │ ├── nrfx_spim.h
│ │ │ ├── nrfx_spis.h
│ │ │ ├── nrfx_swi.h
│ │ │ ├── nrfx_systick.h
│ │ │ ├── nrfx_temp.h
│ │ │ ├── nrfx_timer.h
│ │ │ ├── nrfx_twi.h
│ │ │ ├── nrfx_twi_twim.h
│ │ │ ├── nrfx_twim.h
│ │ │ ├── nrfx_twis.h
│ │ │ ├── nrfx_uart.h
│ │ │ ├── nrfx_uarte.h
│ │ │ ├── nrfx_usbd.h
│ │ │ └── nrfx_wdt.h
│ │ ├── nrfx_common.h
│ │ ├── nrfx_errors.h
│ │ └── src/
│ │ ├── nrfx_adc.c
│ │ ├── nrfx_clock.c
│ │ ├── nrfx_comp.c
│ │ ├── nrfx_dppi.c
│ │ ├── nrfx_gpiote.c
│ │ ├── nrfx_i2s.c
│ │ ├── nrfx_lpcomp.c
│ │ ├── nrfx_nfct.c
│ │ ├── nrfx_nvmc.c
│ │ ├── nrfx_pdm.c
│ │ ├── nrfx_power.c
│ │ ├── nrfx_ppi.c
│ │ ├── nrfx_pwm.c
│ │ ├── nrfx_qdec.c
│ │ ├── nrfx_qspi.c
│ │ ├── nrfx_rng.c
│ │ ├── nrfx_rtc.c
│ │ ├── nrfx_saadc.c
│ │ ├── nrfx_spi.c
│ │ ├── nrfx_spim.c
│ │ ├── nrfx_spis.c
│ │ ├── nrfx_swi.c
│ │ ├── nrfx_systick.c
│ │ ├── nrfx_temp.c
│ │ ├── nrfx_timer.c
│ │ ├── nrfx_twi.c
│ │ ├── nrfx_twi_twim.c
│ │ ├── nrfx_twim.c
│ │ ├── nrfx_twis.c
│ │ ├── nrfx_uart.c
│ │ ├── nrfx_uarte.c
│ │ ├── nrfx_usbd.c
│ │ ├── nrfx_usbd_errata.h
│ │ ├── nrfx_wdt.c
│ │ └── prs/
│ │ ├── nrfx_prs.c
│ │ └── nrfx_prs.h
│ ├── hal/
│ │ ├── nrf_aar.h
│ │ ├── nrf_acl.h
│ │ ├── nrf_adc.h
│ │ ├── nrf_bprot.h
│ │ ├── nrf_ccm.h
│ │ ├── nrf_clock.h
│ │ ├── nrf_comp.h
│ │ ├── nrf_dppi.h
│ │ ├── nrf_ecb.c
│ │ ├── nrf_ecb.h
│ │ ├── nrf_egu.h
│ │ ├── nrf_ficr.h
│ │ ├── nrf_gpio.h
│ │ ├── nrf_gpiote.h
│ │ ├── nrf_i2s.h
│ │ ├── nrf_kmu.h
│ │ ├── nrf_lpcomp.h
│ │ ├── nrf_mpu.h
│ │ ├── nrf_mwu.h
│ │ ├── nrf_nfct.h
│ │ ├── nrf_nvmc.c
│ │ ├── nrf_nvmc.h
│ │ ├── nrf_pdm.h
│ │ ├── nrf_power.h
│ │ ├── nrf_ppi.h
│ │ ├── nrf_pwm.h
│ │ ├── nrf_qdec.h
│ │ ├── nrf_qspi.h
│ │ ├── nrf_radio.h
│ │ ├── nrf_regulators.h
│ │ ├── nrf_rng.h
│ │ ├── nrf_rtc.h
│ │ ├── nrf_saadc.h
│ │ ├── nrf_spi.h
│ │ ├── nrf_spim.h
│ │ ├── nrf_spis.h
│ │ ├── nrf_spu.h
│ │ ├── nrf_systick.h
│ │ ├── nrf_temp.h
│ │ ├── nrf_timer.h
│ │ ├── nrf_twi.h
│ │ ├── nrf_twim.h
│ │ ├── nrf_twis.h
│ │ ├── nrf_uart.h
│ │ ├── nrf_uarte.h
│ │ ├── nrf_usbd.h
│ │ ├── nrf_vmc.h
│ │ └── nrf_wdt.h
│ ├── mdk/
│ │ ├── arm_startup_nrf51.s
│ │ ├── arm_startup_nrf52.s
│ │ ├── arm_startup_nrf52805.s
│ │ ├── arm_startup_nrf52810.s
│ │ ├── arm_startup_nrf52811.s
│ │ ├── arm_startup_nrf52820.s
│ │ ├── arm_startup_nrf52833.s
│ │ ├── arm_startup_nrf52840.s
│ │ ├── arm_startup_nrf5340_application.s
│ │ ├── arm_startup_nrf5340_network.s
│ │ ├── arm_startup_nrf9160.s
│ │ ├── compiler_abstraction.h
│ │ ├── gcc_startup_nrf51.S
│ │ ├── gcc_startup_nrf52.S
│ │ ├── gcc_startup_nrf52805.S
│ │ ├── gcc_startup_nrf52810.S
│ │ ├── gcc_startup_nrf52811.S
│ │ ├── gcc_startup_nrf52820.S
│ │ ├── gcc_startup_nrf52833.S
│ │ ├── gcc_startup_nrf52840.S
│ │ ├── gcc_startup_nrf5340_application.S
│ │ ├── gcc_startup_nrf5340_network.S
│ │ ├── gcc_startup_nrf9160.S
│ │ ├── iar_startup_nrf51.s
│ │ ├── iar_startup_nrf52.s
│ │ ├── iar_startup_nrf52805.s
│ │ ├── iar_startup_nrf52810.s
│ │ ├── iar_startup_nrf52811.s
│ │ ├── iar_startup_nrf52820.s
│ │ ├── iar_startup_nrf52833.s
│ │ ├── iar_startup_nrf52840.s
│ │ ├── iar_startup_nrf5340_application.s
│ │ ├── iar_startup_nrf5340_network.s
│ │ ├── iar_startup_nrf9160.s
│ │ ├── nrf.h
│ │ ├── nrf51.h
│ │ ├── nrf51.svd
│ │ ├── nrf51422_peripherals.h
│ │ ├── nrf51422_xxaa.ld
│ │ ├── nrf51422_xxab.ld
│ │ ├── nrf51422_xxac.ld
│ │ ├── nrf51801_peripherals.h
│ │ ├── nrf51801_xxab.ld
│ │ ├── nrf51802_peripherals.h
│ │ ├── nrf51802_xxaa.ld
│ │ ├── nrf51822_peripherals.h
│ │ ├── nrf51822_xxaa.ld
│ │ ├── nrf51822_xxab.ld
│ │ ├── nrf51822_xxac.ld
│ │ ├── nrf51824_peripherals.h
│ │ ├── nrf51824_xxaa.ld
│ │ ├── nrf51_bitfields.h
│ │ ├── nrf51_common.ld
│ │ ├── nrf51_deprecated.h
│ │ ├── nrf51_erratas.h
│ │ ├── nrf51_peripherals.h
│ │ ├── nrf51_to_nrf52.h
│ │ ├── nrf51_to_nrf52810.h
│ │ ├── nrf51_to_nrf52840.h
│ │ ├── nrf51_xxaa.ld
│ │ ├── nrf51_xxab.ld
│ │ ├── nrf51_xxac.ld
│ │ ├── nrf52.h
│ │ ├── nrf52.svd
│ │ ├── nrf52805.h
│ │ ├── nrf52805.svd
│ │ ├── nrf52805_bitfields.h
│ │ ├── nrf52805_peripherals.h
│ │ ├── nrf52805_xxaa.ld
│ │ ├── nrf52810.h
│ │ ├── nrf52810.svd
│ │ ├── nrf52810_bitfields.h
│ │ ├── nrf52810_name_change.h
│ │ ├── nrf52810_peripherals.h
│ │ ├── nrf52810_to_nrf52811.h
│ │ ├── nrf52810_xxaa.ld
│ │ ├── nrf52811.h
│ │ ├── nrf52811.svd
│ │ ├── nrf52811_bitfields.h
│ │ ├── nrf52811_peripherals.h
│ │ ├── nrf52811_xxaa.ld
│ │ ├── nrf52820.h
│ │ ├── nrf52820.svd
│ │ ├── nrf52820_bitfields.h
│ │ ├── nrf52820_peripherals.h
│ │ ├── nrf52820_xxaa.ld
│ │ ├── nrf52832_peripherals.h
│ │ ├── nrf52832_xxaa.ld
│ │ ├── nrf52832_xxab.ld
│ │ ├── nrf52833.h
│ │ ├── nrf52833.svd
│ │ ├── nrf52833_bitfields.h
│ │ ├── nrf52833_peripherals.h
│ │ ├── nrf52833_to_nrf52820.h
│ │ ├── nrf52833_xxaa.ld
│ │ ├── nrf52840.h
│ │ ├── nrf52840.svd
│ │ ├── nrf52840_bitfields.h
│ │ ├── nrf52840_peripherals.h
│ │ ├── nrf52840_xxaa.ld
│ │ ├── nrf52_bitfields.h
│ │ ├── nrf52_common.ld
│ │ ├── nrf52_erratas.h
│ │ ├── nrf52_name_change.h
│ │ ├── nrf52_to_nrf52810.h
│ │ ├── nrf52_to_nrf52833.h
│ │ ├── nrf52_to_nrf52840.h
│ │ ├── nrf52_xxaa.ld
│ │ ├── nrf5340_application.h
│ │ ├── nrf5340_application.svd
│ │ ├── nrf5340_application_bitfields.h
│ │ ├── nrf5340_application_name_change.h
│ │ ├── nrf5340_application_peripherals.h
│ │ ├── nrf5340_network.h
│ │ ├── nrf5340_network.svd
│ │ ├── nrf5340_network_bitfields.h
│ │ ├── nrf5340_network_name_change.h
│ │ ├── nrf5340_network_peripherals.h
│ │ ├── nrf5340_xxaa_application.ld
│ │ ├── nrf5340_xxaa_network.ld
│ │ ├── nrf53_erratas.h
│ │ ├── nrf9160.h
│ │ ├── nrf9160.svd
│ │ ├── nrf9160_bitfields.h
│ │ ├── nrf9160_name_change.h
│ │ ├── nrf9160_peripherals.h
│ │ ├── nrf9160_xxaa.ld
│ │ ├── nrf91_erratas.h
│ │ ├── nrf_common.ld
│ │ ├── nrf_erratas.h
│ │ ├── nrf_peripherals.h
│ │ ├── ses_startup_nrf51.s
│ │ ├── ses_startup_nrf52.s
│ │ ├── ses_startup_nrf52805.s
│ │ ├── ses_startup_nrf52810.s
│ │ ├── ses_startup_nrf52811.s
│ │ ├── ses_startup_nrf52820.s
│ │ ├── ses_startup_nrf52833.s
│ │ ├── ses_startup_nrf52840.s
│ │ ├── ses_startup_nrf5340_application.s
│ │ ├── ses_startup_nrf5340_network.s
│ │ ├── ses_startup_nrf9160.s
│ │ ├── ses_startup_nrf_common.s
│ │ ├── startup_config.h
│ │ ├── system_nrf.h
│ │ ├── system_nrf51.c
│ │ ├── system_nrf51.h
│ │ ├── system_nrf52.c
│ │ ├── system_nrf52.h
│ │ ├── system_nrf52805.c
│ │ ├── system_nrf52805.h
│ │ ├── system_nrf52810.c
│ │ ├── system_nrf52810.h
│ │ ├── system_nrf52811.c
│ │ ├── system_nrf52811.h
│ │ ├── system_nrf52820.c
│ │ ├── system_nrf52820.h
│ │ ├── system_nrf52833.c
│ │ ├── system_nrf52833.h
│ │ ├── system_nrf52840.c
│ │ ├── system_nrf52840.h
│ │ ├── system_nrf52_approtect.h
│ │ ├── system_nrf5340_application.c
│ │ ├── system_nrf5340_application.h
│ │ ├── system_nrf5340_network.c
│ │ ├── system_nrf5340_network.h
│ │ ├── system_nrf53_approtect.h
│ │ ├── system_nrf9160.c
│ │ └── system_nrf9160.h
│ ├── nrfx.h
│ └── soc/
│ ├── nrfx_atomic.c
│ ├── nrfx_atomic.h
│ ├── nrfx_atomic_internal.h
│ ├── nrfx_coredep.h
│ ├── nrfx_irqs.h
│ ├── nrfx_irqs_nrf51.h
│ ├── nrfx_irqs_nrf52810.h
│ ├── nrfx_irqs_nrf52811.h
│ ├── nrfx_irqs_nrf52820.h
│ ├── nrfx_irqs_nrf52832.h
│ ├── nrfx_irqs_nrf52833.h
│ ├── nrfx_irqs_nrf52840.h
│ └── nrfx_irqs_nrf9160.h
├── application/
│ ├── bootloader/
│ │ ├── dfu_public_key.c
│ │ ├── main.c
│ │ ├── project/
│ │ │ ├── Makefile
│ │ │ ├── nrf52810.mk
│ │ │ ├── nrf52810_s112.ld
│ │ │ ├── nrf52811.mk
│ │ │ ├── nrf52811_s112.ld
│ │ │ ├── nrf52832.mk
│ │ │ └── nrf52832_s132.ld
│ │ └── sdk_config.h
│ └── main/
│ ├── project/
│ │ ├── app.mk
│ │ ├── bl.mk
│ │ ├── driver.mk
│ │ ├── kbd.mk
│ │ ├── nrf52810.mk
│ │ ├── nrf52810_s112.ld
│ │ ├── nrf52811.mk
│ │ ├── nrf52811_s112.ld
│ │ ├── nrf52832.mk
│ │ ├── nrf52832_s132.ld
│ │ ├── private.key
│ │ └── tmk.mk
│ └── src/
│ ├── ble/
│ │ ├── ble_bas_service.c
│ │ ├── ble_bas_service.h
│ │ ├── ble_config.h
│ │ ├── ble_hid_descriptor.h
│ │ ├── ble_hid_service.c
│ │ ├── ble_hid_service.h
│ │ ├── ble_services.c
│ │ └── ble_services.h
│ ├── config/
│ │ ├── keyboard_config.h
│ │ └── sdk_config.h
│ ├── driver/
│ │ ├── 3led/
│ │ │ ├── 3led_status.c
│ │ │ ├── 3led_status.h
│ │ │ └── README.md
│ │ ├── i2c/
│ │ │ ├── README.md
│ │ │ ├── shared_i2c.c
│ │ │ └── shared_i2c.h
│ │ ├── ledmap/
│ │ │ ├── README.md
│ │ │ ├── ledmap.c
│ │ │ └── ledmap.h
│ │ ├── rgb_light/
│ │ │ ├── rgb_light.c
│ │ │ └── rgb_light.h
│ │ ├── rgb_matrix/
│ │ │ ├── color.c
│ │ │ ├── color.h
│ │ │ ├── led_tables.c
│ │ │ ├── led_tables.h
│ │ │ ├── lib8tion/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── lib8tion.c
│ │ │ │ ├── lib8tion.h
│ │ │ │ ├── math8.h
│ │ │ │ ├── random8.h
│ │ │ │ ├── scale8.h
│ │ │ │ └── trig8.h
│ │ │ ├── rgb.h
│ │ │ ├── rgb_matrix.c
│ │ │ ├── rgb_matrix.h
│ │ │ ├── rgb_matrix_animations/
│ │ │ │ ├── alpha_mods_anim.h
│ │ │ │ ├── breathing_anim.h
│ │ │ │ ├── colorband_pinwheel_sat_anim.h
│ │ │ │ ├── colorband_pinwheel_val_anim.h
│ │ │ │ ├── colorband_sat_anim.h
│ │ │ │ ├── colorband_spiral_sat_anim.h
│ │ │ │ ├── colorband_spiral_val_anim.h
│ │ │ │ ├── colorband_val_anim.h
│ │ │ │ ├── cycle_all_anim.h
│ │ │ │ ├── cycle_left_right_anim.h
│ │ │ │ ├── cycle_out_in_anim.h
│ │ │ │ ├── cycle_out_in_dual_anim.h
│ │ │ │ ├── cycle_pinwheel_anim.h
│ │ │ │ ├── cycle_spiral_anim.h
│ │ │ │ ├── cycle_up_down_anim.h
│ │ │ │ ├── digital_rain_anim.h
│ │ │ │ ├── dual_beacon_anim.h
│ │ │ │ ├── gradient_left_right_anim.h
│ │ │ │ ├── gradient_up_down_anim.h
│ │ │ │ ├── hue_breathing_anim.h
│ │ │ │ ├── hue_pendulum_anim.h
│ │ │ │ ├── hue_wave_anim.h
│ │ │ │ ├── jellybean_raindrops_anim.h
│ │ │ │ ├── pixel_flow_anim.h
│ │ │ │ ├── pixel_fractal_anim.h
│ │ │ │ ├── pixel_rain_anim.h
│ │ │ │ ├── rainbow_beacon_anim.h
│ │ │ │ ├── rainbow_moving_chevron_anim.h
│ │ │ │ ├── rainbow_pinwheels_anim.h
│ │ │ │ ├── raindrops_anim.h
│ │ │ │ ├── rgb_matrix_effects.inc
│ │ │ │ ├── solid_color_anim.h
│ │ │ │ ├── solid_reactive_anim.h
│ │ │ │ ├── solid_reactive_cross.h
│ │ │ │ ├── solid_reactive_nexus.h
│ │ │ │ ├── solid_reactive_simple_anim.h
│ │ │ │ ├── solid_reactive_wide.h
│ │ │ │ ├── solid_splash_anim.h
│ │ │ │ ├── splash_anim.h
│ │ │ │ └── typing_heatmap_anim.h
│ │ │ ├── rgb_matrix_drivers.c
│ │ │ ├── rgb_matrix_indicator.c
│ │ │ ├── rgb_matrix_runners/
│ │ │ │ ├── effect_runner_dx_dy.h
│ │ │ │ ├── effect_runner_dx_dy_dist.h
│ │ │ │ ├── effect_runner_i.h
│ │ │ │ ├── effect_runner_reactive.h
│ │ │ │ ├── effect_runner_reactive_splash.h
│ │ │ │ ├── effect_runner_sin_cos_i.h
│ │ │ │ └── rgb_matrix_runners.inc
│ │ │ ├── rgb_matrix_types.h
│ │ │ ├── rgblight.c
│ │ │ ├── rgblight.h
│ │ │ ├── rgblight_breathe_table.h
│ │ │ ├── rgblight_ctrl.c
│ │ │ ├── rgblight_list.h
│ │ │ ├── rgblight_modes.h
│ │ │ ├── rgblight_timer.c
│ │ │ ├── rgblight_timer.h
│ │ │ ├── ws2812.c
│ │ │ └── ws2812.h
│ │ ├── rotary_encoder/
│ │ │ ├── README.md
│ │ │ ├── encoder.c
│ │ │ ├── radial_controller.c
│ │ │ └── radial_controller.h
│ │ ├── simple_rgb/
│ │ │ ├── README.md
│ │ │ ├── led_rgb.c
│ │ │ └── led_rgb.h
│ │ ├── soft_encoder/
│ │ │ ├── README.md
│ │ │ ├── soft_encoder.c
│ │ │ └── soft_encoder.h
│ │ └── ssd1306/
│ │ ├── README.md
│ │ ├── font_5x8.h
│ │ ├── font_gohu.h
│ │ ├── icons.h
│ │ ├── image_header.h
│ │ ├── oled_graph.c
│ │ ├── oled_graph.h
│ │ ├── ssd1306_oled.c
│ │ └── ssd1306_oled.h
│ ├── events.h
│ ├── keyboard/
│ │ ├── action_macro_extend.h
│ │ ├── adc_convert.c
│ │ ├── adc_convert.h
│ │ ├── data_storage.c
│ │ ├── data_storage.h
│ │ ├── host_driver.c
│ │ ├── keyboard_battery.c
│ │ ├── keyboard_battery.h
│ │ ├── keyboard_bootcheck.c
│ │ ├── keyboard_bootcheck.h
│ │ ├── keyboard_bootmagic.c
│ │ ├── keyboard_command.c
│ │ ├── keyboard_command.h
│ │ ├── keyboard_evt.c
│ │ ├── keyboard_evt.h
│ │ ├── keyboard_fn.c
│ │ ├── keyboard_fn.h
│ │ ├── keyboard_host_driver.h
│ │ ├── keyboard_led.c
│ │ ├── keyboard_led.h
│ │ ├── keyboard_matrix.c
│ │ ├── keyboard_matrix.h
│ │ ├── keyboard_services.c
│ │ ├── keyboard_services.h
│ │ ├── macro_player.c
│ │ ├── macro_player.h
│ │ ├── passkey.c
│ │ ├── passkey.h
│ │ ├── power_button.c
│ │ ├── power_button.h
│ │ ├── power_save.c
│ │ ├── power_save.h
│ │ ├── queue.h
│ │ ├── sleep_reason.c
│ │ ├── sleep_reason.h
│ │ ├── store_config.c
│ │ ├── store_config.h
│ │ └── util.h
│ ├── main.c
│ ├── main.h
│ ├── protocol/
│ │ ├── ble_comm.c
│ │ ├── ble_comm.h
│ │ ├── hid_configuration.c
│ │ ├── hid_configuration.h
│ │ ├── lufa/
│ │ │ └── descriptor.h
│ │ ├── usb_comm.c
│ │ └── usb_comm.h
│ ├── tmk/
│ │ ├── eeconfig.c
│ │ ├── glue_layer.c
│ │ ├── keyboard_timer.c
│ │ └── wait_api.h
│ └── user/
│ └── glab/
│ ├── user_fn.c
│ └── user_fn.h
├── doc/
│ ├── communicate.md
│ ├── driver.md
│ ├── hook.md
│ └── porting.md
├── docker/
│ ├── post.sh
│ └── pre.sh
├── keyboard/
│ ├── Hal67/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── Makefile
│ ├── Omega40/
│ │ ├── Makefile
│ │ └── a/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── Omega45/
│ │ ├── Makefile
│ │ ├── c/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── d/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── e/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── f/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── Omega50/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── b/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── c/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── Omega64/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ ├── keymap_plain.c
│ │ └── rules.mk
│ ├── Omega84/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ ├── keymap_plain.c
│ │ └── rules.mk
│ ├── ergoconn/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── common/
│ │ │ ├── common.mk
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_left.c
│ │ │ └── keymap_right.c
│ │ ├── rev0_left/
│ │ │ └── Makefile
│ │ ├── rev0_right/
│ │ │ └── Makefile
│ │ ├── rev1_left/
│ │ │ └── Makefile
│ │ └── rev1_right/
│ │ └── Makefile
│ ├── farad69/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── b/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── c/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── d/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── g84-4100/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ └── keymap_plain.c
│ ├── gt-ble60/
│ │ ├── Makefile
│ │ ├── d/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── e/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── f/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── g/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── gt-pad/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── b/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ └── rules.mk
│ │ └── c/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── gt-planck/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── custom_led.c
│ │ │ └── rules.mk
│ │ └── b/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── lkb-core/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ └── keymap_plain.c
│ ├── lot60-ble/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── common/
│ │ │ ├── common.mk
│ │ │ ├── config.h
│ │ │ ├── config.rev_c.h
│ │ │ ├── config.rev_e.h
│ │ │ ├── config.rev_f.h
│ │ │ ├── config.rev_g.h
│ │ │ ├── config.rev_h.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── user_evt.c
│ │ ├── rev_c/
│ │ │ └── Makefile
│ │ ├── rev_e/
│ │ │ └── Makefile
│ │ ├── rev_e_3led/
│ │ │ └── Makefile
│ │ ├── rev_f/
│ │ │ └── Makefile
│ │ ├── rev_f_3led/
│ │ │ └── Makefile
│ │ ├── rev_g/
│ │ │ └── Makefile
│ │ ├── rev_g_3led/
│ │ │ └── Makefile
│ │ └── rev_h/
│ │ └── Makefile
│ ├── newhope64/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── b/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ ├── keymap_plain.c
│ │ └── rules.mk
│ ├── template/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ └── keymap_plain.c
│ ├── test/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ ├── keymap_plain.c
│ │ ├── rules.mk
│ │ └── user_evt.c
│ └── volta9/
│ ├── Makefile
│ └── a/
│ ├── Makefile
│ ├── README.md
│ ├── actionmap_common.h
│ ├── actionmap_plain.c
│ ├── config.h
│ └── rules.mk
├── license.md
├── template/
│ ├── Makefile.common
│ ├── Makefile.posix.template
│ ├── Makefile.windows.template
│ ├── README.txt
│ ├── dump.mk
│ └── gcc_nrf51_common.ld
├── tmk/
│ └── tmk_core/
│ └── common/
│ ├── action.c
│ ├── action.h
│ ├── action_code.h
│ ├── action_layer.c
│ ├── action_layer.h
│ ├── action_macro.c
│ ├── action_macro.h
│ ├── action_tapping.c
│ ├── action_tapping.h
│ ├── action_util.c
│ ├── action_util.h
│ ├── actionmap.c
│ ├── actionmap.h
│ ├── backlight.c
│ ├── backlight.h
│ ├── bootloader.h
│ ├── bootmagic.c
│ ├── bootmagic.h
│ ├── command.c
│ ├── command.h
│ ├── debug.c
│ ├── debug.h
│ ├── eeconfig.h
│ ├── hook.c
│ ├── hook.h
│ ├── host.c
│ ├── host.h
│ ├── host_driver.h
│ ├── keyboard.c
│ ├── keyboard.h
│ ├── keycode.h
│ ├── keymap.c
│ ├── keymap.h
│ ├── led.h
│ ├── matrix.c
│ ├── matrix.h
│ ├── mousekey.c
│ ├── mousekey.h
│ ├── nodebug.h
│ ├── print.c
│ ├── print.h
│ ├── progmem.h
│ ├── report.h
│ ├── ringbuf.h
│ ├── sendchar.h
│ ├── sendchar_null.c
│ ├── sendchar_uart.c
│ ├── sleep_led.h
│ ├── suspend.h
│ ├── timer.h
│ ├── uart.h
│ ├── unimap.c
│ ├── unimap.h
│ ├── util.c
│ ├── util.h
│ └── wait.h
└── usb/
├── .gitignore
├── CH554_SDCC.h
├── DAP.c
├── DAP.h
├── DAP_config.h
├── DAP_hid.c
├── DAP_hid.h
├── SW_DP.c
├── app_timer.h
├── compiler.h
├── dap_strings.h
├── descriptor.c
├── descriptor.h
├── endpoints.c
├── endpoints.h
├── interrupt.c
├── interrupt.h
├── main.c
├── system.c
├── system.h
├── uart.c
├── uart.h
├── usb.mk
├── usb_comm.h
└── usb_descriptor.h
================================================
FILE CONTENTS
================================================
================================================
FILE: .dockerignore
================================================
**/_build/
**/bin/
**/obj/
tmk/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0-tmk/
KeymapDownloader/
================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
================================================
FILE: .github/workflows/Build.yml
================================================
name: Build ALL
on:
workflow_dispatch:
push:
jobs:
build:
name: Build all keyboard
runs-on: ubuntu-latest
steps:
# 下载源码
- name: ⏬ Get source
uses: actions/checkout@v4
with:
submodules: recursive
# 下载安装相关工具
- name: ⚙️ Install Tools
run: |
wget https://sourceforge.net/projects/sdcc/files/sdcc-linux-amd64/4.0.0/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2 -O /tmp/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2
tar xf /tmp/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2 -C /tmp
sudo cp -r /tmp/sdcc-4.0.0/* /usr/local
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 -O /tmp/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
tar xf /tmp/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 -C /tmp
wget https://github.com/genokolar/nrf52_tools/raw/main/mergehex -O /tmp/mergehex
sudo cp -r /tmp/mergehex /usr/local/bin/mergehex
wget https://github.com/genokolar/nrf52_tools/raw/main/nrfutil-linux -O /tmp/nrfutil
sudo cp -r /tmp/nrfutil /usr/local/bin/nrfutil
sudo chmod 0755 /usr/local/bin/mergehex
sudo chmod 0755 /usr/local/bin/nrfutil
echo GNU_INSTALL_ROOT := /tmp/gcc-arm-none-eabi-9-2019-q4-major/bin/>template/Makefile.posix
echo GNU_VERSION := 9.2.1>>template/Makefile.posix
echo GNU_PREFIX := arm-none-eabi>>template/Makefile.posix
# 编译固件
- name: ⚒️ Make Firmware
run: |
cd keyboard
make -j4
cd ../
# 生成发布tag
- name: 🎉 Generate release tag
run: |
echo "VERSION=11`git log --abbrev-commit --pretty=oneline -1 | cut -c 1-6 || echo 'unknown'`" >> $GITHUB_ENV
echo "BUILDTIME=`date '+%Y%m%d'`" >> $GITHUB_ENV
# 上传编译生成的固件
- name: 📤 Upload Artifact Files
uses: actions/upload-artifact@v4
with:
name: LotKB_Keyboard_Firmware_${{ env.BUILDTIME }}_${{ env.VERSION }}
path: |
${{ github.workspace }}/keyboard/_build/*.zip
${{ github.workspace }}/keyboard/_build/*.hex
${{ github.workspace }}/keyboard/_build/*.bin
================================================
FILE: .github/workflows/Release.yml
================================================
name: Release Glab3.0
on:
workflow_dispatch:
jobs:
build:
name: Release Glab3.0 Firmware
runs-on: ubuntu-latest
steps:
# 下载源码
- name: ⏬ Get nRF52-Keyboard source
uses: actions/checkout@v4
with:
submodules: recursive
# 下载安装相关工具
- name: ⚙️ Install Tools
run: |
wget https://sourceforge.net/projects/sdcc/files/sdcc-linux-amd64/4.0.0/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2 -O /tmp/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2
tar xf /tmp/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2 -C /tmp
sudo cp -r /tmp/sdcc-4.0.0/* /usr/local
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 -O /tmp/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
tar xf /tmp/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 -C /tmp
wget https://github.com/genokolar/nrf52_tools/raw/main/mergehex -O /tmp/mergehex
sudo cp -r /tmp/mergehex /usr/local/bin/mergehex
wget https://github.com/genokolar/nrf52_tools/raw/main/nrfutil-linux -O /tmp/nrfutil
sudo cp -r /tmp/nrfutil /usr/local/bin/nrfutil
sudo chmod 0755 /usr/local/bin/mergehex
sudo chmod 0755 /usr/local/bin/nrfutil
echo GNU_INSTALL_ROOT := /tmp/gcc-arm-none-eabi-9-2019-q4-major/bin/>template/Makefile.posix
echo GNU_VERSION := 9.2.1>>template/Makefile.posix
echo GNU_PREFIX := arm-none-eabi>>template/Makefile.posix
# 编译固件
- name: ⚒️ Make Firmware
run: |
cd keyboard
make -j4
cd ../
# 生成发布tag
- name: 🎉 Generate release tag
run: |
echo "VERSION=11`git log --abbrev-commit --pretty=oneline -1 | cut -c 1-6 || echo 'unknown'`" >> $GITHUB_ENV
echo "BUILDTIME=`date '+%Y%m%d'`" >> $GITHUB_ENV
# 上传编译生成的固件
- name: 📤 Upload Artifact Files
uses: actions/upload-artifact@v4
with:
name: LotKB_Keyboard_Firmware_${{ env.BUILDTIME }}_${{ env.VERSION }}
path: |
${{ github.workspace }}/keyboard/_build/*.zip
${{ github.workspace }}/keyboard/_build/*.hex
${{ github.workspace }}/keyboard/_build/*.bin
# 发布固件到genokolar/nrf52-keyboard库
- name: 🎁 Release Firmware
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.BUILDTIME }}-${{ env.VERSION }}
name: SDK17.1 ${{ env.BUILDTIME }}-${{ env.VERSION }}
repository: genokolar/nrf52-keyboard
generate_release_notes: true
files: |
${{ github.workspace }}/keyboard/_build/*.zip
${{ github.workspace }}/keyboard/_build/*.hex
env:
GITHUB_TOKEN: ${{ secrets.KEYBOARD }}
================================================
FILE: .gitignore
================================================
/ble_app_hids_keyboard.eww
/hex
_build
/release
JLinkLog.txt
JLinkSettings.ini
EventRecorderStub.scvd
# ignore virtualenv
/venv
# Created by https://www.gitignore.io/api/code
# Edit at https://www.gitignore.io/?templates=code
### Code ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# End of https://www.gitignore.io/api/code
# Created by https://www.gitignore.io/api/keil
# Edit at https://www.gitignore.io/?templates=keil
### Keil ###
# something maybe need to add
# *.bat # generate batch file
# output/project_name # uv project generate without file ext
# *.SRC # generate source file
# *.src
# Prerequisites
*.d
*.dep
# Object files
*.o
*.obj
*.OBJ
# Listing Files
*.COD
*.cod
*.[Ii]
*.LST
*.lst
*.MAP
*.map
*.[Mm]51
*.[Mm]66
*.SCR
*.scr
# LINK output
*.ABS
# Libraries
*.lib
*.LIB
# uv output
*.lnp
*.build_log.htm
*.HEX
*.hex
# Build Files
*._IA
*.__[Ii]
*._[Ii][Ii]
# project
*.uvgui.*
*.uvguix.*
# End of https://www.gitignore.io/api/keil
/template/Makefile.windows
/template/Makefile.posix
.DS_Store
Thumbs.db
================================================
FILE: .gitmodules
================================================
[submodule "SDK/external/micro-ecc/micro-ecc"]
path = SDK/external/micro-ecc/micro-ecc
url = https://github.com/kmackay/micro-ecc
================================================
FILE: .travis.yml
================================================
language: c
cache: ccache
dist: bionic
python: 3.8
before_install:
- sudo apt-get update
- sudo apt-get -y install python3-pip python3-setuptools
- sudo pip3 install --upgrade pip
- sudo pip3 install nrfutil
- wget https://sourceforge.net/projects/sdcc/files/sdcc-linux-amd64/4.0.0/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2 -O /tmp/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2
- tar xf /tmp/sdcc-4.0.0-amd64-unknown-linux2.5.tar.bz2 -C /tmp
- sudo cp -r /tmp/sdcc-4.0.0/* /usr/local
install:
- wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2 -O /tmp/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
- tar xf /tmp/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2 -C /tmp
- wget http://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v15.x.x/nRF5_SDK_15.3.0_59ac345.zip -O /tmp/nRF5_SDK_15.3.0_59ac345.zip
- mkdir /tmp/sdk
- unzip -q /tmp/nRF5_SDK_15.3.0_59ac345.zip -d /tmp/sdk
- wget https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF-command-line-tools/sw/Versions-10-x-x/10-12-1/nRFCommandLineTools10121Linuxamd64.tar.gz -O /tmp/nRF-command-line-tools.tar.gz
- mkdir /tmp/tools
- tar xf /tmp/nRF-command-line-tools.tar.gz -C /tmp/tools
- tar xf /tmp/tools/nRF-Command-Line-Tools_10_12_1.tar -C /tmp/tools
- sudo cp -r /tmp/tools/mergehex /opt
- sudo ln -s /opt/mergehex/mergehex /usr/local/bin/mergehex
script:
- cp template/Makefile.posix.template template/Makefile.posix
- sed -i "s/\/usr\/local/\/tmp/g" template/Makefile.posix
- cp -r /tmp/sdk/nRF5_SDK_15.3.0_59ac345/* SDK/
- rm -r tmk/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0-tmk/
- cd tmk/ && git reset --hard
- cd ../
- git status
- cd keyboard
- make -j
- cd ../
deploy:
provider: releases
api_key:
secure: YLjJb7by7nBhddRk1Or7Nf4NUVfTkWM/+zzgzjj26fwQ3qVn0KxAMeQgiKf0/FJ7JNh5JlXIfpY4aNCOtIx923qg/afcghcg0smUJUrTccdN6tr+NH4RYDEq7+KFQNNVkV6Ls9d7ObThjpu0VWINss/bOG1jmD9ueTyjO3oShg4Ql39NgzICWqhvGt+EK5tggY/u8zYnB49MCWbmh5DWBCzwW/xErTKn75hpKlmPaHEYLIOV4LKFxWOiXAQIFuDJ9qdgmmhYQNoUpLZbP2qGGCCvf6MsJEOttY+0nx8Pog9oRHtStCXy9fjiUhXxw0BZaGPi1qhEExeNvuWx9DawjyA34wEs25pzZ4ZzhFGYgB6uC/CB9m3PHifswGzOU4xj1DCFPmkVXqbTrtYCkaSX8SeQd1r0ind54DC6CSkGJfbo7JMwHcctMHN25CR/7U96eKl7NiHjou7e8JoFvAfbS3qfhoTtTHqneuan3kQuFdlg9FGe+JzIwaczvvGM5H0MCqh3Pz5TpU5PmS591Fp6mPYuPNHaZpDw6yuysOFYibchC58yx4uNjMYPCa/aK6JGukQUtlf0F8+nRcyZl+r84SDOvmpqv+R/rafDJQiTdDPfvHAKE6MrVgLKfHtL+iTeNm56o6cQ3zaMZlVUsNY+eun3H9hyup4aNImELTP2EAc=
file_glob: true
file:
- keyboard/_build/*.zip
- keyboard/_build/*.bin
skip_cleanup: true
on:
tags: true
================================================
FILE: .vscode/launch.json
================================================
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"cwd": "${workspaceRoot}/keyboard/lot60-ble/rev_c/_build/",
"executable": "nrf52_kbd.out",
"name": "Debug Microcontroller",
"request": "launch",
"type": "cortex-debug",
"servertype": "pyocd",
"armToolchainPath": "/usr/local/gcc-arm-none-eabi-7-2018-q2-update/bin",
"device": "nrf52_kbd",
"targetId": "nrf52",
"boardId": ""
},
{
"cwd": "${workspaceRoot}/keyboard/ergoconn/right/_build/",
"executable": "nrf52_kbd.out",
"name": "ErgoConn",
"request": "launch",
"type": "cortex-debug",
"servertype": "pyocd",
"armToolchainPath": "/usr/local/gcc-arm-none-eabi-7-2018-q2-update/bin",
"device": "nrf52_kbd",
"targetId": "nrf52",
},
{
"cwd": "${workspaceRoot}/keyboard/lkb-core/_build/",
"executable": "nrf52_kbd.out",
"name": "LKB-Core",
"request": "launch",
"type": "cortex-debug",
"servertype": "pyocd",
"armToolchainPath": "/usr/local/gcc-arm-none-eabi-7-2018-q2-update/bin",
"device": "nrf52_kbd",
"targetId": "nrf52",
},
{
"name": "Debug Application",
"type": "gdb",
"request": "attach",
"target": ":3333",
"remote": true,
"cwd": "${workspaceRoot}/keyboard/lot60-ble/rev_c/_build/",
"executable": "nrf52_kbd.out",
"valuesFormatting": "parseText",
"autorun": [
"file nrf52_kbd.out",
"mon reset"
],
"gdbpath": "/usr/local/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gdb",
},
{
"type": "gdb",
"request": "attach",
"target": "127.0.0.1:3333",
"remote": true,
"name": "ErgoConn (EXT)",
"cwd": "${workspaceRoot}/keyboard/ergoconn/_build",
"executable": "nrf52_kbd.out",
"autorun": [
"file nrf52_kbd.out",
"mon reset"
],
"gdbpath": "/usr/local/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gdb",
},
]
}
================================================
FILE: .vscode/settings.json
================================================
{
"files.associations": {
"nrf_log.h": "c",
"stdint.h": "c",
"nordic_common.h": "c",
"app_timer.h": "c",
"fds.h": "c",
"ble_conn_state.h": "c",
"ble_hids.h": "c",
"ble_hid_service.h": "c",
"ble_hci.h": "c",
"nrfx_saadc.h": "c",
"nrf_saadc.h": "c",
"nrf_drv_saadc.h": "c",
"nrf_assert.h": "c",
"nrf_soc.h": "c",
"nrf.h": "c",
"nrfx.h": "c",
"nrfx_config.h": "c",
"sdk_config.h": "c",
"nrf_bootloader_info.h": "c",
"nrf_pwr_mgmt.h": "c",
"nrf_power.h": "c",
"ble_dfu.h": "c",
"debug.h": "c",
"keyboard_config.h": "c",
"nrfx_errors.h": "c",
"nrfx_common.h": "c",
"keyboard_matrix.h": "c",
"nrf_gpio.h": "c",
"keyboard_host_driver.h": "c",
"host_driver.h": "c",
"keyboard.h": "c",
"print.h": "c",
"bootloader.h": "c",
"led.h": "c",
"host.h": "c",
"keyboard_fn.h": "c",
"nrf52.h": "c",
"keyboard_led.h": "c",
"action.h": "c",
"ble_bas_service.h": "c",
"string.h": "c",
"keymap.h": "c",
"keymap_common.h": "c",
"keymap_storage.h": "c",
"main.h": "c",
"sleep_reason.h": "c",
"stdbool.h": "c",
"nrfx_spis.h": "c",
"nrfx_uart.h": "c",
"nrf_drv_uart.h": "c",
"app_uart.h": "c",
"stdlib.h": "c",
"usb_comm.h": "c",
"system.h": "c",
"usb_descriptor.h": "c",
"endpoints.h": "c",
"custom_hook.h": "c",
"keyboard_services.h": "c",
"led_rgb.h": "c",
"ch554_sdcc.h": "c",
"compiler.h": "c",
"bootmagic.h": "c",
"hook.h": "c",
"keycode.h": "c",
"ble_hid_descriptor.h": "c",
"report.h": "c",
"config.h": "c",
"action_macro.h": "c",
"keyboard_evt.h": "c",
"nrf_section.h": "c",
"power_save.h": "c",
"ble_services.h": "c",
"events.h": "c",
"queue.h": "c",
"hid_configuration.h": "c",
"array": "c",
"string": "c",
"string_view": "c",
"initializer_list": "c",
"utility": "c",
"data_storage.h": "c",
"actionmap.h": "c",
"future": "cpp",
"system_error": "cpp",
"app_scheduler.h": "c",
"variant": "c",
"passkey.h": "c",
"nrf_section_iter.h": "c",
"nrfx_twim.h": "c",
"nrf_drv_twi.h": "c",
"nrf_error.h": "c",
"app_error.h": "c",
"*.inc": "c",
"*.tcc": "c",
"optional": "c",
"cmath": "c",
"random": "c",
"iosfwd": "c",
"istream": "c",
"limits": "c",
"stdexcept": "c",
"streambuf": "c",
"typeinfo": "c",
"nrf_twim.h": "c",
"ssd1306_oled.h": "c",
"type_traits": "c",
"image_header.h": "c",
"chrono": "c",
"algorithm": "c",
"nrfx_qdec.h": "c",
"adc_convert.h": "c",
"functional": "c",
"tuple": "c",
"dap_strings.h": "c",
"dap_queue.h": "c",
"dap.h": "c",
"nrf_fstorage_nvmc.h": "c",
"nrf_fstorage_sd.h": "c",
"keyboard_command.h": "c"
},
"C_Cpp.default.includePath": [
"C:/Program Files (x86)/GNU Tools ARM Embedded/7 2018-q2-update/lib/gcc/arm-none-eabi/7.3.1/include",
"/usr/local/gcc-arm-none-eabi-7-2018-q2-update/lib/gcc/arm-none-eabi/7.3.1/include/",
"SDK/components/ble/ble_services/ble_ancs_c",
"SDK/components/ble/ble_services/ble_ias_c",
"SDK/components/libraries/pwm",
"SDK/components/softdevice/s112/headers/nrf52",
"SDK/components/libraries/usbd/class/cdc/acm",
"SDK/components/libraries/usbd/class/hid/generic",
"SDK/components/libraries/usbd/class/msc",
"SDK/components/libraries/usbd/class/hid",
"SDK/modules/nrfx/hal",
"SDK/components/libraries/log",
"SDK/components/ble/ble_services/ble_gls",
"SDK/components/libraries/fstorage",
"SDK/components/libraries/mutex",
"SDK/components/libraries/gpiote",
"SDK/components/libraries/bootloader",
"SDK/components/libraries/bootloader/dfu",
"SDK/components/libraries/bootloader/ble_dfu",
"SDK/components/boards",
"SDK/components/ble/ble_advertising",
"SDK/external/utf_converter",
"SDK/components/ble/ble_services/ble_bas_c",
"SDK/modules/nrfx/drivers/include",
"SDK/components/libraries/experimental_task_manager",
"SDK/components/ble/ble_services/ble_hrs_c",
"SDK/components/libraries/queue",
"SDK/components/libraries/pwr_mgmt",
"SDK/components/ble/ble_dtm",
"SDK/components/toolchain/cmsis/include",
"SDK/components/ble/ble_services/ble_rscs_c",
"SDK/components/ble/common",
"SDK/components/ble/ble_services/ble_lls",
"SDK/components/libraries/bsp",
"SDK/components/ble/ble_services/ble_bas",
"SDK/components/libraries/mpu",
"SDK/components/libraries/experimental_section_vars",
"SDK/components/ble/ble_services/ble_ans_c",
"SDK/components/libraries/slip",
"SDK/components/libraries/delay",
"SDK/components/libraries/csense_drv",
"SDK/components/libraries/memobj",
"SDK/components/ble/ble_services/ble_nus_c",
"SDK/components/softdevice/common",
"SDK/components/ble/ble_services/ble_ias",
"SDK/components/libraries/usbd/class/hid/mouse",
"SDK/components/libraries/low_power_pwm",
"SDK/components/ble/ble_services/ble_dfu",
"SDK/external/fprintf",
"SDK/components/libraries/svc",
"SDK/components/libraries/atomic",
"SDK/components",
"SDK/components/libraries/scheduler",
"SDK/components/libraries/cli",
"SDK/components/ble/ble_services/ble_lbs",
"SDK/components/ble/ble_services/ble_hts",
"SDK/components/ble/ble_services/ble_cts_c",
"SDK/components/libraries/crc16",
"SDK/components/libraries/util",
"application/main/config",
"SDK/components/libraries/usbd/class/cdc",
"SDK/components/libraries/csense",
"SDK/components/libraries/balloc",
"SDK/components/libraries/ecc",
"SDK/components/libraries/hardfault",
"SDK/components/ble/ble_services/ble_cscs",
"SDK/components/libraries/hci",
"SDK/components/libraries/usbd/class/hid/kbd",
"SDK/components/libraries/timer",
"SDK/integration/nrfx",
"SDK/components/libraries/sortlist",
"SDK/components/libraries/spi_mngr",
"SDK/components/softdevice/s112/headers",
"SDK/components/libraries/led_softblink",
"SDK/components/libraries/sdcard",
"SDK/modules/nrfx/mdk",
"SDK/components/ble/ble_link_ctx_manager",
"SDK/components/ble/ble_services/ble_nus",
"SDK/components/libraries/twi_mngr",
"SDK/components/ble/ble_services/ble_hids",
"SDK/components/libraries/strerror",
"SDK/components/libraries/crc32",
"SDK/components/libraries/usbd/class/audio",
"SDK/components/libraries/sensorsim",
"SDK/components/ble/peer_manager",
"SDK/components/libraries/mem_manager",
"SDK/components/libraries/ringbuf",
"SDK/components/ble/ble_services/ble_tps",
"SDK/components/ble/ble_services/ble_dis",
"SDK/components/ble/nrf_ble_gatt",
"SDK/components/ble/nrf_ble_qwr",
"SDK/components/libraries/gfx",
"SDK/components/libraries/button",
"SDK/modules/nrfx",
"SDK/modules/nrfx/hal",
"SDK/modules/nrfx/drivers/include",
"SDK/components/libraries/twi_sensor",
"SDK/integration/nrfx/legacy",
"SDK/integration/nrfx/legacy",
"SDK/components/libraries/usbd",
"SDK/external/segger_rtt",
"SDK/components/libraries/atomic_fifo",
"SDK/components/ble/ble_services/ble_lbs_c",
"SDK/components/libraries/crypto",
"SDK/components/ble/ble_racp",
"SDK/components/libraries/fds",
"SDK/components/libraries/atomic_flags",
"SDK/components/ble/ble_services/ble_hrs",
"SDK/components/ble/ble_services/ble_rscs",
"SDK/components/libraries/stack_guard",
"SDK/components/libraries/log/src",
"SDK/components/libraries/bootloader",
"SDK/components/libraries/uart",
"tmk/tmk_core/common",
"tmk/tmk_core/common/avr",
"application/main/src",
"application/main/src/ble",
"application/main/src/config",
"application/main/src/driver",
"application/main/src/keyboard",
"application/main/src/protocol",
"application/main/src/tmk",
"keyboard/template"
],
"C_Cpp.default.defines": [
"uint8_t=char",
"__INT8_TYPE__=char",
"__UINT16_TYPE__=short unsigned int",
"uint32_t=unsigned int",
"NRF52810",
"NRF52810_XXAA",
"SOFTDEVICE_PRESENT",
"APP_TIMER_V2",
"APP_TIMER_V2_RTC1_ENABLED",
"SWI_DISABLE0",
],
"C_Cpp.default.forcedInclude": [
"keyboard/template/config.h"
],
"C_Cpp.clang_format_style": "webkit",
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/_build": true,
"tmk/tmk_core/protocol/lufa/LUFA-git": true,
"tmk/tmk_core/tool": true,
}
}
================================================
FILE: .vscode/tasks.json
================================================
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "build main",
"command": "cd keyboard/lot60-ble && make -j",
"group": "build",
"problemMatcher": [
"$gcc"
]
},
{
"type": "shell",
"label": "flash main",
"command": "cd keyboard/lot60-ble && make flash -j",
"group": "build",
"problemMatcher": [
"$gcc"
]
},
{
"type": "shell",
"label": "flash main (pyOCD)",
"command": "cd keyboard/lot60-ble && make pyocd_flash -j",
"group": "build",
"problemMatcher": [
"$gcc"
]
},
{
"type": "shell",
"label": "package main",
"command": "cd keyboard/lot60-ble && make package -j",
"group": "build",
"problemMatcher": [
"$gcc"
]
},
{
"type": "shell",
"label": "build bootloader",
"command": "cd application/bootloader/project/armgcc/ && make -j",
"group": "build",
"problemMatcher": [
"$gcc"
]
},
{
"type": "shell",
"label": "flash bootloader",
"command": "cd application/bootloader/project/armgcc/ && make flash -j",
"group": "build",
"problemMatcher": [
"$gcc"
]
},
{
"type": "shell",
"label": "flash bootloader (pyOCD)",
"command": "cd application/bootloader/project/armgcc/ && make pyocd_flash -j",
"group": "build",
"problemMatcher": [
"$gcc"
]
},
{
"type": "shell",
"label": "launch pyocd gdb server",
"command": "pyocd gdb -t nrf52",
"group": "none",
"isBackground": true,
"problemMatcher": []
},
{
"type": "shell",
"label": "build usb",
"command": "cd usb && make",
"group": "build",
"problemMatcher": [
"$gcc"
]
},{
"type": "shell",
"label": "flash usb",
"command": "cd usb && make flash",
"group": "build",
"problemMatcher": [
"$gcc"
]
}
]
}
================================================
FILE: Dockerfile
================================================
FROM python:3.7-slim-buster
WORKDIR /work
RUN apt-get update && apt-get install -y make git wget lbzip2 unzip && rm -rf /var/lib/apt/lists/* && pip3 install --upgrade pip && pip3 install nrfutil
COPY docker/* ./
RUN chmod +x ./pre.sh && ./pre.sh
COPY . .
RUN chmod +x ./post.sh && ./post.sh
ENTRYPOINT ["/bin/bash"]
================================================
FILE: KeymapDownloader/.gitignore
================================================
# Created by https://www.gitignore.io/api/csharp
### Csharp ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Uncomment the next line to ignore your web deploy settings.
# By default, sensitive information, such as encrypted password
# should be stored in the .pubxml.user file.
#*.pubxml
*.pubxml.user
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Typescript v1 declaration files
typings/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# End of https://www.gitignore.io/api/csharp
================================================
FILE: KeymapDownloader/KeymapDownloader/App.config
================================================
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
================================================
FILE: KeymapDownloader/KeymapDownloader/App.xaml
================================================
<Application x:Class="KeymapDownloader.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:KeymapDownloader"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<!-- Accent and AppTheme setting -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
================================================
FILE: KeymapDownloader/KeymapDownloader/App.xaml.cs
================================================
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace KeymapDownloader
{
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
}
}
================================================
FILE: KeymapDownloader/KeymapDownloader/CustomHID.cs
================================================
using HidSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace KeymapDownloader
{
class CustomHID
{
public HidDevice Device { get; }
public CustomHID(HidDevice device)
{
Device = device;
}
public override string ToString()
{
string result = "";
string manufacturer = Device.GetManufacturer();
string name = Device.GetProductName();
string serial = Device.GetSerialNumber();
int pid = Device.ProductID;
int vid = Device.VendorID;
result = String.Format("[{3:X4}:{4:X4}][{0}] {1} ({2})", manufacturer, name, serial, vid, pid);
return result;
}
public static bool IsTarget(HidDevice device)
{
try
{
var report = device.GetReportDescriptor();
if (report.ReportsUseID)
{
foreach (var item in report.OutputReports)
{
if (item.ReportID == 0x3f && item.Length > 62)
{
var usages = item.GetAllUsages();
return true;
}
}
}
}
catch { }
return false;
}
}
}
================================================
FILE: KeymapDownloader/KeymapDownloader/FodyWeavers.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<Costura />
</Weavers>
================================================
FILE: KeymapDownloader/KeymapDownloader/FodyWeavers.xsd
================================================
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
<xs:element name="Weavers">
<xs:complexType>
<xs:all>
<xs:element name="Costura" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="IncludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged64Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="PreloadOrder" type="xs:string">
<xs:annotation>
<xs:documentation>The order of preloaded assemblies, delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="CreateTemporaryAssemblies" type="xs:boolean">
<xs:annotation>
<xs:documentation>This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeDebugSymbols" type="xs:boolean">
<xs:annotation>
<xs:documentation>Controls if .pdbs for reference assemblies are also embedded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCompression" type="xs:boolean">
<xs:annotation>
<xs:documentation>Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCleanup" type="xs:boolean">
<xs:annotation>
<xs:documentation>As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LoadAtModuleInit" type="xs:boolean">
<xs:annotation>
<xs:documentation>Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreSatelliteAssemblies" type="xs:boolean">
<xs:annotation>
<xs:documentation>Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged64Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PreloadOrder" type="xs:string">
<xs:annotation>
<xs:documentation>The order of preloaded assemblies, delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="VerifyAssembly" type="xs:boolean">
<xs:annotation>
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
<xs:annotation>
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="GenerateXsd" type="xs:boolean">
<xs:annotation>
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
================================================
FILE: KeymapDownloader/KeymapDownloader/KeymapDownloader.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Costura.Fody.4.0.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.4.0.0\build\Costura.Fody.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{9F50DFB0-D48B-4D24-94AA-4E39583EADEF}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>KeymapDownloader</RootNamespace>
<AssemblyName>KeymapDownloader</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="ControlzEx, Version=3.0.2.4, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll</HintPath>
</Reference>
<Reference Include="Costura, Version=4.0.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
<HintPath>..\packages\Costura.Fody.4.0.0\lib\net40\Costura.dll</HintPath>
</Reference>
<Reference Include="HidSharp, Version=2.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\HidSharp.2.1.0\lib\net35\HidSharp.dll</HintPath>
</Reference>
<Reference Include="IntelHexFormatReader, Version=2.2.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\IntelHexFormatReader.2.2.3\lib\net45\IntelHexFormatReader.dll</HintPath>
</Reference>
<Reference Include="MahApps.Metro, Version=1.6.5.1, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MahApps.Metro.1.6.5\lib\net45\MahApps.Metro.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="CustomHID.cs" />
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Resources\Icons.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Resources\IconsNonShared.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Resource Include="Resources\Entypo.ttf" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\WindowsIcons-license.txt" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\Entypo-license.txt" />
</ItemGroup>
<ItemGroup>
<Resource Include="icon.ico" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.5.2 %28x86 和 x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Fody.5.0.5\build\Fody.targets" Condition="Exists('..\packages\Fody.5.0.5\build\Fody.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Fody.5.0.5\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.5.0.5\build\Fody.targets'))" />
<Error Condition="!Exists('..\packages\Costura.Fody.4.0.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.4.0.0\build\Costura.Fody.props'))" />
</Target>
</Project>
================================================
FILE: KeymapDownloader/KeymapDownloader/MainWindow.xaml
================================================
<Controls:MetroWindow x:Class="KeymapDownloader.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:local="clr-namespace:KeymapDownloader"
mc:Ignorable="d"
Title="配列下载工具" Height="174.003" Width="460.907" IsMaxRestoreButtonEnabled="False">
<Grid>
<Grid Height="26" Margin="10,10,10,0" VerticalAlignment="Top">
<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="选择设备" VerticalAlignment="Center"/>
<ComboBox Name="Devices" Margin="63,0,26,0" VerticalAlignment="Top" SelectionChanged="Devices_SelectionChanged" Controls:TextBoxHelper.Watermark="选择一个键盘"/>
<Button Name="refresh" HorizontalAlignment="Right" Margin="0,0,0,0" VerticalAlignment="Top" Width="26" Style="{DynamicResource SquareButtonStyle}" Height="26" Click="refresh_Click">
<Rectangle Height="14" Width="12">
<Rectangle.Fill>
<VisualBrush Visual="{DynamicResource appbar_refresh}"></VisualBrush>
</Rectangle.Fill>
</Rectangle>
</Button>
</Grid>
<Grid Height="26" Margin="10,46,10,0" VerticalAlignment="Top">
<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="选择文件" VerticalAlignment="Center"/>
<TextBox Name="Path" Margin="63,0,26,0" VerticalAlignment="Top" Controls:TextBoxHelper.Watermark="留空以使用键盘内置的配列" />
<Button Name="browse" HorizontalAlignment="Right" Margin="0,0,0,0" VerticalAlignment="Top" Width="26" Style="{DynamicResource SquareButtonStyle}" Content="..." Click="browse_Click" />
</Grid>
<Grid Height="26" Margin="10,82,10,0" VerticalAlignment="Top">
<Button Name="Download" Margin="0,0,0,0" VerticalAlignment="Top" Style="{DynamicResource SquareButtonStyle}" Content="下载" Click="Download_Click" />
</Grid>
<StatusBar Margin="0,0,0,0" Height="26"
VerticalAlignment="Bottom" >
<TextBlock x:Name="lbl_status" Foreground="White" Margin="5,0,5,0" Text="准备就绪"/>
</StatusBar>
</Grid>
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/Icons.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
</Controls:MetroWindow>
================================================
FILE: KeymapDownloader/KeymapDownloader/MainWindow.xaml.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;
using HidSharp;
using IntelHexFormatReader;
using IntelHexFormatReader.Model;
using System.Threading;
namespace KeymapDownloader
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow
{
HidDevice device;
public MainWindow()
{
InitializeComponent();
RefreshHIDList();
SetCopyright();
}
void SetCopyright()
{
setStatusText($"配列下载器 {System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()} | 请使用新版配置工具进行配置");
}
/// <summary>
/// 刷新HID列表
/// </summary>
void RefreshHIDList()
{
Devices.Items.Clear();
var list = DeviceList.Local;
var HidDeviceList = list.GetHidDevices();
foreach (var item in HidDeviceList)
{
if (CustomHID.IsTarget(item))
{
Devices.Items.Add(new CustomHID(item));
}
}
if (Devices.Items.Count > 0) Devices.SelectedIndex = 0;
}
private void refresh_Click(object sender, RoutedEventArgs e)
{
RefreshHIDList();
}
private void browse_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog();
ofd.DefaultExt = ".hex";
ofd.Filter = "HEX的配列文件|*.hex;*.eep|BIN格式的配列文件|*.bin";
if (ofd.ShowDialog() == true)
{
Path.Text = ofd.FileName;
}
}
bool checkSum(byte[] data)
{
const int checksum_offset = 0x13;
int checksum = (data[checksum_offset]) + (data[checksum_offset + 1] << 8);
int calc_sum = 0xFEED;
for (int i = checksum_offset + 2; i < data.Length - 1; i += 2)
{
var c = (data[i]) + (data[i + 1] << 8);
if (c == 0xFFFF) break; // 数据末端
calc_sum += c;
calc_sum %= 0x10000;
}
return calc_sum == checksum;
}
private void Download_Click(object sender, RoutedEventArgs e)
{
var path = Path.Text;
Thread thread = new Thread(() => { DownloadKeymap(path); });
thread.Start();
}
private void DownloadKeymap(string path)
{
byte[] binary = new Byte[1024];
HidStream hidStream = device.Open();
if (!string.IsNullOrEmpty(path))
{
if (!File.Exists(path))
{
setStatusText("配列文件不存在");
return;
}
if (path.EndsWith("bin", StringComparison.CurrentCultureIgnoreCase))
{
using (var stream = File.Open(path, FileMode.Open))
{
stream.Read(binary, 0, 1024);
}
}
else
{
HexFileReader reader = new HexFileReader(path, 1024);
MemoryBlock memoryRepresentation = reader.Parse();
int index = 0;
foreach (var item in memoryRepresentation.Cells)
{
binary[index++] = item.Value;
if (index == 1024)
break;
}
}
if (!checkSum(binary))
{
setStatusText("Keymap校验不通过");
return;
}
}
const int keymap_offset = 0x55;
try
{
byte[] packet = new byte[56];
var count = (binary.Length - keymap_offset) / 56;
// Keymap
for (int i = 0; i < count; i++)
{
Array.Copy(binary, i * 56 + keymap_offset, packet, 0, 56);
setStatusText($"{i + 1}/{count}");
if (SendPacket(hidStream, (uint)i, packet))
break;
}
// Fn
for (int i = 0; i < 64; i += 56)
{
Array.Copy(binary, i + 0x15, packet, 0, i < 64 ? 56 : i - 56);
if (SendPacketFn(hidStream, (uint)i/56, packet))
break;
}
// Write to storage
SendCommand(hidStream, 0x3E, new byte[] { 0xFF });
setStatusText("下载完毕");
}
catch (Exception exp)
{
setStatusText(exp.Message);
}
}
void setStatusText(string msg)
{
Dispatcher.Invoke(() => { lbl_status.Text = msg; });
}
/// <summary>
/// 发送数据包
/// </summary>
/// <param name="stream"></param>
/// <param name="id"></param>
/// <param name="data"></param>
/// <returns>是否为最后一个</returns>
bool SendPacket(HidStream stream, uint id, byte[] data)
{
byte[] send = new byte[64];
send[0] = 0x3f;
send[1] = 0x33; // CMD: Write keymap
send[2] = (byte)(data.Length + 1);
send[3] = (byte)id;
Array.Copy(data, 0, send, 4, data.Length);
int retryCount = 5;
bool ret_code;
do
{
stream.Write(send);
byte[] ret = new byte[64];
stream.Read(ret);
var code = ret[1];
// 0x04: 写入完毕
if (code == 0x04)
return true;
ret_code = (code == 0x00);
} while (!ret_code && retryCount-- > 0);
if (retryCount <= 0)
{
throw new Exception("发送重试次数达到上限");
}
return false;
}
/// <summary>
/// 发送数据包
/// </summary>
/// <param name="stream"></param>
/// <param name="id"></param>
/// <param name="data"></param>
/// <returns>是否为最后一个</returns>
bool SendPacketFn(HidStream stream, uint id, byte[] data)
{
byte[] send = new byte[64];
send[0] = 0x3f;
send[1] = 0x34; // CMD: Write keymap
send[2] = (byte)(data.Length + 1);
send[3] = (byte)id;
Array.Copy(data, 0, send, 4, data.Length);
int retryCount = 5;
bool ret_code;
do
{
stream.Write(send);
byte[] ret = new byte[64];
stream.Read(ret);
var code = ret[1];
// 0x04: 写入完毕
if (code == 0x04)
return true;
ret_code = (code == 0x00);
} while (!ret_code && retryCount-- > 0);
if (retryCount <= 0)
{
throw new Exception("发送重试次数达到上限");
}
return false;
}
byte[] SendCommand(HidStream stream, uint cmd, byte[] data)
{
byte[] send = new byte[64];
send[0] = 0x3f;
send[1] = (byte)cmd;
send[2] = (byte)data.Length;
if (data.Length > 0)
{
Array.Copy(data, 0, send, 3, data.Length);
}
stream.Write(send);
byte[] ret = new byte[64];
stream.Read(ret);
byte[] real;
if (ret[2] == 0)
{
real = new byte[1];
} else
{
real = new byte[2 + ret[2]];
}
Array.Copy(ret, 1, real, 0, real.Length);
return real;
}
private void Devices_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
device = ((CustomHID)Devices.SelectedItem)?.Device;
try
{
HidStream hidStream = device.Open();
var ret = SendCommand(hidStream, 0x20, new byte[0]);
System.Console.WriteLine("%02x", ret);
}
catch (Exception exp)
{
setStatusText(exp.Message);
}
}
}
}
================================================
FILE: KeymapDownloader/KeymapDownloader/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("KeymapDownloader")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("KeymapDownloader")]
[assembly: AssemblyCopyright("Copyright © Lotlab 2012 - 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
//若要开始生成可本地化的应用程序,请设置
//.csproj 文件中的 <UICulture>CultureYouAreCodingWith</UICulture>
//例如,如果您在源文件中使用的是美国英语,
//使用的是美国英语,请将 <UICulture> 设置为 en-US。 然后取消
//对以下 NeutralResourceLanguage 特性的注释。 更新
//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //主题特定资源词典所处位置
//(未在页面中找到资源时使用,
//或应用程序资源字典中找到时使用)
ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
//(未在页面中找到资源时使用,
//、应用程序或任何主题专用资源字典中找到时使用)
)]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
================================================
FILE: KeymapDownloader/KeymapDownloader/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace KeymapDownloader.Properties
{
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("KeymapDownloader.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 覆盖当前线程的 CurrentUICulture 属性
/// 使用此强类型的资源类的资源查找。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
================================================
FILE: KeymapDownloader/KeymapDownloader/Properties/Resources.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
================================================
FILE: KeymapDownloader/KeymapDownloader/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace KeymapDownloader.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
================================================
FILE: KeymapDownloader/KeymapDownloader/Properties/Settings.settings
================================================
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
================================================
FILE: KeymapDownloader/KeymapDownloader/Resources/Entypo-license.txt
================================================
Entypo (http://www.entypo.com/) is created by Daniel Bruce and released under the Creative Commons, Share Alike/Attribution license.
http://creativecommons.org/licenses/by-sa/3.0/
================================================
FILE: KeymapDownloader/KeymapDownloader/Resources/Icons.xaml
================================================
<ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Canvas x:Key="appbar_3d_3ds" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="32" Height="40" Canvas.Left="23" Canvas.Top="18" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 27,18L 23,26L 33,30L 24,38L 33,46L 23,50L 27,58L 45,58L 55,38L 45,18L 27,18 Z "/>
</Canvas>
<Canvas x:Key="appbar_3d_collada" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="44" Height="30.3735" Canvas.Left="15" Canvas.Top="21.6194" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 39.2598,21.6194C 47.9001,21.6194 55.3802,24.406 59,28.4646L 59,33.4834C 56.3537,29.575 49.2267,26.7756 40.85,26.7756C 30.2185,26.7756 21.6,31.285 21.6,36.8475C 21.6,40.4514 25.2176,43.6131 30.6564,45.3929C 22.7477,43.5121 17.2,39.1167 17.2,33.9944C 17.2,27.1599 27.0765,21.6194 39.2598,21.6194 Z M 35.8402,51.9929C 27.1999,51.9929 19.7198,49.2063 16.1,45.1478L 15,40.129C 17.6463,44.0373 25.8733,46.8367 34.25,46.8367C 44.8815,46.8367 53.5,42.3274 53.5,36.7648C 53.5,33.161 49.8824,29.9992 44.4436,28.2194C 52.3523,30.1002 57.9,34.4956 57.9,39.6179C 57.9,46.4525 48.0235,51.9929 35.8402,51.9929 Z "/>
</Canvas>
<Canvas x:Key="appbar_3d_obj" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="40" Canvas.Left="18" Canvas.Top="18" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 18,21.7037L 43.9259,18L 58,25.4074L 58,54.2963L 32.8148,58L 18,49.1111L 18,21.7037 Z "/>
</Canvas>
<Canvas x:Key="appbar_3d_x" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="30" Canvas.Left="17" Canvas.Top="23" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 17,23L 31,23L 31,27L 34,27L 34,30L 37,30L 37,33L 39,33L 39,30L 42,30L 42,27L 45,27L 45,23L 59,23L 59,27L 56,27L 56,30L 53,30L 53,33L 50,33L 50,36L 47,36L 47,40L 50,40L 50,43L 53,43L 53,46L 56,46L 56,49L 59,49L 59,53L 45,53L 45,49L 42,49L 42,46L 39,46L 39,43L 37,43L 37,46L 34,46L 34,49L 31,49L 31,53L 17,53L 17,49L 20,49L 20,46L 23,46L 23,43L 26,43L 26,40L 29,40L 29,36L 26,36L 26,33L 23,33L 23,30L 20,30L 20,27L 17,27L 17,23 Z "/>
</Canvas>
<Canvas x:Key="appbar_acorn" Width="48" Height="48" Clip="F1 M 0,0L 48,0L 48,48L 0,48L 0,0">
<Path Width="22.3248" Height="25.8518" Canvas.Left="13.6757" Canvas.Top="11.4012" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 16.6309,18.6563C 17.1309,8.15625 29.8809,14.1563 29.8809,14.1563C 30.8809,11.1563 34.1308,11.4063 34.1308,11.4063C 33.5,12 34.6309,13.1563 34.6309,13.1563C 32.1309,13.1562 31.1309,14.9062 31.1309,14.9062C 41.1309,23.9062 32.6309,27.9063 32.6309,27.9062C 24.6309,24.9063 21.1309,22.1562 16.6309,18.6563 Z M 16.6309,19.9063C 21.6309,24.1563 25.1309,26.1562 31.6309,28.6562C 31.6309,28.6562 26.3809,39.1562 18.3809,36.1563C 18.3809,36.1563 18,38 16.3809,36.9063C 15,36 16.3809,34.9063 16.3809,34.9063C 16.3809,34.9063 10.1309,30.9062 16.6309,19.9063 Z "/>
</Canvas>
<Canvas x:Key="appbar_add_multiple" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="40" Canvas.Left="18" Canvas.Top="18" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 39,46L 46,46L 46,39L 51,39L 51,46L 58,46L 58,51L 51,51L 51,58L 46,58L 46,51L 39,51L 39,46 Z M 31,25L 38,25L 38,18L 43,18L 43,25L 50,25L 50,30L 43,30L 43,37L 38,37L 38,30L 31,30L 31,25 Z M 18,39L 25,39L 25,32L 30,32L 30,39L 37,39L 37,44L 30,44L 30,51L 25,51L 25,44L 18,44L 18,39 Z "/>
</Canvas>
<Canvas x:Key="appbar_add" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 35,19L 41,19L 41,35L 57,35L 57,41L 41,41L 41,57L 35,57L 35,41L 19,41L 19,35L 35,35L 35,19 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_acrobat" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40.9131" Height="42.7219" Canvas.Left="19.254" Canvas.Top="16.6412" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 27.7221,48.2991C 22.1667,50.6667 21.4941,56.8336 22.766,55.4523C 30.2426,47.0743 34.4269,40.2614 36.76,35.125C 31.6002,25.9387 31.8796,14.635 37.9093,16.9458C 42.5866,18.7382 40.3545,23.0832 40.3545,23.0832C 40.3545,23.0832 39.7309,17.771 36.8125,18.6042C 36.116,18.7783 35.2582,25.4654 38.0971,31.8382C 40.0108,26.4778 39.6257,23.694 39.6257,23.694C 39.6257,23.694 44.4664,24.9554 40.0649,35.2833C 40.6006,36.0286 41.2037,36.7499 41.8815,37.4343C 42.8865,38.5858 43.894,39.5811 44.8903,40.4409C 47.8562,39.3684 50.7859,38.5921 53.0717,38.5921C 60.3583,38.5921 60.1667,45.9167 60.1667,45.9167C 58.5426,42.2264 53.5996,41.9021 48.2032,42.8653C 54.5071,46.7006 59.6426,45.6317 59.6426,45.6317C 59.106,50.0635 52.0743,50.4677 44.1396,43.7901C 39.8148,44.9614 35.6532,46.619 33.0903,47.7215C 26.4927,57.8007 20.6758,62.7377 19.4259,56.8004C 17.8425,49.2796 27.7221,48.2991 27.7221,48.2991 Z M 39.7906,39.4675L 38.7217,38.1415L 37.6342,40.1754C 36.7219,41.8103 35.8082,43.3751 34.9025,44.8555C 36.7884,43.9056 39.2316,42.725 41.8117,41.6458C 41.1395,40.9716 40.4646,40.2461 39.7906,39.4675 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_aftereffects" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="48.4387" Height="30.581" Canvas.Left="14.2799" Canvas.Top="22.2925" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 23.9216,22.2925L 30.9309,22.2925L 40.7089,52.3818L 34.8148,52.3818L 32.0925,43.8554L 22.5386,43.8554L 19.949,52.3818L 14.2799,52.3818L 23.9216,22.2925 Z M 25.7526,32.2927L 23.4316,39.7038L 31.1545,39.7038L 28.7885,32.2927C 28.2077,30.4626 27.7169,28.4088 27.2706,26.6681L 27.1815,26.6681C 26.7348,28.4088 26.288,30.5071 25.7526,32.2927 Z M 42.7186,41.8462C 42.7186,35.8199 46.3794,30.1499 53.3437,30.1499C 60.4412,30.1499 62.7186,35.954 62.7186,40.7305C 62.7186,41.7567 62.6295,42.5606 62.5399,43.0515L 47.9868,43.0515C 48.1204,46.9808 51.2004,48.676 54.6826,48.676C 57.2272,48.676 59.0578,48.3202 60.7098,47.6948L 61.5133,51.4897C 59.6381,52.2477 57.0495,52.8735 53.9232,52.8735C 46.8702,52.8735 42.7186,48.4979 42.7186,41.8462 Z M 53.031,33.9002C 49.6379,33.9002 48.209,36.9802 47.9868,39.2121L 57.5403,39.2121C 57.5848,37.2038 56.6913,33.9002 53.031,33.9002 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_audition" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="49.026" Height="30.5803" Canvas.Left="13.2674" Canvas.Top="22.442" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 22.9113,22.442L 29.9198,22.442L 39.6964,52.5309L 33.8046,52.5309L 31.0801,44.0041L 21.5274,44.0041L 18.9374,52.5309L 13.2674,52.5309L 22.9113,22.442 Z M 24.7419,32.4413L 22.4196,39.8524L 30.1429,39.8524L 27.7769,32.4413C 27.1961,30.6112 26.7057,28.5578 26.259,26.8172L 26.1699,26.8172C 25.7236,28.5578 25.2773,30.6566 24.7419,32.4413 Z M 56.6229,30.7902L 62.1152,30.7902L 62.1152,46.0129C 62.1152,48.6033 62.2034,50.7453 62.2934,52.5309L 57.4723,52.5309L 57.2042,49.2273L 57.1147,49.2273C 56.1771,50.7903 54.0342,53.0222 50.1503,53.0222C 46.1773,53.0222 42.5605,50.6562 42.5605,43.5587L 42.5605,30.7902L 48.052,30.7902L 48.052,42.6206C 48.052,46.2364 49.2122,48.5575 52.1145,48.5575C 54.3019,48.5575 55.7303,46.9963 56.3107,45.6115C 56.4893,45.1198 56.6229,44.5399 56.6229,43.9145L 56.6229,30.7902 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_bridge" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="37.6799" Height="30.6256" Canvas.Left="21.2627" Canvas.Top="21.9519" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 21.2627,22.5768C 23.0038,22.22 26.1733,21.9519 29.2537,21.9519C 33.3163,21.9519 35.8163,22.4432 37.8692,23.872C 39.7452,24.9873 40.995,26.952 40.995,29.4966C 40.995,32.2643 39.2544,34.8089 35.9945,36.0142L 35.9945,36.1042C 39.1644,36.9077 42.0667,39.4078 42.0667,43.5598C 42.0667,46.2376 40.9055,48.3363 39.1644,49.7643C 37.0216,51.6395 33.4949,52.5775 28.0035,52.5775C 24.9676,52.5775 22.647,52.3534 21.2627,52.1757L 21.2627,22.5768 Z M 26.7087,26.238L 26.7087,34.4522L 29.5214,34.4522C 33.3163,34.4522 35.4591,32.6661 35.4591,30.122C 35.4591,27.3088 33.3163,26.0144 29.8345,26.0144C 28.2271,26.0144 27.2899,26.1035 26.7087,26.238 Z M 26.7087,48.2913C 27.424,48.4254 28.3616,48.4254 29.6109,48.4254C 33.1381,48.4254 36.2621,47.0865 36.2621,43.3808C 36.2621,39.8986 33.2276,38.4702 29.4323,38.4702L 26.7087,38.4702L 26.7087,48.2913 Z M 51.7097,34.6749C 52.7813,31.5949 55.325,30.0324 57.6478,30.0324L 58.9426,30.166L 58.9426,35.3448C 58.4954,35.2557 58.0046,35.1666 57.3342,35.1666C 54.7006,35.1666 52.9154,36.8627 52.4237,39.3178L 52.2455,41.0148L 52.2455,52.2648L 46.755,52.2648L 46.755,37.5326C 46.755,34.5862 46.7091,32.4875 46.5751,30.5237L 51.3524,30.5237L 51.5311,34.6749L 51.7097,34.6749 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_dreamweaver" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="50.9949" Height="29.9759" Canvas.Left="13.8031" Canvas.Top="22.3452" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 13.8031,22.9571C 15.9392,22.5638 18.6692,22.3452 21.5566,22.3452C 26.5401,22.3452 29.9822,23.4812 32.4337,25.7536C 35.0053,28.0701 36.5875,31.5653 36.5875,36.5911C 36.5875,41.8337 34.9652,45.7662 32.4337,48.3009C 29.7838,50.9669 25.5512,52.3211 20.3693,52.3211C 17.5215,52.3211 15.385,52.1465 13.8031,51.9279L 13.8031,22.9571 Z M 21.3586,48.039L 21.4662,48.0395C 27.7309,48.0399 31.4448,44.1956 31.4448,36.7656C 31.4844,30.2548 28.0827,26.5405 21.9916,26.5405C 20.4485,26.5405 19.3409,26.6714 18.6692,26.8464L 18.6692,47.9081C 19.3409,48.039 20.3693,48.039 21.3586,48.039 Z M 60.161,30.7348L 64.7981,30.7348L 58.9337,52.0152L 54.5643,52.0152L 52.341,43.3637C 51.7674,41.135 51.3449,39.1249 50.9234,36.5461L 50.8455,36.5461C 50.4631,39.1689 49.9646,41.2659 49.4284,43.3637L 47.0516,52.0152L 42.644,52.0152L 37.1251,30.7348L 41.9547,30.7348L 43.9091,40.3922L 45.0964,47.2963L 45.1737,47.2963C 45.557,44.9798 46.1702,42.6205 46.707,40.4363L 49.1211,30.7348L 52.9546,30.7348L 55.2923,40.1736L 56.7873,47.2963L 56.8642,47.2963C 57.1701,44.9798 57.5926,42.6642 58.0906,40.1736L 60.161,30.7348 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_encore" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40.8158" Height="30.0891" Canvas.Left="18.4526" Canvas.Top="21.8355" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 18.4526,21.8355L 35.9529,21.8355L 35.9529,26.3447L 23.944,26.3447L 23.944,34.1126L 35.283,34.1126L 35.283,38.5768L 23.944,38.5768L 23.944,47.4158L 36.6223,47.4158L 36.6223,51.9246L 18.4526,51.9246L 18.4526,21.8355 Z M 45.8347,33.4427C 46.6949,31.7457 48.8661,29.6924 52.1831,29.6924C 55.6644,29.6924 59.2684,32.1479 59.2684,39.0231L 59.2684,51.9246L 54.2306,51.9246L 54.2306,39.648C 54.2306,36.5231 53.1661,34.1571 50.4218,34.1571C 48.4157,34.1571 47.0238,35.7191 46.4907,37.3716C 46.3264,37.8624 46.2855,38.5318 46.2855,39.1567L 46.2855,51.9246L 41.2063,51.9246L 41.2063,36.6567C 41.2063,34.1571 41.1648,32.0588 41.0429,30.1837L 45.4658,30.1837L 45.7115,33.4427L 45.8347,33.4427 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_fireworks" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="47.8975" Height="30.0897" Canvas.Left="15.6154" Canvas.Top="22.3917" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 15.6154,22.3917L 32.9824,22.3917L 32.9824,26.9006L 21.1078,26.9006L 21.1078,35.2039L 32.1784,35.2039L 32.1784,39.7137L 21.1078,39.7137L 21.1078,52.4814L 15.6154,52.4814L 15.6154,22.3917 Z M 58.51,30.74L 63.5129,30.74L 57.1873,52.4814L 52.4747,52.4814L 50.0776,43.6422C 49.4563,41.3653 49.0019,39.3119 48.547,36.6773L 48.4643,36.6773C 48.0508,39.356 47.5141,41.4998 46.9355,43.6422L 44.372,52.4814L 39.6175,52.4814L 33.6648,30.74L 38.8733,30.74L 40.9824,40.6059L 42.2638,47.6598L 42.3461,47.6598C 42.7591,45.2938 43.4209,42.8837 43.9999,40.6508L 46.6048,30.74L 50.739,30.74L 53.2602,40.3832C 53.881,42.9278 54.4178,45.2938 54.8726,47.6598L 54.9554,47.6598C 55.2865,45.2938 55.74,42.9278 56.2781,40.3832L 58.51,30.74 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_flash" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="25.1688" Height="31.025" Canvas.Left="26.3223" Canvas.Top="21.1345" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 26.3223,22.7077L 43.3206,22.7077L 43.3206,27.1212L 31.6976,27.1212L 31.6976,35.2485L 42.535,35.2485L 42.535,39.6624L 31.6976,39.6624L 31.6976,52.1595L 26.3223,52.1595L 26.3223,22.7077 Z M 46.073,52.1595L 46.073,21.1345L 51.491,21.1345L 51.491,52.1595L 46.073,52.1595 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_flashbuilder" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39.3466" Height="31.506" Canvas.Left="19.8033" Canvas.Top="21.1344" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19.8033,22.5093L 36.8016,22.5093L 36.8016,26.9223L 25.1777,26.9223L 25.1777,35.0501L 36.0143,35.0501L 36.0143,39.4635L 25.1777,39.4635L 25.1777,51.9606L 19.8033,51.9606L 19.8033,22.5093 Z M 39.9499,21.1344L 44.8704,21.1344L 44.8704,33.1952L 44.95,33.1952C 45.83,31.6219 47.7497,30.3977 50.4297,30.3977C 55.1109,30.3977 59.1905,34.6366 59.1496,41.7593C 59.1496,48.3138 55.4699,52.6404 50.8306,52.6404C 47.99,52.6404 45.6307,51.154 44.47,48.7943L 44.3895,48.7943L 44.1906,52.1595L 39.7898,52.1595L 39.9499,46.1732L 39.9499,21.1344 Z M 45.0301,44.5122C 45.5106,46.8278 47.2697,48.3138 49.2699,48.3138C 52.3904,48.3138 54.1504,45.4736 54.1504,41.5848C 54.1504,37.6082 52.3904,34.5493 49.2308,34.5493C 46.9899,34.5493 45.431,36.254 44.9901,38.3509L 44.8704,39.7497L 44.8704,42.9394C 44.8704,43.5076 44.9104,44.0313 45.0301,44.5122 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_illustrator" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="33.6882" Height="30.1512" Canvas.Left="21.0439" Canvas.Top="22.1014" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 30.4822,22.8009L 37.3426,22.8009L 46.9122,52.2525L 41.1446,52.2525L 38.4785,43.9062L 29.1276,43.9062L 26.5929,52.2525L 21.0439,52.2525L 30.4822,22.8009 Z M 32.2736,32.5887L 30.0017,39.8432L 37.5616,39.8432L 35.2452,32.5887C 34.6774,30.7977 34.1965,28.7872 33.7601,27.083L 33.6723,27.083C 33.2351,28.7872 32.7982,30.8409 32.2736,32.5887 Z M 48.7023,25.0292C 48.7023,23.3687 49.9255,22.1014 51.717,22.1014C 53.5521,22.1014 54.6885,23.3687 54.7322,25.0292C 54.7322,26.6462 53.5521,27.9135 51.6733,27.9135C 49.8819,27.9135 48.7023,26.6462 48.7023,25.0292 Z M 49.0077,52.2525L 49.0077,30.9723L 54.4267,30.9723L 54.4267,52.2525L 49.0077,52.2525 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_indesign" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="28.942" Height="31.5064" Canvas.Left="24.2467" Canvas.Top="21.1342" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 24.2467,52.1597L 24.2467,22.708L 29.6216,22.708L 29.6216,52.1597L 24.2467,52.1597 Z M 48.1075,21.1342L 53.0289,21.1342L 53.0289,46.1733L 53.1886,52.1597L 48.7882,52.1597L 48.5889,48.7949L 48.5084,48.7949C 47.3476,51.1546 44.9888,52.6406 42.1477,52.6406C 37.5088,52.6406 33.8286,48.3144 33.8286,41.7594C 33.7881,34.6371 37.8678,30.3981 42.5486,30.3981C 45.229,30.3981 47.1487,31.6218 48.0288,33.1951L 48.1075,33.1951L 48.1075,21.1342 Z M 38.8274,41.5849C 38.8274,45.4738 40.5879,48.3144 43.7093,48.3144C 45.7091,48.3144 47.4677,46.8289 47.9482,44.5128C 48.0684,44.0319 48.1075,43.5077 48.1075,42.9395L 48.1075,39.7497L 47.9892,38.3514C 47.5483,36.254 45.9889,34.5498 43.7484,34.5498C 40.5879,34.5498 38.8274,37.6082 38.8274,41.5849 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_lightroom" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="33.9736" Height="30.0897" Canvas.Left="23.2186" Canvas.Top="22.2326" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 23.2186,22.2326L 28.7087,22.2326L 28.7087,47.7243L 41.0751,47.7243L 41.0751,52.3223L 23.2186,52.3223L 23.2186,22.2326 Z M 49.9606,34.7331C 51.0322,31.6526 53.5764,30.0897 55.8983,30.0897L 57.1922,30.2242L 57.1922,35.4025C 56.7464,35.3134 56.2547,35.2243 55.5857,35.2243C 52.9511,35.2243 51.1654,36.9209 50.6746,39.376L 50.4964,41.0726L 50.4964,52.3223L 45.005,52.3223L 45.005,37.5899C 45.005,34.644 44.9604,32.5457 44.8259,30.5814L 49.6029,30.5814L 49.7806,34.7331L 49.9606,34.7331 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_photoshop" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="35.524" Height="30.1509" Canvas.Left="21.8953" Canvas.Top="22.5055" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 21.8953,23.1174C 23.8181,22.7673 26.4837,22.5055 30.1099,22.5055C 34.0428,22.5055 36.9266,23.3355 38.8059,24.9084C 40.5537,26.3507 41.6901,28.6663 41.6901,31.4192C 41.6901,34.2158 40.8164,36.5318 39.1559,38.1051C 37.0148,40.2461 33.6501,41.2512 29.8485,41.2512C 28.8434,41.2512 27.9256,41.2076 27.2262,41.0762L 27.2262,52.1755L 21.8953,52.1755L 21.8953,23.1174 Z M 27.2262,36.8382C 27.882,37.0132 28.7561,37.0564 29.8485,37.0564C 33.8683,37.0564 36.3152,35.0904 36.3152,31.6379C 36.3152,28.3609 34.0428,26.6126 30.3285,26.6126C 28.8434,26.6126 27.7947,26.744 27.2262,26.8753L 27.2262,36.8382 Z M 42.8675,37.1001C 42.8675,33.3421 45.9704,30.4142 50.9084,30.4142C 53.2676,30.4142 55.3219,31.0261 56.5447,31.6816L 55.4964,35.4831C 54.5786,34.9585 52.874,34.2599 50.9957,34.2599C 49.0733,34.2599 48.0242,35.1777 48.0242,36.4877C 48.0242,37.8433 49.0292,38.4983 51.7385,39.4597C 55.5837,40.858 57.3747,42.8245 57.4193,45.9701C 57.4193,49.8154 54.4041,52.6564 48.7665,52.6564C 46.1886,52.6564 43.8725,52.0005 42.3002,51.1268L 43.3484,47.2379C 44.5721,47.9811 46.8882,48.7667 48.811,48.7667C 51.1707,48.7667 52.2185,47.8057 52.2185,46.4079C 52.2185,44.9655 51.3451,44.2223 48.7237,43.3045C 44.5721,41.863 42.8243,39.5902 42.8675,37.1001 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_prelude" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="30.136" Height="31.6972" Canvas.Left="23.0313" Canvas.Top="20.3768" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 23.0313,22.3856C 24.996,22.0288 27.7192,21.7611 31.4241,21.7611C 35.4426,21.7611 38.389,22.6096 40.3083,24.2162C 42.0948,25.6896 43.2551,28.0561 43.2551,30.8684C 43.2551,33.7257 42.3621,36.0913 40.6655,37.6992C 38.4781,39.8867 35.0413,40.9133 31.1564,40.9133C 30.1302,40.9133 29.1926,40.8683 28.4777,40.7343L 28.4777,52.074L 23.0313,52.074L 23.0313,22.3856 Z M 28.4777,36.404C 29.1481,36.5821 30.0407,36.6276 31.1564,36.6276C 35.264,36.6276 37.7636,34.6183 37.7636,31.0916C 37.7636,27.7434 35.4426,25.9578 31.6473,25.9578C 30.1302,25.9578 29.0586,26.0914 28.4777,26.2255L 28.4777,36.404 Z M 47.6308,52.074L 47.6308,20.3768L 53.1673,20.3768L 53.1673,52.074L 47.6308,52.074 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_premierpro" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="36.3855" Height="30.3125" Canvas.Left="21.8543" Canvas.Top="22.3676" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 21.8543,22.9925C 23.819,22.6347 26.5426,22.3676 30.248,22.3676C 34.2651,22.3676 37.2119,23.2161 39.1311,24.8231C 40.9167,26.2961 42.0779,28.6625 42.0779,31.4748C 42.0779,34.3316 41.1849,36.6981 39.4883,38.3055C 37.3014,40.4934 33.8638,41.5196 29.9803,41.5196C 28.9527,41.5196 28.0152,41.4755 27.3007,41.341L 27.3007,52.6801L 21.8543,52.6801L 21.8543,22.9925 Z M 27.3007,37.0103C 27.9711,37.1894 28.8636,37.2335 29.9803,37.2335C 34.0874,37.2335 36.5869,35.2247 36.5869,31.6979C 36.5869,28.3499 34.2651,26.5642 30.4711,26.5642C 28.9527,26.5642 27.8815,26.6978 27.3007,26.8319L 27.3007,37.0103 Z M 51.0074,35.091C 52.079,32.0106 54.6236,30.4477 56.9446,30.4477L 58.2399,30.5818L 58.2399,35.7609C 57.7931,35.671 57.3018,35.5824 56.632,35.5824C 53.9983,35.5824 52.2131,37.278 51.7218,39.734L 51.5432,41.431L 51.5432,52.6801L 46.0518,52.6801L 46.0518,37.9479C 46.0518,35.0015 46.0073,32.9037 45.8737,30.9395L 50.6502,30.9395L 50.8279,35.091L 51.0074,35.091 Z "/>
</Canvas>
<Canvas x:Key="appbar_adobe_speedgrade" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="44.1529" Height="39.9105" Canvas.Left="16.3314" Canvas.Top="21.6875" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 16.8227,30.3484C 16.8227,25.4374 20.9302,21.6875 27.4483,21.6875C 30.7069,21.6875 33.1178,22.4024 34.6794,23.2059L 33.3405,27.6252C 32.2693,27.0449 30.171,26.1968 27.3583,26.1968C 23.8761,26.1968 22.3591,28.0715 22.3591,29.8126C 22.3591,32.1345 24.1002,33.2057 28.1173,34.7686C 33.3405,36.7324 35.8856,39.3665 35.8856,43.6968C 35.8856,48.5183 32.2248,52.7585 24.457,52.7585C 21.287,52.7585 17.9839,51.8218 16.3314,50.8402L 17.5367,46.2863C 19.3228,47.3126 22.0019,48.206 24.8133,48.206C 28.3413,48.206 30.3051,46.554 30.3051,44.0985C 30.3051,41.8221 28.7872,40.4827 24.9478,39.0984C 19.9927,37.3132 16.8227,34.6791 16.8227,30.3484 Z M 39.2341,41.5092C 39.2341,34.3664 43.877,30.0358 49.1003,30.0358C 52.4038,30.0358 54.3681,31.6437 55.3956,33.428L 55.4847,33.428L 55.7074,30.5275L 60.4844,30.5275C 60.3953,32.0005 60.3062,33.7861 60.3062,36.777L 60.3062,49.0986C 60.3062,53.6524 59.3682,56.9115 57.0917,58.9648C 54.8153,60.9735 51.6899,61.598 48.6985,61.598C 45.9312,61.598 42.9844,61.0185 41.1093,59.8574L 42.3145,55.7058C 43.6989,56.5088 46.0199,57.3578 48.654,57.3578C 52.2252,57.3578 54.9039,55.4826 54.9039,50.7947L 54.9039,48.92L 54.8153,48.92C 53.5646,50.8402 51.3322,52.1345 48.4758,52.1345C 43.0735,52.1345 39.2341,47.6698 39.2341,41.5092 Z M 44.8146,41.3303C 44.8146,45.0365 46.6893,48.027 50.1274,48.027C 52.1811,48.027 53.9663,46.6881 54.5917,44.7234C 54.7253,44.1431 54.8153,43.3845 54.8153,42.7596L 54.8153,39.2329C 54.8153,38.7407 54.7698,38.2054 54.6358,37.7595C 54.0558,35.7503 52.4929,34.2328 50.1724,34.2328C 47.0915,34.2328 44.8146,36.911 44.8146,41.3303 Z "/>
</Canvas>
<Canvas x:Key="appbar_alert" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="35.0552" Height="32.8541" Canvas.Left="20.4724" Canvas.Top="22.1667" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,22.1667C 41.1666,22.1667 57,52.25 55.4166,53.8333C 53.8333,55.4167 22.1667,55.4167 20.5833,53.8333C 19,52.25 34.8333,22.1667 38,22.1667 Z M 38,45.9167C 36.6883,45.9167 35.625,46.98 35.625,48.2917C 35.625,49.6034 36.6883,50.6667 38,50.6667C 39.3116,50.6667 40.375,49.6034 40.375,48.2917C 40.375,46.98 39.3116,45.9167 38,45.9167 Z M 35.625,31.6667L 36.4166,44.3333L 39.5833,44.3333L 40.375,31.6667L 35.625,31.6667 Z "/>
</Canvas>
<Canvas x:Key="appbar_alien" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="36.005" Height="25.0035" Canvas.Left="20.0028" Canvas.Top="27.0038" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 27.0038,27.0038L 30.0042,27.0038L 30.0042,30.0042L 33.0046,30.0042L 33.0046,33.0046L 43.006,33.0046L 43.006,30.0042L 46.0064,30.0042L 46.0064,27.0038L 49.0068,27.0038L 49.0068,30.0042L 46.0064,30.0042L 46.0064,33.0046L 49.0068,33.0046L 49.0068,36.005L 52.0073,36.005L 52.0073,40.0056L 49.0068,40.0056L 49.0068,49.0068L 46.0064,49.0068L 46.0064,52.0073L 40.0056,52.0073L 40.0056,49.0068L 46.0064,49.0068L 46.0064,44.0061L 30.0042,44.0061L 30.0042,49.0068L 27.0038,49.0068L 27.0038,40.0056L 24.0033,40.0056L 24.0033,46.0064L 20.0028,46.0064L 20.0028,40.0056L 24.0033,40.0056L 24.0033,36.005L 27.0038,36.005L 27.0038,33.0046L 30.0042,33.0046L 30.0042,30.0042L 27.0038,30.0042L 27.0038,27.0038 Z M 52.0073,40.0056L 56.0078,40.0056L 56.0078,46.0064L 52.0073,46.0064L 52.0073,40.0056 Z M 30.0042,49.0068L 36.005,49.0068L 36.005,52.0073L 30.0042,52.0073L 30.0042,49.0068 Z M 30.0042,36.005L 30.0042,40.0056L 34.0047,40.0056L 34.0047,36.005L 30.0042,36.005 Z M 42.0059,36.005L 42.0059,40.0056L 46.0064,40.0056L 46.0064,36.005L 42.0059,36.005 Z "/>
</Canvas>
<Canvas x:Key="appbar_align_center" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="38.0053" Height="34.0047" Canvas.Left="19.0027" Canvas.Top="21.0029" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 27.0038,21.0029L 49.0068,21.0029L 49.0068,25.0035L 27.0038,25.0035L 27.0038,21.0029 Z M 21.0029,27.0038L 55.0077,27.0038L 55.0077,31.0043L 21.0029,31.0043L 21.0029,27.0038 Z M 25.0035,33.0046L 51.0071,33.0046L 51.0071,37.0052L 25.0035,37.0052L 25.0035,33.0046 Z M 19.0027,39.0055L 57.008,39.0054L 57.008,43.006L 19.0027,43.006L 19.0027,39.0055 Z M 27.0038,45.0063L 49.0068,45.0063L 49.0068,49.0068L 27.0038,49.0068L 27.0038,45.0063 Z M 23.0032,51.0071L 53.0074,51.0071L 53.0074,55.0077L 23.0032,55.0077L 23.0032,51.0071 Z "/>
</Canvas>
<Canvas x:Key="appbar_align_justify" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="38.0053" Height="34.0047" Canvas.Left="19.0027" Canvas.Top="21.0029" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 57.0079,21.0029L 57.0079,25.0034L 19.0027,25.0034L 19.0027,21.0029L 57.0079,21.0029 Z M 57.0079,27.0038L 57.0079,31.0042L 19.0027,31.0042L 19.0027,27.0038L 57.0079,27.0038 Z M 57.008,33.0046L 57.008,37.005L 19.0027,37.0052L 19.0027,33.0047L 57.008,33.0046 Z M 57.0079,39.0054L 57.0079,43.0059L 19.0027,43.0059L 19.0027,39.0054L 57.0079,39.0054 Z M 57.008,45.0064L 57.008,49.0068L 19.0027,49.0068L 19.0027,45.0064L 57.008,45.0064 Z M 57.008,51.0073L 57.008,55.0077L 19.0027,55.0077L 19.0027,51.0073L 57.008,51.0073 Z "/>
</Canvas>
<Canvas x:Key="appbar_align_left" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="33.0046" Height="34.0047" Canvas.Left="19.0027" Canvas.Top="21.0029" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19.0027,21.0029L 19.0027,25.0034L 44.0061,25.0034L 44.0061,21.0029L 19.0027,21.0029 Z M 19.0027,27.0038L 19.0027,31.0042L 49.0068,31.0042L 49.0068,27.0038L 19.0027,27.0038 Z M 19.0027,33.0046L 19.0027,37.005L 43.006,37.005L 43.006,33.0046L 19.0027,33.0046 Z M 19.0027,39.0054L 19.0027,43.0059L 52.0073,43.0059L 52.0073,39.0054L 19.0027,39.0054 Z M 19.0027,45.0064L 19.0027,49.0068L 46.0064,49.0068L 46.0064,45.0064L 19.0027,45.0064 Z M 19.0027,51.0073L 19.0027,55.0077L 51.0071,55.0077L 51.0071,51.0073L 19.0027,51.0073 Z "/>
</Canvas>
<Canvas x:Key="appbar_align_right" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="33.0046" Height="34.0047" Canvas.Left="24.0033" Canvas.Top="21.0029" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 57.008,21.0029L 57.008,25.0034L 32.0045,25.0034L 32.0045,21.0029L 57.008,21.0029 Z M 57.008,27.0038L 57.008,31.0042L 27.0038,31.0042L 27.0038,27.0038L 57.008,27.0038 Z M 57.008,33.0046L 57.008,37.005L 33.0046,37.005L 33.0046,33.0046L 57.008,33.0046 Z M 57.008,39.0055L 57.008,43.0059L 24.0033,43.0059L 24.0033,39.0055L 57.008,39.0055 Z M 57.008,45.0064L 57.008,49.0068L 30.0042,49.0068L 30.0042,45.0064L 57.008,45.0064 Z M 57.008,51.0073L 57.008,55.0077L 25.0035,55.0077L 25.0035,51.0073L 57.008,51.0073 Z "/>
</Canvas>
<Canvas x:Key="appbar_anchor" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="38.0053" Height="36.4217" Canvas.Left="19.0026" Canvas.Top="20.5862" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38.0053,20.5862C 40.629,20.5862 42.756,22.7132 42.756,25.3369C 42.756,27.0953 41.8005,28.6307 40.3805,29.4521L 40.3805,51.2442C 44.2994,50.5074 47.7481,47.9754 50.1734,44.3395L 47.1108,44.3395L 52.2573,34.0466L 57.008,44.3395L 54.4332,44.3395C 52.042,51.7201 45.5897,57.008 38.0053,57.008C 30.4209,57.008 23.9687,51.7201 21.5774,44.3395L 19.0026,44.3395L 23.7533,34.0466L 28.8998,44.3395L 25.8372,44.3395C 28.2625,47.9753 31.711,50.5073 35.6299,51.2442L 35.6299,29.4519C 34.2099,28.6305 33.2546,27.0952 33.2546,25.3369C 33.2546,22.7132 35.3816,20.5862 38.0053,20.5862 Z M 38.0053,23.7533C 37.1307,23.7533 36.4217,24.4623 36.4217,25.3369C 36.4217,26.2115 37.1307,26.9204 38.0053,26.9204C 38.8799,26.9204 39.5888,26.2115 39.5888,25.3369C 39.5888,24.4623 38.8799,23.7533 38.0053,23.7533 Z "/>
</Canvas>
<Canvas x:Key="appbar_app_favorite" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="46.6218" Height="37.4603" Canvas.Left="12.3782" Canvas.Top="16.5398" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 59,24L 59,54L 19,54L 19,36.667L 23,34L 23,50L 55,50L 55,32L 29.5,32L 28.68,29.5874L 35.8574,24L 59,24 Z M 33.3776,24.0885L 27.1615,28.9276L 29.4607,36.4621L 22.9377,32.0456L 16.4824,36.5606L 18.667,28.9921L 12.3782,24.248L 20.2514,23.9868L 22.82,16.5398L 25.5013,23.947L 33.3776,24.0885 Z "/>
</Canvas>
<Canvas x:Key="appbar_app_minus" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="30" Canvas.Left="18" Canvas.Top="23" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 18,23L 58,23L 58,53L 18,53L 18,23 Z M 54,31L 22,31L 22,49L 54,49L 54,31 Z M 45,38L 45,42L 31,42L 31,38L 45,38 Z "/>
</Canvas>
<Canvas x:Key="appbar_app_plus" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="30" Canvas.Left="18" Canvas.Top="23" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 18,23L 58,23L 58,53L 18,53L 18,23 Z M 54,31L 22,31L 22,49L 54,49L 54,31 Z M 36,33L 40,33L 40,38L 45,38L 45,42L 40,42L 40,47L 36,47L 36,42L 31,42L 31,38L 36,38L 36,33 Z "/>
</Canvas>
<Canvas x:Key="appbar_app_remove" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="30" Canvas.Left="18" Canvas.Top="23" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 18,23L 58,23L 58,53L 18,53L 18,23 Z M 54,31L 22,31L 22,49L 54,49L 54,31 Z M 30.7269,35.9594L 33.9594,32.7269L 38,36.7675L 42.0406,32.7269L 45.2731,35.9594L 41.2325,40L 45.2731,44.0406L 42.0406,47.2731L 38,43.2325L 33.9594,47.2731L 30.7269,44.0406L 34.7675,40L 30.7269,35.9594 Z "/>
</Canvas>
<Canvas x:Key="appbar_app" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="30" Canvas.Left="18" Canvas.Top="23" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 18,23L 58,23L 58,53L 18,53L 18,23 Z M 54,31L 22,31L 22,49L 54,49L 54,31 Z "/>
</Canvas>
<Canvas x:Key="appbar_arcade_button" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="36" Canvas.Left="19" Canvas.Top="21" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,21C 46.0622,21 52.6389,26.9365 52.9856,34.3815L 53,34C 53,31.1992 52.1188,28.5905 50.601,26.4022C 54.5262,29.6081 57,34.288 57,39.5C 57,49.165 48.4934,57 38,57C 27.5066,57 19,49.165 19,39.5C 19,34.2879 21.4738,29.6081 25.399,26.4021C 23.8812,28.5904 23,31.1992 23,34L 23.0144,34.3815C 23.3611,26.9365 29.9378,21 38,21 Z M 53,35C 53,42.732 46.2843,49 38,49C 29.7157,49 23,42.732 23,35L 23,39C 23,46.732 29.7157,52.5 38,52.5C 46.2843,52.5 53,46.732 53,39L 53,35 Z "/>
</Canvas>
<Canvas x:Key="appbar_archive" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42.75" Height="42.75" Canvas.Left="15.8333" Canvas.Top="17.4167" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 31.6667,17.4167L 44.3333,17.4167L 50.6667,17.4167C 51.5411,17.4167 52.25,18.1256 52.25,19L 52.25,20.5833C 52.25,21.4578 51.5411,22.1667 50.6667,22.1667L 44.3333,22.1667C 43.4588,22.1667 42.75,21.4578 42.75,20.5834C 42.7376,20.5834 39.5771,20.5864 36.4167,22.1667L 33.25,23.75L 31.6667,23.75L 31.6667,44.3333L 33.25,44.3333C 37.9901,47.4934 42.7303,47.5 42.75,47.5C 42.75,46.6256 43.4589,45.9167 44.3333,45.9167L 50.6667,45.9167C 51.5411,45.9167 52.25,46.6255 52.25,47.5L 52.25,49.0833C 52.25,49.9578 51.5411,50.6667 50.6667,50.6667L 42.75,50.6667L 36.4167,50.6667C 36.4167,50.6667 34.226,50.6667 31.6667,50.4389L 31.6667,52.25L 30.875,52.25L 30.875,53.8333L 41.5903,53.8333C 42.1378,52.8868 43.1612,52.25 44.3333,52.25C 46.0822,52.25 47.5,53.6678 47.5,55.4167C 47.5,57.1656 46.0822,58.5833 44.3333,58.5833C 43.1612,58.5833 42.1378,57.9465 41.5903,57L 33.25,57L 33.25,58.5833C 33.25,59.4578 32.5411,60.1667 31.6667,60.1667L 25.3333,60.1667C 24.4589,60.1667 23.75,59.4578 23.75,58.5833L 23.75,57L 21.743,57C 21.1955,57.9465 20.1721,58.5833 19,58.5833C 17.2511,58.5833 15.8333,57.1656 15.8333,55.4167C 15.8333,53.6678 17.2511,52.25 19,52.25C 20.1721,52.25 21.1955,52.8868 21.743,53.8333L 26.125,53.8333L 26.125,52.25L 25.3333,52.25L 25.3333,49.1701C 24.369,48.7453 23.75,48.2 23.75,47.5L 23.75,44.3333L 25.3333,44.3333L 25.3333,23.75L 23.75,23.75L 23.75,19C 23.75,17.4167 31.6667,17.4167 31.6667,17.4167 Z M 41.1667,23.75L 51.8542,23.75L 58.5833,30.4792L 58.5833,44.3333L 41.1667,44.3333L 41.1667,23.75 Z M 44.3333,26.9167L 44.3333,41.1667L 55.4167,41.1667L 55.4167,34.8333L 47.5,34.8333L 47.5,26.9167L 44.3333,26.9167 Z M 50.6667,26.9167L 50.6667,31.6667L 55.4167,31.6667L 50.6667,26.9167 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_collapsed" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40.5" Height="40.5" Canvas.Left="17.75" Canvas.Top="17.7501" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 54.2499,34L 42,34L 42,21.7501L 45.9999,17.7501L 45.9999,26.7501L 53.9999,18.7501L 57.2499,22.0001L 49.2499,30.0001L 58.2499,30.0001L 54.2499,34 Z M 34,21.7501L 34,34L 21.75,34L 17.75,30.0001L 26.75,30.0001L 18.75,22.0001L 22,18.7501L 30,26.7501L 30,17.7501L 34,21.7501 Z M 21.75,42L 34,42L 34,54.25L 30,58.25L 30,49.25L 22,57.25L 18.75,54L 26.75,46L 17.75,46L 21.75,42 Z M 42,54.25L 42,42L 54.2499,42L 58.2499,46L 49.2499,46.0001L 57.2499,54L 53.9999,57.25L 45.9999,49.25L 45.9999,58.25L 42,54.25 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_corner_up_right" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40.25" Height="40" Canvas.Left="22" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 22,30L 47.75,30L 36.75,19L 48.25,19L 62.25,33L 47.25,48L 36.75,48L 47.75,37L 29,37L 29,59L 22,59L 22,30 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_down_up" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="44" Height="46.5" Canvas.Left="16" Canvas.Top="14.75" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 52,54L 44,54L 44,29.25L 35.9999,37.25L 35.9999,26.75L 48,14.75L 59.9999,26.75L 59.9999,37.25L 52,29.25L 52,54 Z M 23.9999,22L 31.9999,22L 31.9999,46.75L 40,38.75L 40,49.25L 27.9999,61.25L 16,49.25L 16,38.75L 23.9999,46.75L 23.9999,22 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_down" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="28" Height="39.25" Canvas.Left="24" Canvas.Top="19.0002" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 42,19.0002L 34,19.0002L 34,43.7502L 24,33.7502L 24,44.2502L 38,58.2502L 52,44.2502L 52,33.7502L 42,43.7502L 42,19.0002 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_expand" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="40" Canvas.Left="18" Canvas.Top="18" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 30.25,58L 18,58L 18,45.75L 22,41.75L 22,50.75L 30,42.75L 33.25,46L 25.25,54L 34.25,54L 30.25,58 Z M 58,45.75L 58,58L 45.75,58L 41.75,54L 50.75,54L 42.75,46L 46,42.75L 54,50.75L 54,41.75L 58,45.75 Z M 45.75,18L 58,18L 58,30.25L 54,34.25L 54,25.25L 46,33.25L 42.75,30L 50.75,22L 41.75,22L 45.75,18 Z M 18,30.25L 18,18L 30.25,18L 34.25,22L 25.25,22L 33.25,30L 30,33.25L 22,25.25L 22,34.25L 18,30.25 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_left_right" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="46.4999" Height="44" Canvas.Left="14.75" Canvas.Top="16" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 22,52.0001L 22,44.0001L 46.75,44.0001L 38.75,36L 49.25,36L 61.25,48.0001L 49.25,60L 38.75,60L 46.75,52.0001L 22,52.0001 Z M 54,23.9999L 54,31.9999L 29.25,31.9999L 37.25,40L 26.75,40L 14.75,27.9999L 26.75,16L 37.25,16L 29.25,23.9999L 54,23.9999 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_left" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39.25" Height="28" Canvas.Left="17.75" Canvas.Top="24" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 57,42L 57,34L 32.25,34L 42.25,24L 31.75,24L 17.75,38L 31.75,52L 42.25,52L 32.25,42L 57,42 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_right_left" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="46.4999" Height="44" Canvas.Left="14.75" Canvas.Top="16" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 54,52.0001L 29.25,52.0001L 37.25,60L 26.75,60L 14.75,48.0001L 26.75,36L 37.25,36L 29.25,44.0001L 54,44.0001L 54,52.0001 Z M 22,23.9999L 46.75,23.9999L 38.75,16L 49.25,16L 61.25,27.9999L 49.25,40L 38.75,40L 46.75,31.9999L 22,31.9999L 22,23.9999 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_right" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39.25" Height="28" Canvas.Left="19.0002" Canvas.Top="24" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19.0002,34L 19.0002,42L 43.7502,42L 33.7502,52L 44.2502,52L 58.2502,38L 44.2502,24L 33.7502,24L 43.7502,34L 19.0002,34 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_up_down" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="44" Height="46.5" Canvas.Left="16" Canvas.Top="14.75" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 23.9999,54L 23.9999,29.25L 16,37.25L 16,26.75L 27.9999,14.75L 40,26.75L 40,37.25L 31.9999,29.25L 31.9999,54L 23.9999,54 Z M 52,22L 52,46.75L 60,38.75L 60,49.25L 48,61.25L 36,49.2499L 36,38.7499L 44,46.75L 44.0001,22L 52,22 Z "/>
</Canvas>
<Canvas x:Key="appbar_arrow_up" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="28" Height="39.25" Canvas.Left="24" Canvas.Top="17.75" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 34,57L 42,57L 42,32.25L 52,42.25L 52,31.75L 38,17.75L 24,31.75L 24,42.25L 34,32.25L 34,57 Z "/>
</Canvas>
<Canvas x:Key="appbar_at" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39.1875" Height="40.1224" Canvas.Left="18.2083" Canvas.Top="18.1369" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 40.3687,37.9665L 41.1245,32.8372C 40.739,32.7647 40.2956,32.7217 39.7944,32.7081L 38.9479,32.7878C 37.5829,33.1162 36.4146,33.8851 35.443,35.0947C 34.4097,36.381 33.7788,37.9105 33.5503,39.6833L 33.5319,40.1592C 33.5331,41.2743 33.7733,42.15 34.2867,42.8306C 34.7292,43.1765 35.2968,43.3538 35.9896,43.3627C 37.0834,43.3211 38.0917,42.7222 39.0143,41.566L 39.3668,41.0869C 39.8391,40.1822 40.173,39.1421 40.3687,37.9665 Z M 22.8035,52.313C 19.8817,49.3593 18.35,45.3197 18.2083,40.1942C 18.275,35.7706 19.3628,31.8765 21.4716,28.5121C 22.2949,27.0574 23.3001,25.697 24.4873,24.431C 28.269,20.3979 33.3586,18.2999 39.7562,18.1369C 44.8808,18.2159 48.9641,19.7079 52.0062,22.6132C 52.1598,22.7598 52.3096,22.9089 52.4557,23.0604C 53.8149,24.3709 54.8744,25.8712 55.6342,27.5612C 56.7636,29.7907 57.3508,32.3634 57.3958,35.2794C 57.3437,39.5903 56.3519,42.9591 54.4204,45.386C 52.4889,47.8129 49.9302,49.0472 46.7445,49.089C 45.9767,49.0883 45.2849,48.9789 44.6692,48.7609C 43.9462,48.5961 43.3152,48.2997 42.7763,47.8717C 42.5893,47.7233 42.4187,47.5594 42.2643,47.3799C 41.7361,46.9253 41.348,46.3373 41.0999,45.616C 39.2901,47.9309 36.9547,49.1052 34.0938,49.1387C 33.0756,49.1322 32.1621,48.927 31.3533,48.523C 30.5971,48.2123 29.9271,47.7378 29.3435,47.0994C 29.1853,46.9552 29.0327,46.8003 28.8856,46.6348C 27.7503,45.3569 27.1646,43.5147 27.1286,41.1082C 27.1573,38.3045 27.8656,35.8265 29.2536,33.6743C 29.7593,32.7528 30.3811,31.8869 31.1188,31.0766C 33.4272,28.5409 36.6488,27.2174 40.7835,27.1061C 42.0759,27.1166 43.3433,27.2493 44.5858,27.5042C 45.8282,27.7592 46.8246,28.0735 47.5748,28.4472L 47.5424,28.6473C 47.6931,28.7106 47.8358,28.7758 47.9707,28.843L 47.8861,29.3644L 48.1372,29.4832L 46.3963,40.2164C 46.1839,41.3725 46.1013,42.3302 46.1486,43.0895C 46.2188,43.3461 46.3143,43.5641 46.4351,43.7434C 46.67,43.896 46.9548,43.9722 47.2895,43.9722C 48.5938,44.0322 49.8233,43.2675 51.0612,41.5609C 51.8595,40.0043 52.2905,37.8694 52.3544,35.1561C 52.3391,31.4249 51.2052,28.3763 48.9525,26.0104C 46.6446,23.8205 43.3636,22.6896 39.1095,22.6178C 35.9232,22.6494 33.0866,23.4472 30.5997,25.0112C 29.7101,25.6044 28.8656,26.2965 28.0663,27.0877C 26.3971,28.74 25.1518,30.748 24.3304,33.1117C 23.7603,34.9932 23.4478,37.0908 23.3927,39.4045C 23.4654,43.8266 24.6571,47.2517 27.0529,49.76C 29.6794,52.2084 33.1148,53.4394 37.3593,53.4531C 38.8372,53.4508 40.3043,53.308 41.7608,53.0247C 43.2173,52.7413 44.5275,52.3308 45.6915,51.7931L 45.8293,52.305C 45.9161,52.267 46.0021,52.2283 46.0874,52.1889L 46.9268,55.3082L 47.2667,56.3144C 45.5597,57.0335 43.8671,57.5398 42.1891,57.8335C 40.511,58.1272 38.6443,58.269 36.5891,58.2589C 31.731,58.2213 27.5831,56.6766 24.1454,53.6247L 23.1994,52.7088C 23.1317,52.6405 23.0649,52.5715 22.9987,52.502L 22.8035,52.313 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_three" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="43" Height="41.9167" Canvas.Left="19" Canvas.Top="15.0833" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 34,39.1716L 34,22.4583L 28,28.0833L 28,22.5833L 36,15.0833L 44,22.5833L 44,28.0833L 38,22.4583L 38,38L 54.625,38L 49,32L 54.5,32L 62,40L 54.5,48L 49,48L 54.625,42L 36.8284,42L 25.8284,53L 34,53L 30,57L 19,57L 19,46L 23,42L 23,50.1716L 34,39.1716 Z M 40.2533,47.5333L 37.8,52.345L 37.8,55L 36.0933,55L 36.0933,52.375L 33.7467,47.5333L 35.6683,47.5333L 36.8633,50.3183L 37.0333,50.9283L 37.055,50.9283L 37.22,50.34L 38.4717,47.5333L 40.2533,47.5333 Z M 48.52,37L 46.49,37L 45.1817,34.5683L 45.0283,34.0683L 45.0067,34.0683L 44.8317,34.59L 43.5183,37L 41.48,37L 43.9,33.2667L 41.6933,29.5333L 43.7717,29.5333L 44.855,31.7717L 45.0817,32.4017L 45.1033,32.4017L 45.3383,31.7517L 46.5317,29.5333L 48.4133,29.5333L 46.1783,33.235L 48.52,37 Z M 32.04,38L 25.96,38L 25.96,37.015L 29.835,31.92L 26.28,31.92L 26.28,30.5333L 32.04,30.5333L 32.04,31.4883L 28.2483,36.6133L 32.04,36.6133L 32.04,38 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_x_letter" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="35.8286" Height="38" Canvas.Left="20.1857" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 56.0143,57L 45.683,57L 39.0246,44.6245C 38.7758,44.1665 38.5156,43.3183 38.2442,42.0799L 38.1339,42.0799C 38.0095,42.6623 37.7127,43.5473 37.2433,44.7348L 30.5594,57L 20.1857,57L 32.5018,38L 21.2714,19L 31.8487,19L 37.3621,30.3915C 37.7918,31.2963 38.1763,32.365 38.5156,33.5977L 38.6259,33.5977C 38.8408,32.857 39.2394,31.7543 39.8219,30.2897L 45.8951,19L 55.4714,19L 44.0969,37.8388L 56.0143,57 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_x" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="43" Height="42" Canvas.Left="19" Canvas.Top="15" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,38L 54.625,38L 49,32L 54.5,32L 62,40L 54.5,48L 49,48L 54.625,42L 36.8284,42L 28.6556,50.1728C 28.8779,50.7388 29,51.3551 29,52C 29,54.7614 26.7614,57 24,57C 21.2386,57 19,54.7614 19,52C 19,49.2386 21.2386,47 24,47C 24.6449,47 25.2612,47.1221 25.8272,47.3444L 34,39.1716L 34,24.584C 32.2341,23.8124 31,22.0503 31,20C 31,17.2386 33.2386,15 36,15C 38.7614,15 41,17.2386 41,20C 41,22.0503 39.7659,23.8124 38,24.584L 38,38 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_xy_parentheses" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="44.6267" Height="36.08" Canvas.Left="18.9" Canvas.Top="22" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 37.3,50L 31.9943,50L 28.5748,40.8812C 28.447,40.5437 28.3134,39.9188 28.174,39.0062L 28.1174,39.0062L 27.66,40.9625L 24.2275,50L 18.9,50L 25.225,36L 19.4576,22L 24.8896,22L 27.721,30.3938C 27.9417,31.0604 28.1392,31.8479 28.3134,32.7563L 28.3701,32.7563L 28.9843,30.3188L 32.1032,22L 37.0212,22L 31.1797,35.8813L 37.3,50 Z M 44.5466,58.0533L 42.7733,58.0533C 40.24,55.1321 38.9733,51.53 38.9733,47.2471C 38.9733,42.9483 40.24,39.2882 42.7733,36.2667L 44.5466,36.2667C 42.0133,39.4017 40.7467,43.0539 40.7467,47.2233C 40.7467,51.3558 42.0133,54.9658 44.5466,58.0533 Z M 59.7267,58.0533L 57.9533,58.0533C 60.4867,54.9658 61.7533,51.3558 61.7533,47.2233C 61.7533,43.0539 60.4867,39.4017 57.9533,36.2667L 59.7267,36.2667C 62.26,39.2882 63.5267,42.9483 63.5267,47.2471C 63.5267,51.53 62.26,55.1321 59.7267,58.0533 Z M 58.84,39.3333L 53.7298,53.1083C 52.5106,56.4228 50.6753,58.08 48.2237,58.08C 47.2896,58.08 46.5217,57.9111 45.92,57.5733L 45.92,54.5333C 46.4267,54.8711 46.9769,55.04 47.5706,55.04C 48.5496,55.04 49.2318,54.5637 49.6171,53.611L 50.2662,52.0317L 45.16,39.3333L 49.4865,39.3333L 51.8179,47.0838C 51.963,47.5667 52.0765,48.1354 52.1583,48.7898L 52.2058,48.7898L 52.6096,47.1115L 54.9648,39.3333L 58.84,39.3333 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_xy" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="33.94" Height="36.08" Canvas.Left="21.9" Canvas.Top="22" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 40.3,50L 34.9943,50L 31.5748,40.8812C 31.447,40.5437 31.3134,39.9187 31.174,39.0062L 31.1174,39.0062L 30.66,40.9625L 27.2275,50L 21.9,50L 28.225,36L 22.4576,22L 27.8896,22L 30.721,30.3937C 30.9417,31.0604 31.1392,31.8479 31.3134,32.7562L 31.3701,32.7562L 31.9843,30.3187L 35.1032,22L 40.0212,22L 34.1797,35.8812L 40.3,50 Z M 55.84,39.3333L 50.7298,53.1083C 49.5106,56.4228 47.6753,58.08 45.2237,58.08C 44.2896,58.08 43.5217,57.9111 42.92,57.5733L 42.92,54.5333C 43.4267,54.8711 43.9769,55.04 44.5706,55.04C 45.5496,55.04 46.2318,54.5637 46.6171,53.611L 47.2662,52.0317L 42.16,39.3333L 46.4865,39.3333L 48.8179,47.0838C 48.963,47.5667 49.0765,48.1354 49.1583,48.7898L 49.2058,48.7898L 49.6096,47.1115L 51.9648,39.3333L 55.84,39.3333 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_y_letter" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="33.1143" Height="38" Canvas.Left="21.5429" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 54.6572,19L 42.1714,43.4879L 42.1714,57L 33.4857,57L 33.4857,43.6406L 21.5429,19L 31.3228,19L 37.4045,33.1736C 37.5063,33.4394 37.7947,34.4742 38.2697,36.2781L 38.3799,36.2781C 38.6118,35.0058 38.8917,34.0077 39.2197,33.2839L 45.5897,19L 54.6572,19 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_y" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="42" Canvas.Left="19" Canvas.Top="15" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,38L 51.416,38C 52.1876,36.2341 53.9497,35 56,35C 58.7614,35 61,37.2386 61,40C 61,42.7614 58.7614,45 56,45C 53.9497,45 52.1876,43.7659 51.416,42L 36.8284,42L 25.8284,53L 34,53L 30,57L 19,57L 19,46L 23,42L 23,50.1716L 34,39.1716L 34,24.584C 32.2341,23.8124 31,22.0503 31,20C 31,17.2386 33.2386,15 36,15C 38.7614,15 41,17.2386 41,20C 41,22.0503 39.7659,23.8124 38,24.584L 38,38 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_yx" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="35.6679" Height="34.9999" Canvas.Left="20.8178" Canvas.Top="22.0001" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 56.4857,57L 51.592,57L 48.4379,51.1379C 48.3201,50.921 48.1969,50.5192 48.0683,49.9326L 48.0161,49.9326L 47.5942,51.1902L 44.4281,57L 39.5143,57L 45.3482,48L 40.0286,39L 45.0388,39L 47.6504,44.396C 47.854,44.8246 48.0362,45.3308 48.1969,45.9147L 48.2491,45.9147L 48.8156,44.3478L 51.6924,39L 56.2286,39L 50.8406,47.9237L 56.4857,57 Z M 43.8545,22.0001L 34.9326,40L 34.9326,50L 29.2678,50L 29.2678,40L 20.8178,22.0001L 27.6215,22.0001L 31.8523,32.4438L 32.4542,34.7313L 32.5309,34.7313C 32.6922,33.7938 32.8869,33.0584 33.1151,32.525L 37.5466,22.0001L 43.8545,22.0001 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_z_letter" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="30.9429" Height="38" Canvas.Left="22.6286" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 53.5714,57L 22.6286,57L 22.6286,51.987L 42.3496,26.0571L 24.2572,26.0571L 24.2572,19L 53.5714,19L 53.5714,23.8602L 34.2746,49.9428L 53.5714,49.9428L 53.5714,57 Z "/>
</Canvas>
<Canvas x:Key="appbar_axis_z" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="41.9167" Canvas.Left="19" Canvas.Top="15.0833" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,38L 51.416,38C 52.1876,36.2341 53.9497,35 56,35C 58.7614,35 61,37.2386 61,40C 61,42.7614 58.7614,45 56,45C 53.9497,45 52.1876,43.7659 51.416,42L 36.8284,42L 28.6556,50.1728C 28.8779,50.7388 29,51.3551 29,52C 29,54.7614 26.7614,57 24,57C 21.2386,57 19,54.7614 19,52C 19,49.2386 21.2386,47 24,47C 24.6449,47 25.2612,47.1221 25.8272,47.3444L 34,39.1716L 34,22.4583L 28,28.0833L 28,22.5833L 36,15.0833L 44,22.5833L 44,28.0833L 38,22.4583L 38,38 Z "/>
</Canvas>
<Canvas x:Key="appbar_baby" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="31.6666" Height="44.3333" Canvas.Left="22.1667" Canvas.Top="15.8333" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,15.8333C 41.4978,15.8333 44.3333,18.6689 44.3333,22.1667C 44.3333,25.6645 41.4978,28.5 38,28.5L 42.75,28.5L 43.5417,28.5L 52.25,38L 52.1482,38.1018C 53.1234,38.3974 53.8333,39.3033 53.8333,40.375C 53.8333,41.6867 52.77,42.75 51.4583,42.75C 50.3866,42.75 49.4807,42.0401 49.1851,41.0649L 49.0833,41.1667L 43.6548,35.7381L 44.3333,41.1667L 31.6667,41.1667L 32.3452,35.7381L 26.9167,41.1667L 26.8149,41.0649C 26.5193,42.0401 25.6134,42.75 24.5417,42.75C 23.23,42.75 22.1667,41.6867 22.1667,40.375C 22.1667,39.3033 22.8765,38.3973 23.8518,38.1018L 23.75,38L 32.4583,28.5L 33.25,28.5L 38,28.5C 34.5022,28.5 31.6667,25.6645 31.6667,22.1667C 31.6667,18.6689 34.5022,15.8333 38,15.8333 Z M 45.125,57C 45.125,58.7489 43.7072,60.1667 41.9583,60.1667C 40.2094,60.1667 38.7917,58.7489 38.7917,57C 38.7917,55.4957 39.8406,54.2364 43.5417,51.4583L 39.1875,47.1042L 44.7291,42.75L 50.6666,50.6667L 45.125,57 Z M 30.875,57L 25.3333,50.6667L 31.2708,42.75L 36.8125,47.1042L 32.4583,51.4583C 36.1594,54.2364 37.2083,55.4957 37.2083,57C 37.2083,58.7489 35.7906,60.1667 34.0417,60.1667C 32.2928,60.1667 30.875,58.7489 30.875,57 Z "/>
</Canvas>
<Canvas x:Key="appbar_barcode" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 20.1875,19L 20.1875,57L 19,57L 19,19 Z M 22.1666,19L 23.75,19L 23.75,57L 22.1666,57L 22.1666,19 Z M 25.3333,19L 28.5,19L 28.5,57L 25.3333,57L 25.3333,19 Z M 30.0833,19L 31.6666,19L 31.6666,57L 30.0833,57L 30.0833,19 Z M 33.25,19L 34.0416,19L 34.0416,57L 33.25,57L 33.25,19 Z M 38,19L 42.75,19L 42.75,57L 38,57L 38,19 Z M 44.3333,19L 45.9166,19L 45.9166,57L 44.3333,57L 44.3333,19 Z M 50.6667,19L 53.8333,19L 53.8333,57L 50.6667,57L 50.6667,19 Z M 55.4167,19L 57,19L 57,57L 55.4167,57L 55.4167,19 Z M 47.5,19L 48.2917,19L 48.2917,57L 47.5,57L 47.5,19 Z "/>
</Canvas>
<Canvas x:Key="appbar_base_select" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="60" Height="60" Canvas.Left="8.00002" Canvas.Top="8" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,8C 39.9902,8 41.9352,8.19379 43.817,8.56355L 43.0384,11.4693C 41.4061,11.1612 39.7219,11 38,11L 37.6457,11.0023L 37.3836,8.0062L 38,8 Z M 66.4036,28.3187L 63.4978,29.0973C 62.8969,27.3761 62.1266,25.7343 61.2069,24.1919L 63.6707,22.4668C 64.7813,24.2982 65.7014,26.2581 66.4036,28.3187 Z M 55.0828,17.0902L 56.8079,14.6264C 58.4883,15.9803 60.0197,17.5117 61.3736,19.1921L 58.9098,20.9172C 57.765,19.5176 56.4824,18.235 55.0828,17.0902 Z M 46.9027,12.5022L 47.6813,9.59646C 49.742,10.2986 51.7018,11.2188 53.5333,12.3293L 51.8081,14.7931C 50.2657,13.8734 48.6239,13.1031 46.9027,12.5022 Z M 28.4302,12.7451L 27.1589,10.0187C 29.145,9.24866 31.2336,8.68398 33.3984,8.35073L 33.6606,11.3469C 31.8505,11.6393 30.1008,12.1117 28.4302,12.7451 Z M 20.3745,17.546L 18.248,15.4195C 19.866,14.0029 21.6377,12.7575 23.5347,11.7115L 24.806,14.4378C 23.2234,15.3259 21.7394,16.3688 20.3745,17.546 Z M 14.4378,24.806L 11.7114,23.5347C 12.7575,21.6377 14.003,19.866 15.4195,18.2479L 17.5461,20.3745C 16.3688,21.7394 15.3259,23.2234 14.4378,24.806 Z M 11.3469,33.6605L 8.35073,33.3984C 8.68398,31.2336 9.24866,29.145 10.0187,27.1589L 12.7451,28.4302C 12.1117,30.1008 11.6393,31.8505 11.3469,33.6605 Z M 11,38C 11,39.7219 11.1612,41.4061 11.4693,43.0384L 8.56356,43.8169C 8.19381,41.9351 8.00002,39.9902 8.00002,38L 8.00622,37.3835L 11.0023,37.6457L 11,38 Z M 68,38L 67.9938,38.6165L 64.9977,38.3544L 65,38C 65,36.2782 64.8388,34.594 64.5307,32.9617L 67.4364,32.1831C 67.8062,34.0649 68,36.0098 68,38 Z M 38,68C 36.0098,68 34.0649,67.8062 32.1831,67.4365L 32.9617,64.5308C 34.594,64.8388 36.2782,65 38,65L 38.3544,64.9977L 38.6165,67.9938L 38,68 Z M 9.59644,47.6813L 12.5022,46.9027C 13.1031,48.6239 13.8734,50.2657 14.7931,51.8081L 12.3293,53.5332C 11.2187,51.7018 10.2986,49.742 9.59644,47.6813 Z M 20.9172,58.9099L 19.1921,61.3736C 17.5117,60.0197 15.9803,58.4883 14.6264,56.8079L 17.0901,55.0828C 18.235,56.4824 19.5176,57.765 20.9172,58.9099 Z M 29.0974,63.4979L 28.3188,66.4036C 26.2581,65.7014 24.2983,64.7813 22.4668,63.6707L 24.1919,61.2069C 25.7343,62.1266 27.3761,62.8969 29.0974,63.4979 Z M 47.5698,63.255L 48.8411,65.9813C 46.855,66.7514 44.7665,67.316 42.6017,67.6493L 42.3395,64.6531C 44.1495,64.3607 45.8993,63.8883 47.5698,63.255 Z M 55.6256,58.4539L 57.7521,60.5805C 56.134,61.9971 54.3623,63.2425 52.4653,64.2886L 51.194,61.5622C 52.7766,60.6741 54.2606,59.6312 55.6256,58.4539 Z M 61.5622,51.194L 64.2885,52.4654C 63.2425,54.3624 61.9971,56.134 60.5805,57.752L 58.454,55.6255C 59.6312,54.2606 60.6741,52.7766 61.5622,51.194 Z M 64.6531,42.3395L 67.6493,42.6016C 67.316,44.7665 66.7513,46.855 65.9813,48.8412L 63.2549,47.5699C 63.8883,45.8993 64.3607,44.1495 64.6531,42.3395 Z "/>
</Canvas>
<Canvas x:Key="appbar_base" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="74.4167" Height="74.4167" Canvas.Left="0.791662" Canvas.Top="0.791664" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,0.791664C 58.5496,0.791664 75.2083,17.4504 75.2083,38C 75.2083,58.5496 58.5496,75.2083 38,75.2083C 17.4504,75.2083 0.791662,58.5496 0.791662,38C 0.791662,17.4504 17.4504,0.791664 38,0.791664 Z M 38,5.54166C 20.0738,5.54166 5.54167,20.0738 5.54167,38C 5.54167,55.9262 20.0738,70.4583 38,70.4583C 55.9262,70.4583 70.4583,55.9262 70.4583,38C 70.4583,20.0738 55.9262,5.54166 38,5.54166 Z "/>
</Canvas>
<Canvas x:Key="appbar_bath" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="41.1667" Height="22.9583" Canvas.Left="17.4167" Canvas.Top="26.125" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 17.4167,28.5L 19,28.5L 19,26.125L 21.375,26.9167L 21.375,28.5L 58.5833,28.5L 58.5833,32.4583L 17.4167,32.4583L 17.4167,28.5 Z M 19,33.25L 57,33.25C 57,35.3611 57,37.4722 55.4167,38.5938C 53.8333,39.7153 50.6667,39.8472 47.5,39.9792L 28.5,39.9792C 25.3333,39.8472 22.1667,39.7153 20.5833,38.5938C 19,37.4722 19,35.3611 19,33.25 Z M 19,49.0833C 19,46.4445 19.3958,43.8056 20.4514,42.4861C 21.5069,41.1667 24.8055,40.7709 26.9167,40.7709L 49.0833,40.7709C 51.1944,40.7709 54.493,41.1667 55.5486,42.4861C 56.6042,43.8056 57,46.4445 57,49.0833L 55.4167,49.0833C 55.4167,46.9722 55.0208,44.8611 53.9653,43.8056C 52.9097,42.75 49.6111,42.75 47.5,42.75L 28.5,42.75C 26.3889,42.75 23.0903,42.75 22.0347,43.8056C 20.9791,44.8611 20.5833,46.9722 20.5833,49.0833L 19,49.0833 Z "/>
</Canvas>
<Canvas x:Key="appbar_battery_0" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39" Height="20" Canvas.Left="20" Canvas.Top="28" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 59,34L 59,42L 56,42L 56,48L 20,48L 20,28L 56,28L 56,34L 59,34 Z M 24,32L 24,44L 52,44L 52,32L 24,32 Z "/>
</Canvas>
<Canvas x:Key="appbar_battery_1" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39" Height="20" Canvas.Left="20" Canvas.Top="28" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 59,34L 59,42L 56,42L 56,48L 20,48L 20,28L 56,28L 56,34L 59,34 Z M 24,32L 24,44L 52,44L 52,32L 24,32 Z M 25,43L 25,33L 30,33L 35,43L 25,43 Z "/>
</Canvas>
<Canvas x:Key="appbar_battery_2" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39" Height="20" Canvas.Left="20" Canvas.Top="28" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 59,34L 59,42L 56,42L 56,48L 20,48L 20,28L 56,28L 56,34L 59,34 Z M 24,32L 24,44L 52,44L 52,32L 24,32 Z M 25,43L 25,33L 30,33L 35,43L 25,43 Z M 31.5,33L 39.5,33L 44.5,43L 36.5,43L 31.5,33 Z "/>
</Canvas>
<Canvas x:Key="appbar_battery_3" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39" Height="20" Canvas.Left="20" Canvas.Top="28" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 59,34L 59,42L 56,42L 56,48L 20,48L 20,28L 56,28L 56,34L 59,34 Z M 24,32L 24,44L 52,44L 52,32L 24,32 Z M 25,43L 25,33L 30,33L 35,43L 25,43 Z M 31.5,33L 39.5,33L 44.5,43L 36.5,43L 31.5,33 Z M 51,33L 51,43L 46,43L 41,33L 51,33 Z "/>
</Canvas>
<Canvas x:Key="appbar_battery_charging" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39" Height="24" Canvas.Left="20" Canvas.Top="24" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 40,38L 40,48L 36,48L 36,38L 34,38C 32.3431,38 31,36.6569 31,35L 31,28L 34,28L 34,24L 37,24L 37,28L 39,28L 39,24L 42,24L 42,28L 45,28L 45,35C 45,36.6569 43.6568,38 42,38L 40,38 Z M 59,34L 59,42L 56,42L 56,48L 41,48L 41,44L 52,44L 52,32L 46,32L 46,28L 56,28L 56,34L 59,34 Z M 24,32L 24,44L 35,44L 35,48L 20,48L 20,28L 30,28L 30,32L 24,32 Z "/>
</Canvas>
<Canvas x:Key="appbar_bed" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="41.1667" Height="25.3333" Canvas.Left="17.4167" Canvas.Top="25.3333" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 17.4167,25.3333L 23.75,25.3333L 23.75,41.1667L 58.5833,41.1667L 58.5833,45.9167L 58.5833,50.6667L 53.8333,50.6667L 53.8333,45.9167L 23.75,45.9167L 23.75,50.6667L 17.4167,50.6667L 17.4167,25.3333 Z M 57,39.5833L 35.625,39.5833L 35.625,30.0834C 43.0139,30.0834 48.0278,30.0834 51.9861,31.6667C 55.9444,33.25 56.4722,36.4167 57,39.5833 Z M 25.3333,35.625L 31.6667,36.4167L 31.6667,39.5833L 25.3333,39.5833L 25.3333,35.625 Z M 28.5,28.5C 30.2489,28.5 31.6667,29.9178 31.6667,31.6667C 31.6667,33.4156 30.2489,34.8333 28.5,34.8333C 26.7511,34.8333 25.3333,33.4156 25.3333,31.6667C 25.3333,29.9178 26.7511,28.5 28.5,28.5 Z M 32.8542,30.0833L 34.8333,30.0833L 34.8333,39.5833L 32.8542,39.5833L 32.8542,30.0833 Z "/>
</Canvas>
<Canvas x:Key="appbar_beer_guinness" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="22.1667" Height="38" Canvas.Left="26.9167" Canvas.Top="20.5833" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 43.5416,56.2083L 44.3333,55.4167L 31.6667,55.4167L 32.4583,56.2083L 43.5416,56.2083 Z M 38,37.6042C 39.7489,37.6042 40.7708,36.2278 40.7708,34.0417C 40.7708,31.8555 39.7489,30.4792 38,30.4792C 36.2511,30.4792 35.2292,31.8555 35.2292,34.0417C 35.2292,36.2278 36.2511,37.6042 38,37.6042 Z M 38,25.3333L 45.9166,25.3334C 45.9166,23.75 44.7291,22.1667 44.7291,22.1667L 38,22.1667L 31.2708,22.1667C 31.2708,22.1667 30.0833,23.75 30.0833,25.3334L 38,25.3333 Z M 38,20.5833L 47.5,20.5833C 49.0833,23.75 49.0833,28.5 49.0833,30.0833C 49.0833,42.75 45.9167,42.75 45.5208,49.0833L 45.9167,57C 45.9167,58.5833 44.3333,58.5833 44.3333,58.5833L 31.6667,58.5833C 31.6667,58.5833 30.0833,58.5833 30.0833,57L 30.4792,49.0833C 30.0833,42.75 26.9167,42.75 26.9167,30.0833C 26.9167,28.5 26.9167,23.75 28.5,20.5833L 38,20.5833 Z M 45.125,33.25L 43.5417,33.25C 43.1044,33.25 42.3542,33.6044 42.3542,34.0417C 42.3542,34.4789 43.1044,34.8333 43.5417,34.8333L 45.125,34.8333C 45.5622,34.8333 45.9167,34.4789 45.9167,34.0417C 45.9167,33.6044 45.5622,33.25 45.125,33.25 Z M 30.875,33.25C 30.4378,33.25 30.0833,33.6044 30.0833,34.0417C 30.0833,34.4789 30.4378,34.8333 30.875,34.8333L 32.4583,34.8333C 32.8956,34.8333 33.6458,34.4789 33.6458,34.0417C 33.6458,33.6044 32.8956,33.25 32.4583,33.25L 30.875,33.25 Z "/>
</Canvas>
<Canvas x:Key="appbar_beer" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="44.175" Canvas.Left="19" Canvas.Top="14.825" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 24,20L 49,20L 49.0833,26.9167C 53.4556,26.9167 57,30.4611 57,34.8334L 57,42.75C 57,47.1223 53.4556,50.6667 49.0833,50.6667L 49,59L 24,59L 24,20 Z M 49,46C 50.7489,46 53,43.7489 53,42L 53,36C 53,34.2511 50.7489,31 49,31L 49,46 Z M 27,23L 27,25L 46,25L 46,23L 27,23 Z M 46,56L 46,54L 27,54L 27,56L 46,56 Z M 30.5,28C 29.6256,28 29,29.1255 29,30L 29,49C 29,49.8745 29.6255,51 30.5,51C 31.3744,51 32,49.8745 32,49L 32,30C 32,29.1255 31.3745,28 30.5,28 Z M 36.5,28C 35.6256,28 35,29.1255 35,30L 35,49C 35,49.8745 35.6255,51 36.5,51C 37.3744,51 38,49.9578 38,49.0833L 38,30C 38,29.1255 37.3745,28 36.5,28 Z M 42.5,28C 41.6255,28 41,29.1255 41,30L 41,49C 41,49.8745 41.6255,51 42.5,51C 43.3745,51 44,49.8745 44,49L 44,30C 44,29.1255 43.3744,28 42.5,28 Z M 23.75,17.2292C 25,17 31.6667,13.6667 33.25,15.25C 34.8333,16.8333 36.4167,16.8333 38,16.8333C 39.5833,16.8333 41.1667,15.25 44.3333,15.25C 45.9167,15.25 49.0833,16.0417 49.0833,17.625C 49,21 47.8958,18.8125 47.8958,18.8125C 47.8958,18.8125 47.1041,17.2292 43.9375,17.2292C 40.7708,17.2292 39.5833,18.8125 38,18.8125C 36.4167,18.8125 33.6458,17.2292 30.4792,17.2292C 27.3125,17.2292 26.875,18.8334 24.9375,18.4167C 23,18 21,20 21.7708,21.9792C 23,24 22.1666,25.2817 22.1667,27.5209C 22.1667,27.9167 21.75,27.875 21.375,25.9375C 21,24 19,23.1667 19,21.5833C 19,20 19.1667,19.8333 20.5833,18.4167C 22,17 22.5,17.4584 23.75,17.2292 Z "/>
</Canvas>
<Canvas x:Key="appbar_bike_parking" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="44" Canvas.Left="19" Canvas.Top="15" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 26,45C 27.0445,45 28.0356,45.2288 28.9259,45.639L 33,38L 31,38L 31,36L 37,36L 37,38L 35,38L 33.4,41L 43.4615,41L 44,40L 41,40L 41,38L 47,38L 47,40L 46,40L 44.6538,42.5L 45,42.5L 46.8543,45.745C 47.8,45.2684 48.8686,45 50,45C 53.866,45 57,48.134 57,52C 57,55.866 53.866,59 50,59C 46.4735,59 43.5561,56.3923 43.0709,53L 39,53L 38,53L 37,53L 31.9231,43.7692L 30.4259,46.5765C 31.997,47.8601 33,49.8129 33,52C 33,55.866 29.866,59 26,59C 22.134,59 19,55.866 19,52C 19,48.134 22.134,45 26,45 Z M 40.0769,51L 43.0708,51C 43.3144,49.2974 44.1706,47.7925 45.4089,46.7157L 43.8515,43.9901L 40.0769,51 Z M 42.3846,43L 33.5,43L 37.9894,51.1626L 42.3846,43 Z M 26,47C 23.2385,47 21,49.2386 21,52C 21,54.7615 23.2385,57 26,57C 28.7614,57 31,54.7615 31,52C 31,50.5808 30.4086,49.2996 29.4589,48.3895L 27,53L 25,53L 27.9822,47.4084C 27.3744,47.1456 26.7042,47 26,47 Z M 49.9999,47C 49.2298,47 48.5003,47.1742 47.8487,47.4852L 51,53L 50.5,53L 49,53L 45.1,53C 45.5632,55.2823 47.581,57 49.9999,57C 52.7614,57 54.9999,54.7615 54.9999,52C 54.9999,49.2386 52.7614,47 49.9999,47 Z M 45.1,51L 47.8571,51L 46.4288,48.5005C 45.7671,49.1756 45.2953,50.0376 45.1,51 Z M 36.82,26.68L 36.82,31L 33.94,31L 33.94,18.4L 38.3725,18.4C 41.5375,18.4 43.12,19.7416 43.12,22.4247C 43.12,23.6941 42.6695,24.7206 41.7686,25.5044C 40.8676,26.2881 39.6644,26.68 38.1587,26.68L 36.82,26.68 Z M 36.82,20.56L 36.82,24.52L 37.8887,24.52C 39.3362,24.52 40.06,23.8525 40.06,22.5175C 40.06,21.2125 39.3362,20.56 37.8887,20.56L 36.82,20.56 Z M 30,15L 46,15C 47.6568,15 49,16.3432 49,18L 49,31C 49,32.6569 47.6568,34 46,34L 30,34C 28.3431,34 27,32.6569 27,31L 27,18C 27,16.3432 28.3431,15 30,15 Z M 30,17.0001C 29.4477,17.0001 29,17.4478 29,18.0001L 29,31.0001C 29,31.5523 29.4477,32.0001 30,32.0001L 45.9999,32.0001C 46.5522,32.0001 46.9999,31.5523 46.9999,31.0001L 46.9999,18.0001C 46.9999,17.4478 46.5522,17.0001 45.9999,17.0001L 30,17.0001 Z "/>
</Canvas>
<Canvas x:Key="appbar_bike" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="23" Canvas.Left="19" Canvas.Top="27" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 26,36C 27.0445,36 28.0356,36.2288 28.9259,36.639L 33,29L 31,29L 31,27L 37,27L 37,29L 35,29L 33.4,32L 43.4615,32L 44,31L 41,31L 41,29L 47,29L 47,31L 46,31L 44.6538,33.5L 45,33.5L 46.8543,36.745C 47.8,36.2684 48.8686,36 50,36C 53.866,36 57,39.134 57,43C 57,46.866 53.866,50 50,50C 46.4735,50 43.5561,47.3923 43.0709,44L 39,44L 38,44L 37,44L 31.9231,34.7692L 30.4259,37.5765C 31.997,38.8601 33,40.8129 33,43C 33,46.866 29.866,50 26,50C 22.134,50 19,46.866 19,43C 19,39.134 22.134,36 26,36 Z M 40.0769,42L 43.0709,42C 43.3144,40.2974 44.1706,38.7925 45.409,37.7157L 43.8515,34.9901L 40.0769,42 Z M 42.3846,34L 33.5,34L 37.9894,42.1626L 42.3846,34 Z M 26,38C 23.2386,38 21,40.2386 21,43C 21,45.7615 23.2386,48 26,48C 28.7614,48 31,45.7615 31,43C 31,41.5808 30.4086,40.2996 29.4589,39.3895L 27,44L 25,44L 27.9822,38.4083C 27.3744,38.1456 26.7042,38 26,38 Z M 50,38C 49.2298,38 48.5003,38.1742 47.8487,38.4852L 51,44L 50.5,44L 49,44L 45.1,44C 45.5632,46.2823 47.581,48 50,48C 52.7614,48 55,45.7614 55,43C 55,40.2386 52.7614,38 50,38 Z M 45.1,42L 47.8571,42L 46.4288,39.5005C 45.7671,40.1756 45.2953,41.0376 45.1,42 Z "/>
</Canvas>
<Canvas x:Key="appbar_billboard" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,43L 22,43L 22,42L 19,42L 19,19L 57,19L 57,42L 54,42L 54,43L 57,43L 57,46L 40,46L 40,57L 36,57L 36,46L 19,46L 19,43 Z M 48,42L 48,43L 51,43L 51,42L 48,42 Z M 42,42L 42,43L 45,43L 45,42L 42,42 Z M 37,42L 37,43L 39,43L 39,42L 37,42 Z M 31,42L 31,43L 34,43L 34,42L 31,42 Z M 25,42L 25,43L 28,43L 28,42L 25,42 Z M 20,20.0001L 20,41L 55.9999,41L 55.9999,20.0001L 20,20.0001 Z M 21,21.0001L 54.9999,21.0001L 54.9999,40L 21,40L 21,21.0001 Z M 48,57L 45.625,57C 45.625,55.4167 44.8333,52.25 44.8333,52.25C 44.8333,52.25 46.4167,52.25 48,57 Z M 29,57C 30.5833,52.25 32.1667,52.25 32.1667,52.25C 32.1667,52.25 30.5833,55.4167 30.5833,57L 29,57 Z M 49.5833,57C 51.1667,52.25 52.75,52.25 52.75,52.25C 52.75,52.25 51.1667,55.4167 51.1667,57L 49.5833,57 Z M 27.1667,57L 24.7916,57C 24.7916,55.4167 24,52.25 24,52.25C 24,52.25 25.5833,52.25 27.1667,57 Z "/>
</Canvas>
<Canvas x:Key="appbar_billing" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="20" Height="20" Canvas.Left="38" Canvas.Top="18" Stretch="Fill" Fill="#9A000000" Data="F1 M 58,38C 58,26.9543 49.0457,18 38,18L 38,24C 45.732,24 52,30.268 52,38L 58,38 Z "/>
<Path Width="10.1005" Height="14.1421" Canvas.Left="47.8995" Canvas.Top="38" Stretch="Fill" Fill="#4D000000" Data="F1 M 58,38L 52,38C 52,41.866 50.433,45.366 47.8995,47.8995L 52.1421,52.1421C 55.7614,48.5229 58,43.5229 58,38 Z "/>
<Path Width="34.1421" Height="40" Canvas.Left="18" Canvas.Top="18" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 47.8995,47.8995L 52.1421,52.1421C 48.5229,55.7614 43.5228,58 38,58C 26.9543,58 18,49.0457 18,38C 18,26.9543 26.9543,18 38,18L 38,24C 30.268,24 24,30.268 24,38C 24,45.732 30.268,52 38,52C 41.866,52 45.366,50.433 47.8995,47.8995 Z M 38.92,46.1787L 38.92,48.65L 37.24,48.65L 37.24,46.25C 35.6075,46.2425 34.0875,45.8838 32.68,45.1738L 32.68,41.93C 33.1475,42.325 33.8431,42.6913 34.7669,43.0288C 35.6906,43.3663 36.515,43.56 37.24,43.61L 37.24,39.1813C 35.39,38.5038 34.1275,37.7688 33.4525,36.9763C 32.7775,36.1838 32.44,35.2188 32.44,34.0813C 32.44,32.8563 32.8787,31.8131 33.7562,30.9519C 34.6337,30.0906 35.795,29.59 37.24,29.45L 37.24,27.29L 38.92,27.29L 38.92,29.4013C 40.5275,29.4788 41.7275,29.74 42.52,30.185L 42.52,33.29C 41.4525,32.635 40.2525,32.235 38.92,32.09L 38.92,36.6613C 40.6325,37.2738 41.8606,37.9744 42.6044,38.7631C 43.3481,39.5519 43.72,40.505 43.72,41.6225C 43.72,42.9125 43.3056,43.9519 42.4769,44.7406C 41.6481,45.5294 40.4625,46.0088 38.92,46.1787 Z M 37.24,35.9713L 37.24,32.1388C 36.12,32.3413 35.56,32.925 35.56,33.89C 35.56,34.7225 36.12,35.4163 37.24,35.9713 Z M 38.92,39.8525L 38.92,43.565C 40.04,43.385 40.6,42.8013 40.6,41.8138C 40.6,41.0138 40.04,40.36 38.92,39.8525 Z "/>
</Canvas>
<Canvas x:Key="appbar_bing" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="30" Height="38" Canvas.Left="23" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 23,51L 43.75,39.75L 38,37L 34.5,29L 53,35L 53,44L 31.5,57L 23,51L 23,19L 32,22L 32,43L 23,51 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_contact" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="32" Height="38" Canvas.Left="22" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 22,19L 24,19L 24,57L 22,57L 22,19 Z M 26,57L 26,19L 54,19L 54,57L 26,57 Z M 48.0754,44.4314L 45.626,41.0237C 45.5021,40.8563 45.3454,40.7372 45.1559,40.6665C 44.9665,40.5959 44.778,40.5805 44.5905,40.6204L 44.2039,40.793L 42.6702,41.9363L 42.2196,42.1419C 41.993,42.1901 41.771,42.177 41.5538,42.1025C 41.3366,42.0281 41.1474,41.8799 40.986,41.6579L 36.8403,35.8777L 36.6362,35.4042C 36.5872,35.1734 36.6012,34.9454 36.6782,34.7201C 36.7552,34.4948 36.8951,34.3068 37.0978,34.156L 38.6316,33.0129C 38.8011,32.8884 38.9194,32.7302 38.9863,32.5383C 39.0531,32.3464 39.0654,32.1506 39.0229,31.9507L 38.8496,31.5611L 36.3977,28.1571C 36.2755,27.9872 36.1206,27.8666 35.9332,27.7955C 35.7458,27.7245 35.5563,27.7093 35.3647,27.75L 34.9751,27.9233L 34.1999,28.5016C 33.7232,28.8527 33.3321,29.2594 33.0265,29.7217C 32.7209,30.184 32.4937,30.683 32.3448,31.2186C 32.1959,31.7542 32.1203,32.3152 32.1178,32.9015C 32.1154,33.4878 32.1785,34.0839 32.3073,34.6897L 32.7064,36.0732L 33.3233,37.4329L 33.7336,38.3148L 34.3565,39.3987L 35.3612,40.8958L 36.5256,42.4299L 37.5121,43.598L 38.452,44.6C 38.9269,45.1322 39.4357,45.5981 39.9782,45.9975C 40.5208,46.3969 41.0788,46.7171 41.6523,46.9581C 42.2258,47.1991 42.8059,47.3547 43.3926,47.4249C 43.9793,47.4951 44.5529,47.4706 45.1134,47.3515L 46.125,47.0266L 47.0749,46.4726L 47.8598,45.8793C 48.0264,45.7513 48.1434,45.5923 48.2107,45.4025C 48.2781,45.2127 48.2912,45.0209 48.25,44.8272L 48.0754,44.4314 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_open_writing" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="33.7913" Canvas.Left="17" Canvas.Top="24" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 22,46.9996C 26.4235,48.3026 34.4825,48.8053 37.2083,52.2153L 37.2083,32.9996C 34.4826,29.5896 26.4235,29.0869 22,27.7839L 22,46.9996 Z M 22,24.3078L 22,24.028C 26.4235,25.331 34.4825,25.8337 37.2083,29.2437L 38,29.4716L 38.7917,29.2157C 41.5174,25.8057 49.5765,25.303 54,24L 54,24.2798C 55.2286,24.6498 56,24.9716 56,24.9716L 56,27.9716L 59,26.8258L 59,50.9716C 59,50.9716 41.1667,52.2216 38,57.7633L 37.9999,57.7913C 34.8333,52.2496 17,50.9996 17,50.9996L 17,26.8538L 20,27.9996L 20,24.9996C 20,24.9996 20.7714,24.6778 22,24.3078 Z M 23.5,44.506L 23.5,41.3844C 27.269,42.243 32.4604,42.8187 35.5,44.7496L 35.5,47.8712C 32.4604,45.9402 27.269,45.3646 23.5,44.506 Z M 23.5,39.1212L 23.5,35.9996C 27.269,36.8582 32.4604,37.4338 35.5,39.3648L 35.5,42.4864C 32.4604,40.5554 27.269,39.9798 23.5,39.1212 Z M 23.5,33.6344L 23.5,30.5128C 27.269,31.3714 32.4604,31.947 35.5,33.878L 35.5,36.9996C 32.4604,35.0686 27.269,34.493 23.5,33.6344 Z M 54,46.9716L 54,27.7559C 49.5765,29.0589 41.5174,29.5616 38.7917,32.9716L 38.7917,52.1873C 41.5175,48.7773 49.5765,48.2746 54,46.9716 Z M 52.5,44.478C 48.731,45.3366 43.5395,45.9122 40.5,47.8432L 40.5,44.7216C 43.5395,42.7906 48.731,42.215 52.5,41.3564L 52.5,44.478 Z M 52.5,39.0932C 48.731,39.9518 43.5395,40.5274 40.5,42.4584L 40.5,39.3368C 43.5396,37.4058 48.731,36.8302 52.5,35.9716L 52.5,39.0932 Z M 52.5,33.6064C 48.731,34.465 43.5395,35.0406 40.5,36.9716L 40.5,33.85C 43.5395,31.919 48.731,31.3434 52.5,30.4848L 52.5,33.6064 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_open_hardcover" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="41.1667" Height="34.4989" Canvas.Left="17.4166" Canvas.Top="23.2928" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,29.6875C 41.1667,19 55.4167,24.9375 55.4167,24.9375L 55.4166,26.9167L 55.4166,28.0757L 58.5833,27.3126L 58.5832,51.4584C 58.5832,51.4584 41.1666,52.25 38,57.7917C 34.8333,52.25 17.4166,51.4584 17.4166,51.4584L 17.4166,27.3125L 20.5833,28.0756L 20.5833,26.9167L 20.5833,24.9376C 20.5833,24.9376 34.8333,19 38,29.6875 Z M 53.8332,47.1254L 53.8333,27.3621C 49.0833,26.9167 44.3333,23.75 38.7917,31.3362L 38.7916,52.2157C 41.5173,48.8057 49.4097,48.4284 53.8332,47.1254 Z M 22.1666,27.3621L 22.1666,47.1254C 26.5901,48.4284 34.4825,48.8057 37.2083,52.2157L 37.2083,31.3362C 31.6667,23.75 26.9167,26.9167 22.1666,27.3621 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_list" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="31.9999" Height="38" Canvas.Left="22" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 22,19L 24,19L 24,57L 22,57L 22,19 Z M 26,57L 26,19.0001L 53.9999,19.0001L 53.9999,57L 26,57 Z M 30,24L 30,27L 50,27L 50,24L 30,24 Z M 30,32L 30,35L 33,35L 33,32L 30,32 Z M 36,32L 36,35L 49,35L 49,32L 36,32 Z M 30,40L 30,43L 33,43L 33,40L 30,40 Z M 36,40L 36,43L 48,43L 48,40L 36,40 Z M 30,48L 30,51L 33,51L 33,48L 30,48 Z M 36,48L 36,51L 50,51L 50,48L 36,48 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_open_information" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="39" Height="31" Canvas.Left="18" Canvas.Top="25" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 24,44C 27.3137,44 30,46.6863 30,50C 30,53.3137 27.3137,56 24,56C 20.6863,56 18,53.3137 18,50C 18,46.6863 20.6863,44 24,44 Z M 23,46L 23,48L 25,48L 25,46L 23,46 Z M 23,49L 23,54L 25,54L 25,49L 23,49 Z M 57,25L 57,51L 45.5,51C 42.8572,51 41,54 41,54L 35,54C 35,54 33.7748,52.0208 31.8985,51.2776L 32,50C 32,49.3407 31.9202,48.7001 31.7699,48.0872C 32.5343,48.2864 33.7671,48.9007 35,50.75L 35,29.652C 34.3526,28.8549 33.5338,28 33,28L 22,28L 22,42.252C 20.888,42.5382 19.8696,43.0575 19,43.7546L 19,25L 34.5,25C 34.5,25 35.9205,25.7102 37.4765,27.3448C 39.3408,25 41.25,25 41.25,25L 57,25 Z M 41,50.75C 43,47.75 45,48 45,48L 54,48L 54,28L 43,28C 42.4662,28 41.6474,28.8549 41,29.652L 41,50.75 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_open_text_image" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="31" Canvas.Left="19" Canvas.Top="24" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 57,24L 57,52L 45.5,52C 42.8571,52 41,55 41,55L 35,55C 35,55 33.1428,52 30.5,52L 19,52L 19,24L 34.5,24C 34.5,24 35.9205,24.7103 37.4765,26.3449C 39.3408,24 41.25,24 41.25,24L 57,24 Z M 34.9999,28.6521C 34.3525,27.855 33.5338,27.0001 32.9999,27.0001L 21.9999,27.0001L 21.9999,49.0001L 30.9999,49.0001C 30.9999,49.0001 32.9999,48.7501 34.9999,51.7501L 34.9999,28.6521 Z M 40.9999,51.7501C 42.9999,48.7501 44.9998,49.0001 44.9999,49.0001L 53.9998,49.0001L 53.9999,27.0002L 42.9998,27.0002C 42.4661,27.0002 41.6473,27.8551 40.9999,28.6521L 40.9999,51.7501 Z M 29,29.0001L 33,29.0001L 33,32.0001L 29,32.0001L 29,29.0001 Z M 29,34L 33,34L 33,37L 29,37L 29,34 Z M 23,39L 33,39L 33,42L 23,42L 23,39 Z M 23,44L 33,44L 33,47L 23,47L 23,44 Z M 43,29L 53,29L 53,32L 43,32L 43,29 Z M 43,34L 47,34L 47,37L 43,37L 43,34 Z M 43,39L 47,39L 47,42L 43,42L 43,39 Z M 43,44L 53,44L 53,47L 43,47L 43,44 Z M 23,29L 28,29L 28,37L 23,37L 23,29 Z M 48,34L 53,34L 53,42L 48,42L 48,34 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_open_text" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="29" Canvas.Left="19" Canvas.Top="25" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 57,25L 57,51L 45.5,51C 42.8572,51 41,54 41,54L 35,54C 35,54 33.1428,51 30.5,51L 19,51L 19,25L 34.5,25C 34.5,25 35.9205,25.7102 37.4765,27.3448C 39.3408,25 41.25,25 41.25,25L 57,25 Z M 35,29.652C 34.3526,28.8549 33.5338,28 33,28L 22,28L 22,48L 31,48C 31,48 33,47.75 35,50.75L 35,29.652 Z M 41,50.75C 43,47.75 45,48 45,48L 54,48L 54,28L 43,28C 42.4662,28 41.6474,28.8549 41,29.652L 41,50.75 Z M 52,30L 52,33L 43,33L 43,30L 52,30 Z M 52,35L 52,38L 43,38L 43,35L 52,35 Z M 52,40L 52,46L 43,46L 43,40L 52,40 Z M 33,30L 33,36L 24,36L 24,30L 33,30 Z M 33,38L 33,41L 24,41L 24,38L 33,38 Z M 33,43L 33,46L 24,46L 24,43L 33,43 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_open" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="29" Canvas.Left="19" Canvas.Top="25" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 57,25L 57,51L 45.5,51C 42.8572,51 41,54 41,54L 35,54C 35,54 33.1428,51 30.5,51L 19,51L 19,25L 34.5,25C 34.5,25 35.9205,25.7102 37.4765,27.3448C 39.3408,25 41.25,25 41.25,25L 57,25 Z M 35,29.652C 34.3526,28.8549 33.5338,28 33,28L 22,28L 22,48L 31,48C 31,48 33,47.75 35,50.75L 35,29.652 Z M 41,50.75C 43,47.75 45,48 45,48L 54,48L 54,28L 43,28C 42.4662,28 41.6474,28.8549 41,29.652L 41,50.75 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_perspective_help" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="26" Height="38" Canvas.Left="25" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 25,27L 46,19L 46,22.25L 28.5,29L 31.75,31.25L 51,23.75L 51,48.5L 31.75,57L 25,52L 25,27 Z M 41.8929,46.0327C 40.9009,46.4197 40.0967,47.5376 40.0967,48.5296C 40.0967,49.5216 40.9009,50.0121 41.8929,49.6251C 42.8849,49.2381 43.6891,48.1202 43.6891,47.1282C 43.6891,46.1361 42.8849,45.6457 41.8929,46.0327 Z M 42.2521,31.5228C 39.0777,32.7612 36.5042,36.1777 36.5042,39.1538L 36.5042,39.8723L 40.0967,38.4708L 40.0967,37.3931C 40.0967,36.2027 41.0617,34.8612 42.2521,34.3968C 43.4425,33.9324 44.4076,34.5209 44.4076,35.7113C 44.4076,36.2305 44.4076,36.4298 42.9706,38.4274C 42.2521,39.4262 40.0967,41.7753 40.0967,44.2187L 40.0967,45.2964L 43.6891,43.895L 43.6891,42.458C 43.6891,41.2676 44.4076,40.0223 45.8445,38.7432C 47.2815,37.4641 48,35.3876 48,34.3099C 48,31.3338 45.4266,30.2844 42.2521,31.5228 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_perspective" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="26" Height="38" Canvas.Left="25" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 25,27L 46,19L 46,22.25L 28.5,29L 31.75,31.25L 51,23.75L 51,48.5L 31.75,57L 25,52L 25,27 Z "/>
</Canvas>
<Canvas x:Key="appbar_book_side" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="11.0833" Height="22.1667" Canvas.Left="15.8333" Canvas.Top="26.9167" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 26.9167,26.9167C 20.7955,26.9167 15.8333,31.8788 15.8333,38C 15.8333,44.1212 20.7955,49.0833 26.9167,49.0833L 26.9167,26.9167 Z "/>
<Path Width="47.5" Height="31.6667" Canvas.Left="14.25" Canvas.Top="22.1667" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 23.75,36.4167L 61.75,36.4167L 61.75,39.5833L 23.75,39.5833L 23.75,36.4167 Z M 28.5,30.0833L 61.75,30.0833L 61.75,33.25L 28.5,33.25L 28.5,30.0833 Z M 28.5,42.75L 61.75,42.75L 61.75,45.9167L 28.5,45.9167L 28.5,42.75 Z M 30.0833,49.0833L 61.75,49.0833L 61.75,53.8333L 30.0833,53.8333C 21.3388,53.8333 14.25,46.7445 14.25,38C 14.25,29.2555 21.3388,22.1667 30.0833,22.1667L 61.75,22.1667L 61.75,26.9167L 30.0833,26.9167C 23.9622,26.9167 19,31.8789 19,38C 19,44.1212 23.9622,49.0833 30.0833,49.0833 Z "/>
</Canvas>
<Canvas x:Key="appbar_book" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="32" Height="38" Canvas.Left="22" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 22,19L 24,19L 24,57L 22,57L 22,19 Z M 26,57L 26,19L 54,19L 54,57L 26,57 Z M 30,28L 30,31L 50,31L 50,28L 30,28 Z M 34,34L 34,37L 46,37L 46,34L 34,34 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_all" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 57,19L 57,57L 19,57L 19,19 Z M 22,22L 22,37L 37,37L 37,22L 22,22 Z M 54,37L 54,22L 39,22L 39,37L 54,37 Z M 22,54L 37,54L 37,39L 22,39L 22,54 Z M 54,54L 54,39L 39,39L 39,54L 54,54 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_bottom" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 22,19L 22,22L 19,22L 19,19 Z M 22,28L 19,28L 19,25L 22,25L 22,28 Z M 22,34L 19,34L 19,31L 22,31L 22,34 Z M 22.9999,37.0001L 22.9999,39.0001L 19,39L 19,37L 22.9999,37.0001 Z M 39,19.0001L 39,23.0001L 37,23.0001L 37,19.0001L 39,19.0001 Z M 31,22L 31,19.0001L 34,19.0001L 34,22L 31,22 Z M 25,22.0001L 25,19.0001L 28,19.0001L 28,22L 25,22.0001 Z M 56.9999,19.0001L 57,22L 54,22L 53.9999,19.0001L 56.9999,19.0001 Z M 57,28L 54,28L 54,25L 57,25L 57,28 Z M 57,34L 54,34L 54,31L 57,31L 57,34 Z M 56.9999,57L 19,57L 19,54L 36.9999,54.0001L 37,53L 39,53L 38.9999,54.0001L 57,54L 56.9999,57 Z M 52.9999,39.0001L 52.9999,37.0001L 57,37L 57,39L 52.9999,39.0001 Z M 57,45L 54,45L 54,42L 57,42L 57,45 Z M 57,51L 54,51L 54,48L 57,48L 57,51 Z M 47.9999,22.0001L 47.9999,19.0001L 50.9999,19.0001L 50.9999,22.0001L 47.9999,22.0001 Z M 42,22.0001L 42,19.0001L 44.9999,19.0001L 44.9999,22.0001L 42,22.0001 Z M 21.9999,45L 19,45L 19,42L 21.9999,42L 21.9999,45 Z M 22,51L 19,51L 19,48L 21.9999,48L 22,51 Z M 36.9999,37.0001L 38.9999,37.0001L 39,39L 36.9999,39.0001L 36.9999,37.0001 Z M 39,43L 37,43L 37,41L 39,41L 39,43 Z M 38.9999,47L 37,47L 37,45L 39,45L 38.9999,47 Z M 38.9999,51.0001L 36.9999,51.0001L 37,49L 38.9999,49L 38.9999,51.0001 Z M 38.9999,27.0001L 36.9999,27.0001L 36.9999,25.0001L 38.9999,25.0001L 38.9999,27.0001 Z M 38.9999,31.0001L 36.9999,31.0001L 36.9999,29.0001L 38.9999,29.0001L 38.9999,31.0001 Z M 38.9999,35.0001L 36.9999,35.0001L 36.9999,33.0001L 38.9999,33.0001L 38.9999,35.0001 Z M 26.9999,37.0001L 26.9999,39.0001L 24.9999,39.0001L 24.9999,37.0001L 26.9999,37.0001 Z M 30.9999,37.0001L 30.9999,39.0001L 28.9999,39.0001L 28.9999,37.0001L 30.9999,37.0001 Z M 34.9999,37.0001L 34.9999,39.0001L 32.9999,39.0001L 32.9999,37.0001L 34.9999,37.0001 Z M 48.9998,39.0001L 48.9998,37.0001L 50.9999,37.0001L 50.9999,39.0001L 48.9998,39.0001 Z M 42.9999,37.0001L 42.9999,39.0001L 40.9999,39.0001L 40.9999,37.0001L 42.9999,37.0001 Z M 46.9998,37.0001L 46.9998,39.0001L 44.9999,39.0001L 44.9999,37.0001L 46.9998,37.0001 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_horizontal" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 57,19L 57,57L 19,57L 19,19 Z M 22,22.0001L 22,37L 53.9999,37L 53.9999,22.0001L 39,22L 39,23L 37,23L 37,22L 22,22.0001 Z M 39,27L 37,27L 37,25L 39,25L 39,27 Z M 39,31L 37,31L 37,29L 39,29L 39,31 Z M 39,35L 37,35L 37,33L 39,33L 39,35 Z M 22,54L 37,54L 37,53L 39,53L 39,54L 53.9999,54L 53.9999,39L 22,39L 22,54 Z M 39,43L 37,43L 37,41L 39,41L 39,43 Z M 39,47L 37,47L 37,45L 39,45L 39,47 Z M 39,51L 37,51L 37,49L 39,49L 39,51 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_inner" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 22,19L 22,22L 19,22L 19,19 Z M 22,28L 19,28L 19,25L 22,25L 22,28 Z M 22,34L 19,34L 19,31L 22,31L 22,34 Z M 36.9999,37.0001L 37,19.0001L 39,19.0001L 38.9999,37.0001L 57,37L 57,39L 39,39L 39,57L 37,57L 37,39L 19,39L 19,37L 36.9999,37.0001 Z M 57,45L 54,45L 54,42L 57,42L 57,45 Z M 57,51L 54,51L 54,48L 57,48L 57,51 Z M 56.9999,57L 54,57L 53.9999,54L 57,54L 56.9999,57 Z M 53.9999,19.0001L 56.9999,19.0001L 57,22L 54,22L 53.9999,19.0001 Z M 57,28L 54,28L 54,25L 57,25L 57,28 Z M 57,34L 54,34L 54,31L 57,31L 57,34 Z M 31,22L 31,19L 34,19.0001L 34,22L 31,22 Z M 25,22.0001L 25,19.0001L 28,19.0001L 28,22.0001L 25,22.0001 Z M 47.9999,22.0001L 47.9999,19.0001L 50.9999,19.0001L 50.9999,22.0001L 47.9999,22.0001 Z M 42,22.0001L 42,19.0001L 44.9999,19.0001L 44.9999,22.0001L 42,22.0001 Z M 21.9999,45L 19,45L 19,42L 21.9999,42L 21.9999,45 Z M 22,51.0001L 19,51.0001L 19,48L 21.9999,48L 22,51.0001 Z M 21.9999,54.0001L 22,57L 19,57L 19,54L 21.9999,54.0001 Z M 30.9999,57L 30.9999,54.0001L 34,54.0001L 34,57L 30.9999,57 Z M 24.9999,57L 24.9999,54.0001L 28,54.0001L 28,57L 24.9999,57 Z M 47.9999,57L 47.9999,54.0001L 50.9999,54.0001L 50.9999,57L 47.9999,57 Z M 41.9999,57L 41.9999,54.0001L 44.9999,54.0001L 44.9999,57L 41.9999,57 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_left" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 22,19L 22,37L 23,37L 23,39L 22,39L 22,57L 19,57L 19,19 Z M 39,19L 39,23.0001L 37,23.0001L 37,19L 39,19 Z M 31,22L 31,19L 34,19L 34,22L 31,22 Z M 25,22L 25,19L 28,19L 28,22L 25,22 Z M 56.9999,19.0001L 57,22L 54,22L 53.9999,19.0001L 56.9999,19.0001 Z M 57,28L 54,28L 54,25L 57,25L 57,28 Z M 57,34L 54,34L 54,31L 57,31L 57,34 Z M 56.9999,57L 53.9999,57L 53.9998,54.0001L 57,54L 56.9999,57 Z M 52.9999,39.0001L 52.9999,37.0001L 57,37L 57,39L 52.9999,39.0001 Z M 57,45L 54,45L 54,42L 57,42L 57,45 Z M 57,51L 54,51L 54,48L 57,48L 57,51 Z M 47.9999,22L 47.9999,19.0001L 51,19.0001L 51,22L 47.9999,22 Z M 42,22.0001L 42,19.0001L 44.9999,19.0001L 44.9999,22L 42,22.0001 Z M 37,53L 39,53L 39,57L 37,57L 37,53 Z M 31,57L 31,54L 34,54L 34,57L 31,57 Z M 25,57L 25,54L 28,54L 28,57L 25,57 Z M 47.9999,57L 47.9999,54L 50.9999,54L 50.9999,57L 47.9999,57 Z M 42,57L 42,54L 44.9999,54L 44.9999,57L 42,57 Z M 36.9999,37.0001L 38.9999,37.0001L 39,39L 36.9999,39.0001L 36.9999,37.0001 Z M 39,43L 37,43L 37,41L 39,41L 39,43 Z M 38.9999,47L 37,47L 37,45L 39,45L 38.9999,47 Z M 38.9999,51.0001L 36.9999,51.0001L 37,49L 38.9999,49L 38.9999,51.0001 Z M 38.9999,27.0001L 36.9999,27.0001L 36.9999,25.0001L 38.9999,25.0001L 38.9999,27.0001 Z M 38.9999,31.0001L 36.9999,31.0001L 36.9999,29.0001L 38.9999,29.0001L 38.9999,31.0001 Z M 38.9999,35.0001L 36.9999,35.0001L 36.9999,33.0001L 38.9999,33.0001L 38.9999,35.0001 Z M 26.9999,37.0001L 26.9999,39.0001L 24.9999,39.0001L 24.9999,37.0001L 26.9999,37.0001 Z M 30.9999,37.0001L 30.9999,39.0001L 28.9999,39.0001L 28.9999,37.0001L 30.9999,37.0001 Z M 34.9999,37.0001L 34.9999,39.0001L 32.9999,39.0001L 32.9999,37.0001L 34.9999,37.0001 Z M 48.9998,39.0001L 48.9998,37.0001L 50.9999,37.0001L 50.9999,39.0001L 48.9998,39.0001 Z M 42.9999,37.0001L 42.9999,39.0001L 40.9999,39.0001L 40.9999,37.0001L 42.9999,37.0001 Z M 46.9998,37.0001L 46.9998,39.0001L 44.9999,39.0001L 44.9999,37.0001L 46.9998,37.0001 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_none" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 22,19L 22,22L 19,22L 19,19 Z M 22,28L 19,28L 19,25L 22,25L 22,28 Z M 22,34L 19,34L 19,31L 22,31L 22,34 Z M 22.9999,37.0001L 22.9999,39.0001L 19,39L 19,37L 22.9999,37.0001 Z M 39,19.0001L 39,23.0001L 37,23.0001L 37,19.0001L 39,19.0001 Z M 31,22L 31,19.0001L 34,19.0001L 34,22L 31,22 Z M 25,22.0001L 25,19.0001L 28,19.0001L 28,22L 25,22.0001 Z M 56.9999,19.0001L 57,22L 54,22L 53.9999,19.0001L 56.9999,19.0001 Z M 57,28L 54,28L 54,25L 57,25L 57,28 Z M 57,34L 54,34L 54,31L 57,31L 57,34 Z M 56.9999,57L 53.9999,57L 53.9998,54.0001L 57,54L 56.9999,57 Z M 52.9999,39.0001L 52.9999,37.0001L 57,37L 57,39L 52.9999,39.0001 Z M 57,45L 54,45L 54,42L 57,42L 57,45 Z M 57,51L 54,51L 54,48L 57,48L 57,51 Z M 47.9999,22.0001L 47.9999,19.0001L 50.9999,19.0001L 50.9999,22.0001L 47.9999,22.0001 Z M 42,22.0001L 42,19.0001L 44.9999,19.0001L 44.9999,22.0001L 42,22.0001 Z M 21.9999,45L 19,45L 19,42L 21.9999,42L 21.9999,45 Z M 22,51L 19,51L 19,48L 21.9999,48L 22,51 Z M 21.9999,54.0001L 22,57L 19,57L 19,54L 21.9999,54.0001 Z M 36.9999,53.0001L 38.9999,53.0001L 39,57L 37,57L 36.9999,53.0001 Z M 30.9999,57L 30.9999,54.0001L 34,54.0001L 34,57L 30.9999,57 Z M 24.9999,57L 24.9999,54.0001L 28,54.0001L 28,57L 24.9999,57 Z M 47.9999,57L 47.9999,54.0001L 50.9999,54.0001L 50.9999,57L 47.9999,57 Z M 41.9999,57L 41.9999,54.0001L 44.9999,54.0001L 44.9999,57L 41.9999,57 Z M 36.9999,37.0001L 38.9999,37.0001L 38.9999,39.0001L 36.9999,39.0001L 36.9999,37.0001 Z M 38.9999,43.0001L 36.9999,43.0001L 36.9999,41.0001L 38.9999,41.0001L 38.9999,43.0001 Z M 38.9999,47.0001L 36.9999,47.0001L 36.9999,45.0001L 38.9999,45.0001L 38.9999,47.0001 Z M 38.9999,51.0001L 36.9999,51.0001L 36.9999,49.0001L 38.9999,49.0001L 38.9999,51.0001 Z M 38.9999,27.0001L 36.9999,27.0001L 36.9999,25.0001L 38.9999,25.0001L 38.9999,27.0001 Z M 38.9999,31.0001L 36.9999,31.0001L 36.9999,29.0001L 38.9999,29.0001L 38.9999,31.0001 Z M 38.9999,35.0001L 36.9999,35.0001L 36.9999,33.0002L 38.9999,33.0002L 38.9999,35.0001 Z M 26.9999,37.0001L 26.9999,39.0001L 24.9999,39.0001L 24.9999,37.0001L 26.9999,37.0001 Z M 30.9999,37.0001L 30.9999,39.0001L 28.9999,39.0001L 28.9999,37.0001L 30.9999,37.0001 Z M 34.9999,37.0001L 34.9999,39.0001L 32.9999,39.0001L 32.9999,37.0001L 34.9999,37.0001 Z M 48.9998,39.0001L 48.9998,37.0001L 50.9998,37.0001L 50.9998,39.0001L 48.9998,39.0001 Z M 42.9998,37.0001L 42.9998,39.0001L 40.9999,39.0001L 40.9999,37.0001L 42.9998,37.0001 Z M 46.9998,37.0001L 46.9998,39.0001L 44.9998,39.0001L 44.9998,37.0001L 46.9998,37.0001 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_outside" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 57,19L 57,57L 19,57L 19,19 Z M 21.9999,22.0001L 22,37L 23,37L 23,39L 22,39L 21.9999,54L 37,54L 37,53L 39,53L 39,54L 53.9999,54L 53.9999,39L 53,39L 53,37L 53.9999,37L 53.9999,22.0001L 39,22.0001L 39,23L 37,23L 37,22.0001L 21.9999,22.0001 Z M 37,37L 39,37L 39,39L 39,39L 37,39L 37,37 Z M 39,43L 37,43L 37,41L 39,41L 39,43 Z M 39,47L 37,47L 37,45L 39,45L 39,47 Z M 39,51L 37,51L 37,49L 39,49L 39,51 Z M 39,27L 37,27L 37,25L 39,25L 39,27 Z M 39,31L 37,31L 37,29L 39,29L 39,31 Z M 39,35L 37,35L 37,33L 39,33L 39,35 Z M 27,37L 27,39L 25,39L 25,37L 27,37 Z M 31,37L 31,39L 29,39L 29,37L 31,37 Z M 35,37L 35,39L 33,39L 33,37L 35,37 Z M 48.9999,39L 48.9999,37L 51,37L 51,39L 48.9999,39 Z M 43,37L 43,39L 41,39L 41,37L 43,37 Z M 46.9999,37L 46.9999,39L 45,39L 45,37L 46.9999,37 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_right" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 22,19L 22,22L 19,22L 19,19 Z M 22,28L 19,28L 19,25L 22,25L 22,28 Z M 22,34L 19,34L 19,31L 22,31L 22,34 Z M 23,37L 23,39L 19,39L 19,37L 23,37 Z M 39,19L 39,23L 37,23L 37,19L 39,19 Z M 31,22L 31,19L 34,19L 34,22L 31,22 Z M 25,22L 25,19L 28,19L 28,22L 25,22 Z M 57,19L 57,57L 54,57L 53.9999,39.0001L 52.9999,39L 52.9999,37L 53.9999,37.0001L 54,19L 57,19 Z M 48,22L 48,19L 51,19L 51,22L 48,22 Z M 42,22L 42,19L 45,19L 45,22L 42,22 Z M 22,45L 19,45L 19,42L 22,42L 22,45 Z M 22,51L 19,51L 19,48L 22,48L 22,51 Z M 21.9999,54.0001L 22,57L 19,57L 19,54L 21.9999,54.0001 Z M 37,53L 39,53L 39,57L 37,57L 37,53 Z M 31,57L 31,54L 34,54L 34,57L 31,57 Z M 25,57L 25,54L 28,54L 28,57L 25,57 Z M 47.9999,57L 47.9999,54L 50.9999,54L 50.9999,57L 47.9999,57 Z M 42,57L 42,54L 44.9999,54L 44.9999,57L 42,57 Z M 36.9999,37.0001L 38.9999,37.0001L 39,39L 36.9999,39.0001L 36.9999,37.0001 Z M 39,43L 37,43L 37,41L 39,41L 39,43 Z M 38.9999,47L 37,47L 37,45L 39,45L 38.9999,47 Z M 38.9999,51.0001L 36.9999,51.0001L 37,49L 38.9999,49L 38.9999,51.0001 Z M 38.9999,27.0001L 36.9999,27.0001L 36.9999,25.0001L 38.9999,25.0001L 38.9999,27.0001 Z M 38.9999,31.0001L 36.9999,31.0001L 36.9999,29.0001L 38.9999,29.0001L 38.9999,31.0001 Z M 38.9999,35.0001L 36.9999,35.0001L 36.9999,33.0001L 38.9999,33.0001L 38.9999,35.0001 Z M 26.9999,37.0001L 26.9999,39.0001L 24.9999,39.0001L 24.9999,37.0001L 26.9999,37.0001 Z M 30.9999,37.0001L 30.9999,39.0001L 28.9999,39.0001L 28.9999,37.0001L 30.9999,37.0001 Z M 34.9999,37.0001L 34.9999,39.0001L 32.9999,39.0001L 32.9999,37.0001L 34.9999,37.0001 Z M 48.9998,39.0001L 48.9998,37.0001L 50.9999,37.0001L 50.9999,39.0001L 48.9998,39.0001 Z M 42.9999,37.0001L 42.9999,39.0001L 40.9999,39.0001L 40.9999,37.0001L 42.9999,37.0001 Z M 46.9998,37.0001L 46.9998,39.0001L 44.9999,39.0001L 44.9999,37.0001L 46.9998,37.0001 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_top" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 57,19L 57,22L 39,22.0001L 39,23L 37,23L 37,22.0001L 19,22L 19,19 Z M 57,28L 54,28L 54,25L 57,25L 57,28 Z M 57,34L 54,34L 54,31L 57,31L 57,34 Z M 57,57L 54,57L 53.9999,54.0001L 57,54L 57,57 Z M 52.9999,39L 52.9999,37L 57,37L 57,39L 52.9999,39 Z M 57,45L 54,45L 54,42L 57,42L 57,45 Z M 57,51L 54,51L 54,48L 57,48L 57,51 Z M 22,28L 19,28L 19,25L 22,25L 22,28 Z M 22,34L 19,34L 19,31L 22,31L 22,34 Z M 22.9999,37.0001L 22.9999,39.0001L 19,39L 19,37L 22.9999,37.0001 Z M 22,45L 19,45L 19,42L 22,42L 22,45 Z M 22,51L 19,51L 19,48L 22,48L 22,51 Z M 21.9999,54.0001L 22,57L 19,57L 19,54L 21.9999,54.0001 Z M 37,53L 39,53L 39,57L 37,57L 37,53 Z M 31,57L 31,54L 34,54L 34,57L 31,57 Z M 25,57L 25,54L 28,54L 28,57L 25,57 Z M 47.9999,57L 47.9999,54L 50.9999,54L 50.9999,57L 47.9999,57 Z M 42,57L 42,54L 44.9999,54L 44.9999,57L 42,57 Z M 36.9999,37.0001L 38.9999,37.0001L 39,39L 36.9999,39.0001L 36.9999,37.0001 Z M 39,43L 37,43L 37,41L 39,41L 39,43 Z M 38.9999,47L 37,47L 37,45L 39,45L 38.9999,47 Z M 38.9999,51.0001L 36.9999,51.0001L 37,49L 38.9999,49L 38.9999,51.0001 Z M 38.9999,27.0001L 36.9999,27.0001L 36.9999,25.0001L 38.9999,25.0001L 38.9999,27.0001 Z M 38.9999,31.0001L 36.9999,31.0001L 36.9999,29.0001L 38.9999,29.0001L 38.9999,31.0001 Z M 38.9999,35.0001L 36.9999,35.0001L 36.9999,33.0001L 38.9999,33.0001L 38.9999,35.0001 Z M 26.9999,37.0001L 26.9999,39.0001L 24.9999,39.0001L 24.9999,37.0001L 26.9999,37.0001 Z M 30.9999,37.0001L 30.9999,39.0001L 28.9999,39.0001L 28.9999,37.0001L 30.9999,37.0001 Z M 34.9999,37.0001L 34.9999,39.0001L 32.9999,39.0001L 32.9999,37.0001L 34.9999,37.0001 Z M 48.9998,39.0001L 48.9998,37.0001L 50.9999,37.0001L 50.9999,39.0001L 48.9998,39.0001 Z M 42.9999,37.0001L 42.9999,39.0001L 40.9999,39.0001L 40.9999,37.0001L 42.9999,37.0001 Z M 46.9998,37.0001L 46.9998,39.0001L 44.9999,39.0001L 44.9999,37.0001L 46.9998,37.0001 Z "/>
</Canvas>
<Canvas x:Key="appbar_border_vertical" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,19L 57,19L 57,57L 19,57L 19,19 Z M 22,22.0001L 22,37L 23,37L 23,39L 22,39L 22,54L 37,54L 37,22L 22,22.0001 Z M 27,37L 27,39L 25,39L 25,37L 27,37 Z M 31,37L 31,39L 29,39L 29,37L 31,37 Z M 35,37L 35,39L 33,39L 33,37L 35,37 Z M 53.9999,37L 53.9999,22.0001L 39,22L 39,54L 53.9999,54L 53.9999,39L 53,39L 53,37L 53.9999,37 Z M 49,39L 49,37L 51,37L 51,39L 49,39 Z M 43,37L 43,39L 41,39L 41,37L 43,37 Z M 47,37L 47,39L 45,39L 45,37L 47,37 Z "/>
</Canvas>
<Canvas x:Key="appbar_box_layered" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="41.1667" Height="44.3333" Canvas.Left="17.4166" Canvas.Top="15.8334" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,15.8334L 58.5833,23.75L 58.5833,30.0833L 38,38L 17.4167,30.0833L 17.4166,23.75L 38,15.8334 Z M 58.5833,44.3333L 58.5833,52.25L 38,60.1667L 17.4167,52.25L 17.4167,44.3333L 21.5333,45.9167L 38,52.25L 54.4667,45.9167L 58.5833,44.3333 Z M 58.5833,33.25L 58.5833,41.1667L 38,49.0833L 17.4167,41.1667L 17.4167,33.25L 21.5333,34.8333L 38,41.1667L 54.4666,34.8333L 58.5833,33.25 Z "/>
</Canvas>
<Canvas x:Key="appbar_box_unfolded" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="45" Height="34" Canvas.Left="16" Canvas.Top="21" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 16,31L 27,31L 27,21L 41,21L 41,31L 61,31L 61,45L 51,45L 51,55L 37,55L 37,45L 16,45L 16,31 Z M 47,45L 41,45L 41,51L 47,51L 47,45 Z M 31,31L 37,31L 37,25L 31,25L 31,31 Z M 20,35L 20,41L 27,41L 27,35L 20,35 Z M 31,35L 31,41L 37,41L 37,35L 31,35 Z M 41,35L 41,41L 47,41L 47,35L 41,35 Z M 51,35L 51,41L 57,41L 57,35L 51,35 Z "/>
</Canvas>
<Canvas x:Key="appbar_box" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 38,19L 57,28.5L 57,47.5L 38,57L 19,47.5L 19,28.5L 38,19 Z M 22.1667,30.0833L 22.1667,45.9167L 25.3333,47.5L 36.4167,53.0417L 36.4167,37.2083L 22.1667,30.0833 Z M 50.6666,47.5L 53.8333,45.9167L 53.8333,30.0833L 39.5833,37.2083L 39.5833,53.0417L 50.6666,47.5 Z M 38,22.1667L 25.3333,28.5L 38,34.8334L 50.6666,28.5L 38,22.1667 Z "/>
</Canvas>
<Canvas x:Key="appbar_brick" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="40" Height="37.5295" Canvas.Left="18" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 35.5,19C 37.9853,19 40,19.8954 40,21C 40,22.1046 37.9853,23 35.5,23C 33.0147,23 31,22.1046 31,21L 31,25C 31,26.1046 33.0147,27 35.5,27C 37.9853,27 40,26.1046 40,25L 40,21.8296L 45.6494,23.4524C 46.4256,23.1697 47.4182,23 48.5,23C 50.9853,23 53,23.8954 53,25C 53,26.1046 50.9853,27 48.5,27C 46.0147,27 44,26.1046 44,25L 44,29C 44,30.1046 46.0147,31 48.5,31C 50.9853,31 53,30.1046 53,29L 53,25.5638L 58,27L 58,43L 44.5077,56.5295L 18,49L 18,33L 31.5688,19.4077L 32.2677,19.6085C 33.0857,19.2332 34.2316,19 35.5,19 Z M 20,33.5681L 20,47.5681L 43,54.1013L 43,40.1013L 20,33.5681 Z M 56,43L 56,29.0056L 46,39.0331L 46,53.0331L 56.0055,43L 56,43 Z M 46,36L 46,32C 45.9999,33.1046 43.9852,34 41.5,34C 39.0147,34 37,33.1046 37,32L 37,36C 37,37.1046 39.0147,38 41.5,38C 43.9852,38 46,37.1046 46,36 Z M 33,32L 33,28C 32.9999,29.1046 30.9852,30 28.5,30C 26.0147,30 24,29.1046 24,28L 24,32C 24,33.1046 26.0147,34 28.5,34C 30.9853,34 33,33.1046 33,32 Z "/>
</Canvas>
<Canvas x:Key="appbar_browser_chrome" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="40" Canvas.Left="18" Canvas.Top="21" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 45,40.6429C 47.9587,40.6429 50.3571,43.0413 50.3571,46C 50.3571,48.9587 47.9587,51.3571 45,51.3571C 42.0413,51.3571 39.6429,48.9587 39.6429,46C 39.6429,43.0413 42.0413,40.6429 45,40.6429 Z M 45,31C 50.5521,31 55.3997,34.2665 57.9933,38.75L 45.2156,39.039L 45,39.0357C 42.1237,39.0357 39.6547,40.7794 38.5923,43.2673L 32.8856,37.1529C 35.6143,33.4227 40.0242,31 45,31 Z M 60,46C 60,54.2843 53.2843,61 45,61L 43.3967,60.9153L 47.2863,52.5803C 50.0095,51.6342 51.9643,49.0454 51.9643,46C 51.9643,43.7935 50.9381,41.8266 49.3369,40.5506L 58.1886,39.3484C 59.3438,41.4742 60,43.4105 60,46 Z M 30,46C 30,42.7685 31.0218,39.7757 32.7601,37.3271L 38.0452,45.6323L 38.0357,46C 38.0357,49.8277 41.1236,52.9341 44.9442,52.9641L 43.1291,60.8845C 35.7278,59.9636 30,53.6507 30,46 Z M 18,21L 58,21L 58,36.6705C 57.1478,35.4852 56.1375,34.4211 55,33.5092L 55,26L 21,26L 21,46L 29,46C 29,47.0254 29.0965,48.0283 29.2808,49L 18,49L 18,21 Z "/>
</Canvas>
<Canvas x:Key="appbar_browser_ie" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="41.0388" Canvas.Left="18" Canvas.Top="21" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 45.0156,30.6787C 45.7877,30.6787 46.5461,30.7371 47.2867,30.8497C 51.6132,28.9889 55.3711,28.8428 57.3834,30.8551C 59.0234,32.4951 59.2298,35.2944 58.2428,38.616C 59.3643,40.7166 60,43.1156 60,45.6631L 59.8737,47.6175L 52.083,47.6176L 48.2731,47.6175L 37.9483,47.6176C 38.5169,51.3151 41.4647,54.1325 45.0156,54.1325C 47.6682,54.1325 49.9842,52.5603 51.2233,50.2235L 59.2934,50.2235C 57.364,56.2692 51.7011,60.6474 45.0156,60.6474C 43.1344,60.6474 41.3341,60.3007 39.6751,59.6678C 34.5573,62.3611 29.9607,62.8886 27.6554,60.5832C 23.9398,56.8677 27.5826,47.2008 35.7918,38.9916L 37.4866,37.3792C 34.9836,38.6884 32.4946,40.585 30.3084,42.7801C 31.6524,35.8839 37.7262,30.6787 45.0156,30.6787 Z M 45.0156,38.4967C 41.8953,38.4967 39.2408,40.6721 38.257,43.7086L 51.7743,43.7086C 50.7905,40.6721 48.1359,38.4967 45.0156,38.4967 Z M 56.4843,32.8856C 55.414,31.8153 53.631,31.6046 51.4412,32.1225C 53.8478,33.2665 55.9011,35.0333 57.3928,37.2145C 57.7079,35.3516 57.4357,33.837 56.4843,32.8856 Z M 29.7651,59.6048C 31.3661,61.2058 34.5617,60.8834 38.3284,59.0761C 34.7293,57.2783 31.9551,54.0745 30.7255,50.1844C 28.5457,54.3196 28.044,57.8836 29.7651,59.6048 Z M 18,21L 58,21L 58,30.25C 57.1478,29.0647 56.1375,28.7506 55,27.8387L 55,26L 21,26L 21,46L 28.5,46C 27.5,47 27.5,48 26.5,49L 18,49L 18,21 Z "/>
</Canvas>
<Canvas x:Key="appbar_browser_wire" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="40" Canvas.Left="18" Canvas.Top="21" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 45,31C 53.2843,31 60,37.7157 60,46C 60,54.2843 53.2843,61 45,61C 36.7157,61 30,54.2843 30,46C 30,37.7157 36.7157,31 45,31 Z M 32.1869,44.9286L 36.4501,44.9286C 36.5216,43.1552 36.7693,41.4669 37.1627,39.917C 36.1672,39.5677 35.2486,39.154 34.4246,38.6858C 33.1769,40.4865 32.3772,42.6212 32.1869,44.9286 Z M 39.6231,34.3178C 38.1633,34.9908 36.8512,35.9293 35.7487,37.0714C 36.3627,37.3895 37.0418,37.676 37.7751,37.9255C 38.2764,36.5547 38.9016,35.336 39.6231,34.3178 Z M 43.9286,44.9286L 43.9286,41.1571C 42.2569,41.0896 40.6609,40.8657 39.1851,40.5107C 38.8638,41.8696 38.6582,43.3591 38.5934,44.9286L 43.9286,44.9286 Z M 43.9286,33.3207C 42.2272,33.8915 40.7525,35.7989 39.7835,38.4846C 41.068,38.77 42.4634,38.9533 43.9286,39.0137L 43.9286,33.3207 Z M 57.8131,44.9286C 57.6228,42.6212 56.8231,40.4865 55.5754,38.6859C 54.7514,39.154 53.8327,39.5677 52.8373,39.917C 53.2307,41.4669 53.4784,43.1552 53.5499,44.9286L 57.8131,44.9286 Z M 50.3769,34.3178C 51.0984,35.336 51.7236,36.5547 52.2249,37.9255C 52.9582,37.676 53.6373,37.3895 54.2513,37.0715C 53.1488,35.9293 51.8367,34.9908 50.3769,34.3178 Z M 46.0714,44.9286L 51.4065,44.9286C 51.3418,43.3591 51.1361,41.8696 50.8149,40.5107C 49.3391,40.8657 47.7431,41.0896 46.0714,41.1571L 46.0714,44.9286 Z M 46.0714,33.3207L 46.0714,39.0137C 47.5365,38.9533 48.932,38.77 50.2165,38.4846C 49.2475,35.7989 47.7728,33.8915 46.0714,33.3207 Z M 57.8131,47.0714L 53.5499,47.0714C 53.4784,48.8448 53.2307,50.5331 52.8373,52.083C 53.8327,52.4323 54.7514,52.846 55.5754,53.3142C 56.8231,51.5135 57.6228,49.3789 57.8131,47.0714 Z M 50.3769,57.6822C 51.8367,57.0093 53.1488,56.0707 54.2513,54.9286C 53.6373,54.6105 52.9582,54.324 52.2249,54.0745C 51.7236,55.4453 51.0984,56.664 50.3769,57.6822 Z M 46.0714,47.0714L 46.0714,50.843C 47.7431,50.9104 49.3391,51.1343 50.8149,51.4893C 51.1361,50.1304 51.3418,48.6409 51.4066,47.0714L 46.0714,47.0714 Z M 46.0714,58.6794C 47.7728,58.1085 49.2475,56.2011 50.2165,53.5154C 48.932,53.23 47.5365,53.0467 46.0714,52.9863L 46.0714,58.6794 Z M 32.1869,47.0714C 32.3772,49.3789 33.1769,51.5135 34.4246,53.3142C 35.2486,52.8461 36.1672,52.4323 37.1627,52.083C 36.7693,50.5331 36.5216,48.8448 36.4501,47.0714L 32.1869,47.0714 Z M 39.6231,57.6823C 38.9016,56.664 38.2764,55.4453 37.7751,54.0745C 37.0418,54.3241 36.3627,54.6105 35.7487,54.9286C 36.8512,56.0707 38.1633,57.0093 39.6231,57.6823 Z M 43.9286,47.0714L 38.5934,47.0714C 38.6582,48.6409 38.8638,50.1304 39.1851,51.4893C 40.6609,51.1343 42.2569,50.9104 43.9286,50.843L 43.9286,47.0714 Z M 43.9286,58.6794L 43.9286,52.9863C 42.4634,53.0467 41.068,53.23 39.7835,53.5154C 40.7525,56.2011 42.2272,58.1085 43.9286,58.6794 Z M 18,21L 58,21L 58,36.6705C 57.1478,35.4852 56.1375,34.4211 55,33.5092L 55,26L 21,26L 21,46L 29,46C 29,47.0254 29.0965,48.0283 29.2808,49L 18,49L 18,21 Z "/>
</Canvas>
<Canvas x:Key="appbar_browser" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="40" Canvas.Left="18" Canvas.Top="21" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 45,31C 53.2843,31 60,37.7157 60,46C 60,54.2843 53.2843,61 45,61C 36.7157,61 30,54.2843 30,46C 30,37.7157 36.7157,31 45,31 Z M 45,33.1429C 44.3496,33.1429 43.7105,33.1912 43.0861,33.2844C 42.9524,33.5754 42.8571,33.8948 42.8571,34.2143C 42.8571,35.2857 41.7857,33.1429 40.7143,35.2857C 39.6429,37.4286 40.7143,35.2857 40.7143,37.4286C 40.7143,38.5 39.1637,37.7247 39.6429,37.9643C 40.7143,38.5 40.7143,38.5 39.6429,39.5714C 39.6429,39.5714 37.5,38.5 37.5,39.5714C 37.5,40.6429 36.4286,40.6429 35.3571,40.6429C 34.2857,40.6429 35.3571,42.7857 34.2857,42.7857C 33.4619,42.7857 33.9049,41.5189 33.1797,40.9333C 32.904,41.5756 32.6792,42.2449 32.5102,42.9361C 33.2323,43.5831 33.3532,46.1389 34.2857,47.0714C 35.3571,46 35.3571,47.0714 36.4286,47.0714C 37.5,47.0714 37.5,47.0714 38.0357,48.1429C 39.1071,48.1429 39.6429,49.2143 40.7143,50.2857C 41.7857,51.3571 43.9286,51.3572 43.9286,52.4286C 43.9286,53.5 42.8571,52.4286 42.8571,54.5714C 42.8571,55.6429 42.8571,55.6429 41.7857,55.6429C 41.1111,55.6429 40.4365,56.9172 40.0293,57.861C 41.5585,58.5026 43.2378,58.8571 45,58.8571C 48.5986,58.8571 51.8518,57.3788 54.1856,54.9962L 53.5714,53.7679C 53.5714,53.7679 54.9107,51.625 53.8393,50.5536C 52.7678,49.4822 52.7678,48.4107 52.7678,48.4107C 52.7678,48.4107 50.625,50.5536 49.5536,49.4822C 48.4821,48.4107 48.4821,49.4822 47.4107,47.3393C 46.3393,45.1964 48.4821,44.125 48.4821,44.125C 48.4821,44.125 48.4821,41.9822 49.5536,41.9822C 50.625,41.9822 51.6964,39.8393 53.8393,41.9822C 53.8393,41.9822 55.0776,41.1566 56.8295,40.9548C 56.28,39.6681 55.5267,38.4891 54.6101,37.4586C 54.4177,37.597 54.1658,37.6965 53.8393,37.6965C 52.7678,37.6964 54.9107,39.8393 53.8393,39.8393C 52.7678,39.8393 52.7678,38.7679 51.6964,38.7679C 50.625,38.7679 50.625,39.8393 49.5536,40.9107C 48.4821,41.9822 49.5536,40.9107 48.4821,39.8393C 47.4107,38.7679 50.625,39.8393 49.5536,38.7679C 48.4821,37.6964 50.625,37.6965 50.625,36.625C 50.625,35.7847 51.9432,35.6034 52.5118,35.5643C 51.8935,35.1185 51.234,34.7262 50.625,34.4822C 51.6964,35.5536 49.5536,36.625 48.4821,36.625C 47.4757,36.625 48.36,34.7343 48.471,33.6169C 47.3669,33.308 46.2027,33.1429 45,33.1429 Z M 32.1429,46C 32.1429,49.7817 33.7755,53.182 36.3744,55.5346L 35.3571,53.5C 34.2857,53.5 33.75,51.0893 33.75,50.0179C 33.75,49.158 33.405,48.4707 33.8225,47.679C 32.3108,46.1608 33.2143,46.9839 33.2143,46C 33.2143,45.49 32.7287,44.9799 32.2198,44.5854L 32.1429,46 Z M 18,21L 58,21L 58,36.6705C 57.1478,35.4852 56.1375,34.4211 55,33.5092L 55,26L 21,26L 21,46L 29,46C 29,47.0254 29.0965,48.0283 29.2808,49L 18,49L 18,21 Z "/>
</Canvas>
<Canvas x:Key="appbar_bug_remove" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="52.2455" Height="52.2455" Canvas.Left="11.8772" Canvas.Top="11.8772" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 46.5,19C 45.1193,19 44,20.1193 44,21.5C 44,21.9262 44.1066,22.3274 44.2947,22.6786L 41.8156,25.8516C 40.617,25.2993 39.3339,25 38,25C 36.5982,25 35.2525,25.3305 34.0019,25.938L 31.5976,22.8607C 31.8521,22.4691 32,22.0018 32,21.5C 32,20.1193 30.8807,19 29.5,19C 28.1193,19 27,20.1193 27,21.5C 27,22.8808 28.1193,24 29.5,24L 29.9221,23.9646L 32.2844,26.9882C 30.7591,28.1265 29.4333,29.7061 28.3977,31.6025C 31.1299,32.4842 34.4369,33 38,33C 41.563,33 44.8701,32.4842 47.6023,31.6025C 46.5309,29.6405 45.1489,28.0176 43.5566,26.8718L 45.8641,23.9184L 46.5,24C 47.8807,24 49,22.8807 49,21.5C 49,20.1193 47.8807,19 46.5,19 Z M 54.4999,40L 49.951,40C 49.8763,38.859 49.717,37.7516 49.482,36.6895L 54.8051,34.6461C 55.5785,34.3492 55.9648,33.4816 55.6679,32.7082C 55.371,31.9348 54.5034,31.5485 53.73,31.8454L 48.6187,33.8074L 48.4239,33.3201C 45.7913,34.283 42.541,34.8897 39,34.9864L 39,57.9435C 43.2172,57.4651 46.8161,53.9883 48.6665,49.067L 53.538,51.3386C 54.2888,51.6887 55.1813,51.3639 55.5314,50.6131C 55.8815,49.8623 55.5567,48.9698 54.8059,48.6197L 49.5162,46.1531C 49.7325,45.1391 49.88,44.0847 49.951,43L 54.4999,43C 55.3284,43 55.9999,42.3284 55.9999,41.5C 55.9999,40.6716 55.3284,40 54.4999,40 Z M 21.5,40C 20.6716,40 20,40.6716 20,41.5C 20,42.3285 20.6716,43 21.5,43L 26.0489,43C 26.12,44.0847 26.2674,45.1392 26.4838,46.1531L 21.194,48.6198C 20.4432,48.9699 20.1183,49.8623 20.4685,50.6131C 20.8186,51.364 21.711,51.6888 22.4618,51.3387L 27.3335,49.067C 29.1838,53.9883 32.7827,57.4651 37,57.9435L 37,34.9864C 33.4589,34.8897 30.2087,34.283 27.5761,33.3201L 27.3812,33.8074L 22.27,31.8454C 21.4966,31.5485 20.6289,31.9348 20.332,32.7082C 20.0352,33.4816 20.4215,34.3492 21.1949,34.6461L 26.518,36.6895C 26.2829,37.7516 26.1237,38.8591 26.0489,40L 21.5,40 Z M 20.76,52.4116L 11.8772,61.2943C 12.7656,62.2899 13.7101,63.2344 14.7057,64.1228L 27.567,51.2614L 27.251,50.5315L 22.4934,52.75C 21.8883,53.0322 21.1911,52.8759 20.76,52.4116 Z M 48.4677,30.3608L 64.1227,14.7057C 63.2343,13.7101 62.2899,12.7656 61.2943,11.8772L 46.0376,27.134C 46.9537,28.0476 47.7723,29.1349 48.4677,30.3608 Z "/>
</Canvas>
<Canvas x:Key="appbar_bug" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="36" Height="38.9435" Canvas.Left="20" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 46.5,19C 47.8807,19 49,20.1193 49,21.5C 49,22.8807 47.8807,24 46.5,24L 45.8641,23.9184L 43.5566,26.8718C 45.1489,28.0176 46.5309,29.6405 47.6023,31.6025C 44.8701,32.4842 41.563,33 38,33C 34.4369,33 31.1299,32.4842 28.3977,31.6025C 29.4333,29.7061 30.7591,28.1265 32.2844,26.9882L 29.9221,23.9646C 29.7849,23.9879 29.6438,24 29.5,24C 28.1193,24 27,22.8808 27,21.5C 27,20.1193 28.1193,19 29.5,19C 30.8807,19 32,20.1193 32,21.5C 32,22.0018 31.8521,22.4691 31.5976,22.8607L 34.0019,25.938C 35.2525,25.3305 36.5982,25 38,25C 39.3339,25 40.617,25.2993 41.8156,25.8516L 44.2947,22.6786C 44.1066,22.3274 44,21.9262 44,21.5C 44,20.1193 45.1193,19 46.5,19 Z M 54.5,40C 55.3284,40 56,40.6716 56,41.5C 56,42.3284 55.3284,43 54.5,43L 49.9511,43C 49.88,44.0847 49.7325,45.1391 49.5162,46.1531L 54.8059,48.6197C 55.5567,48.9698 55.8815,49.8623 55.5314,50.6131C 55.1813,51.3639 54.2889,51.6887 53.5381,51.3386L 48.6665,49.067C 46.8161,53.9883 43.2172,57.4651 39,57.9435L 39,34.9864C 42.541,34.8897 45.7913,34.283 48.4239,33.3201L 48.6187,33.8074L 53.73,31.8454C 54.5034,31.5485 55.371,31.9348 55.6679,32.7082C 55.9648,33.4816 55.5785,34.3492 54.8051,34.6461L 49.482,36.6895C 49.717,37.7515 49.8763,38.859 49.9511,40L 54.5,40 Z M 21.5,40L 26.0489,40C 26.1237,38.859 26.2829,37.7516 26.518,36.6895L 21.1949,34.6461C 20.4215,34.3492 20.0352,33.4816 20.332,32.7082C 20.6289,31.9348 21.4966,31.5485 22.27,31.8454L 27.3812,33.8074L 27.5761,33.3201C 30.2087,34.283 33.4589,34.8897 37,34.9864L 37,57.9435C 32.7827,57.4651 29.1838,53.9883 27.3335,49.067L 22.4618,51.3387C 21.711,51.6888 20.8186,51.3639 20.4685,50.6131C 20.1184,49.8623 20.4432,48.9699 21.194,48.6198L 26.4838,46.1531C 26.2674,45.1392 26.12,44.0847 26.0489,43L 21.5,43C 20.6716,43 20,42.3285 20,41.5C 20,40.6716 20.6716,40 21.5,40 Z "/>
</Canvas>
<Canvas x:Key="appbar_cabinet_files_variant" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 23,19L 53,19L 56.9999,25.0001L 57,27L 19,27L 19,25.0001L 23,19 Z M 19,42L 19,29.0001L 56.9999,29.0001L 57,42L 54.038,42L 52.7168,35.7843L 23.4742,42L 19,42 Z M 34,33L 34,35L 42,35L 42,33L 34,33 Z M 19,57L 19,44L 56.9999,44L 57,57L 19,57 Z M 34,48L 34,50L 42,50L 42,48L 34,48 Z "/>
</Canvas>
<Canvas x:Key="appbar_cabinet_files" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="38" Canvas.Left="17" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 19,38L 19,22L 24,22L 24,20L 29,20L 29,19L 46.75,19L 57,29.25L 57,38L 59,38L 59,57L 58.5833,57L 17.4167,57L 17,57L 17,38L 19,38 Z M 24,38L 24,25L 22,25L 22,38L 24,38 Z M 27,23L 27,38L 29,38L 29,23L 27,23 Z M 43,46L 43,49L 33,49L 33,46L 43,46 Z M 54,38L 54,33L 43,33L 43,22L 32,22L 32,38L 54,38 Z M 46,22.75L 46,30L 53.25,30L 46,22.75 Z M 21,42L 21,53L 55,53L 55,42L 21,42 Z "/>
</Canvas>
<Canvas x:Key="appbar_cabinet_in" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="44" Canvas.Left="17" Canvas.Top="13" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 35,13L 35,30.5L 27,21L 27,30.75L 38,43.25L 49,30.75L 49,21L 41,30.5L 41,13L 35,13 Z M 17,38L 30,38L 33.75,42L 21,42L 21,53L 55,53L 55,42L 42.25,42L 46,38L 59,38L 59,57L 17,57L 17,38 Z M 33,46L 43,46L 43,49L 33,49L 33,46 Z "/>
</Canvas>
<Canvas x:Key="appbar_cabinet_out" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="44.25" Canvas.Left="17" Canvas.Top="12.75" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 35,43L 35,25.5L 27,35L 27,25.25L 38,12.75L 49,25.25L 49,35L 41,25.5L 41,43L 35,43 Z M 17,38L 33,38L 33,42L 21,42L 21,53L 55,53L 55,42L 43,42L 43,38L 59,38L 59,57L 17,57L 17,38 Z M 33,46L 43,46L 43,49L 33,49L 33,46 Z "/>
</Canvas>
<Canvas x:Key="appbar_cabinet_variant" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 23,19L 53,19L 56.9999,25.0001L 57,27L 19,27L 19,25.0001L 23,19 Z M 19,42L 19,29L 57,29L 57,42L 19,42 Z M 34,33L 34,35L 42,35L 42,33L 34,33 Z M 19,57L 19,44L 56.9999,44L 57,57L 19,57 Z M 34,48L 34,50L 42,50L 42,48L 34,48 Z "/>
</Canvas>
<Canvas x:Key="appbar_cabinet" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="42" Height="44" Canvas.Left="17" Canvas.Top="16" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 22,38L 27,38L 27,35L 23,35L 23,22L 53,22L 53,35L 49,35L 49,38L 54,38L 54,55L 22,55L 22,38 Z M 32,38L 32,32L 30,32L 30.0833,38L 32,38 Z M 32,25L 42,25L 49.0833,32.4583L 49,33L 51,33L 51,24L 25,24L 25,33L 27,33L 27,29L 32,29L 32,25 Z M 25,41L 25,52L 51,52L 51,41L 25,41 Z M 17,60L 17,16L 59,16L 59,60L 17,60 Z M 56,19L 20,19L 20,57L 56,57L 56,19 Z M 32,44L 35,44L 35,46L 41,46L 41,44L 44,44L 44,49L 32,49L 32,44 Z M 35,28L 35,38L 46,38L 46,35L 39,35L 39,28L 35,28 Z M 41,28L 41,33L 46,33L 41,28 Z "/>
</Canvas>
<Canvas x:Key="appbar_calculator" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
<Path Width="32" Height="42" Canvas.Left="22" Canvas.Top="17" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 25,17L 51,17C 52.3117,17 54,18.6883 54,20L 54,56C 54,57.3117 52.3117,59 51,59L 25,59C 23.6883,59 22,57.3117 22,56L 22,20C 22,18.6883 23.6883,17 25,17 Z M 26.9999,20.0001C 25.8954,20.0001 24.9999,20.8956 24.9999,22.0001L 24.9999,25.0001C 24.9999,26.1047 25.8954,27.0001 26.9999,27.0001L 48.9999,27.0001C 50.1044,27.0001 50.9999,26.1047 50.9999,25.0001L 50.9999,22.0001C 50.9999,20.8956 50.1044,20.0001 48.9999,20.0001L 26.9999,20.0001 Z M 27,30.0001C 25.8954,30.0001 25,30.8955 25,32.0001L 25,34C 25,35.1046 25.8954,36 27,36L 28.9999,36.0001C 30.1045,36.0001 30.9999,35.1046 30.9999,34.0001L 31,32.0001C 31,30.8955 30.1045,30.0001 29,30.0001L 27,30.0001 Z M 37,30.0001C 35.8954,30.0001 35,30.8955 35,32.0001L 34.9999,34C 34.9999,35.1046 35.8954,36 36.9999,36L 39,36C 40.1045,36 41,35.1046 41,34L 41,32.0001C 41,30.8955 40.1045,30.0001 39,30.0001L 37,30.0001 Z M 46.9999,30.0001C 45.8954,30.0001 44.9999,30.8955 44.9999,32.0001L 44.9999,34C 44.9999,35.1046 45.8953,36 46.9999,36L 48.9999,36C 50.1045,36 50.9999,35.1046 50.9999,34L 50.9999,32.0001C 50.9999,30.8955 50.1045,30.0001 48.9999,30.0001L 46.9999,30.0001 Z M 27,39C 25.8954,39 25,39.8955 25,41L 25,43C 25,44.1046 25.8954,45 27,45L 29,45.0001C 30.1045,45.0001 31,44.1046 31,43.0001L 31,41.0001C 31,39.8955 30.1045,39.0001 29,39.0001L 27,39 Z M 37,39.0001C 35.8954,39.0001 35,39.8955 35,41.0001L 35,43.0001C 35,44.1046 35.8954,45.0001 37,45.0001L 39,45C 40.1045,45 41,44.1046 41,43L 41,41.0001C 41,39.8955 40.1045,39.0001 39,39.0001L 37,39.0001 Z M 47,39C 45.8954,39 45,39.8955 45,41L 44.9999,43C 44.9999,44.1046 45.8954,45 46.9999,45L 49,45C 50.1045,45 51,44.1046 51,43L 51,41C 51,39.8955 50.1045,39 49,39L 47,39 Z M 27,49.0001C 25.8954,49.0001 25,49.8955 25,51.0001L 25,53C 25,54.1046 25.8954,55 27,55L 29,55C 30.1045,55 31,54.1046 31,53.0001L 31,51.0001C 31,49.8955 30.1045,49.0001 29,49.0001L 27,49.0001 Z M 37,49.0001C 35.8954,49.0001 35,49.8955 35,51.0001L 35,53.0001C 35,54.1046 35.8954,55 37,55L 39,55C 40.1045,55 41,54.1046 41,53L 41,51.0001C 41,49.8955 40.1045,49.0001 39,49.0001L 37,49.0001 Z M 47,49C 45.8954,49 45,49.8955 45,51L 45,53C 45,54.1046 45.8954,55 47,55L 49,55C 50.1045,55 51,54.1046 51,53L 51,51C 51,49.8954 50.1046,49 49,49L 47,49 Z "/>
</Canvas>
<Canvas x:Key="appbar_calendar_14" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="40.0056" Height="39.0058" Canvas.Left="18.0025" Canvas.Top="18.0023" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 34.0047,52.0073L 31.0042,52.0073L 31.0042,38.5053C 29.6649,39.8964 28.157,40.7849 26.3412,41.4502L 26.3412,37.7553C 27.2998,37.4474 28.3405,36.8645 29.4634,36.0068C 30.5862,35.149 31.3572,34.1483 31.7762,33.0046L 34.0047,33.0046L 34.0047,52.0073 Z M 45.0063,52.0073L 45.0063,48.0067L 37.0052,48.0067L 37.0052,45.0063L 45.0063,33.0046L 48.0067,33.0046L 48.0067,45.0063L 50.007,45.0063L 50.007,48.0067L 48.0067,48.0067L 48.0067,52.0073L 45.0063,52.0073 Z M 45.0063,45.0063L 45.0063,38.2555L 40.2556,45.0063L 45.0063,45.0063 Z M 18.0025,57.0082L 18.0025,23.0033L 23.0032,23.0033L 23.0032,20.0029C 23.0033,18.898 23.8988,18.0026 25.0035,18.0026L 29.004,18.0026C 30.1087,18.0026 31.0042,18.898 31.0043,20.0026L 31.0043,23.0033L 45.0063,23.0033L 45.0062,20.0026C 45.0062,18.8979 45.9018,18.0023 47.0065,18.0023L 51.0071,18.0023C 52.1118,18.0023 53.0074,18.8979 53.0074,20.0026L 53.0074,23.0033L 58.0081,23.0033L 58.0081,57.0082L 18.0025,57.0082 Z M 21.0029,54.0078L 55.0076,54.0078L 55.0076,31.0044L 21.0029,31.0044L 21.0029,54.0078 Z M 48.5067,20.0029C 47.6782,20.0029 47.0065,20.6746 47.0065,21.5031L 47.0065,24.5035C 47.0065,25.3321 47.6782,26.0038 48.5067,26.0038L 49.5068,26.0038C 50.3354,26.0038 51.007,25.3321 51.007,24.5035L 51.007,21.5031C 51.007,20.6746 50.3354,20.0029 49.5068,20.0029L 48.5067,20.0029 Z M 26.5037,20.0029C 25.6751,20.0029 25.0035,20.6745 25.0035,21.5031L 25.0035,24.5035C 25.0035,25.3321 25.6751,26.0037 26.5037,26.0037L 27.5038,26.0037C 28.3324,26.0037 29.004,25.3321 29.004,24.5035L 29.004,21.5031C 29.004,20.6745 28.3324,20.0029 27.5038,20.0029L 26.5037,20.0029 Z "/>
</Canvas>
<Canvas x:Key="appbar_calendar_31" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="40.0056" Height="39.0058" Canvas.Left="18.0025" Canvas.Top="18.0023" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="F1 M 26.0801,46.4635L 29.7106,46.0201C 29.8132,46.9475 30.0908,47.6566 30.5432,48.1473C 30.9957,48.6381 31.5434,48.8835 32.1863,48.8835C 32.8751,48.8835 33.4558,48.6178 33.9286,48.0863C 34.4013,47.5549 34.6376,46.8377 34.6376,45.9347C 34.6376,45.0806 34.4256,44.404 34.0015,43.9051C 33.5774,43.4062 33.0601,43.1567 32.4496,43.1567C 32.0472,43.1567 31.5663,43.2448 31.0072,43.4211L 31.3394,40.2933C 32.1579,40.3177 32.7826,40.1218 33.2134,39.7056C 33.6443,39.2893 33.8597,38.7382 33.8597,38.0522C 33.8597,37.4665 33.6949,36.9994 33.3653,36.651C 33.0358,36.3025 32.5969,36.1283 32.0485,36.1283C 31.511,36.1283 31.0511,36.3276 30.6689,36.7262C 30.2866,37.1248 30.0536,37.7065 29.9699,38.4711L 26.3395,37.9464C 26.5664,36.8022 26.9081,35.8884 27.3646,35.205C 27.8211,34.5217 28.4579,33.9842 29.275,33.5923C 30.0921,33.2005 31.0072,33.0046 32.0201,33.0046C 33.757,33.0046 35.1482,33.5632 36.1935,34.6804C 37.0579,35.5969 37.4901,36.6313 37.4901,37.7837C 37.4901,39.4188 36.5852,40.7231 34.7754,41.6965C 35.8343,41.9243 36.6811,42.4354 37.3159,43.2299C 37.9507,44.0244 38.2681,44.9843 38.2681,46.1096C 38.2681,47.742 37.6799,49.133 36.5035,50.2827C 35.3271,51.4324 33.8637,52.0073 32.1133,52.0073C 30.4521,52.0073 29.0751,51.4961 27.9825,50.4739C 26.8898,49.4516 26.2557,48.1148 26.0801,46.4635 Z M 48.0047,52.0073L 45.0042,52.0073L 45.0042,38.5053C 43.6649,39.8964 42.157,40.7849 40.3412,41.4502L 40.3412,37.7553C 41.2997,37.4474 42.3405,36.8645 43.4633,36.0068C 44.5862,35.149 45.3572,34.1483 45.7762,33.0046L 48.0047,33.0046L 48.0047,52.0073 Z M 18.0025,57.0082L 18.0025,23.0033L 23.0032,23.0033L 23.0032,20.0029C 23.0033,18.898 23.8988,18.0026 25.0035,18.0026L 29.004,18.0026C 30.1087,18.0026 31.0042,18.898 31.0043,20.0026L 31.0043,23.0033L 45.0063,23.0033L 45.0062,20.0026C 45.0062,18.8979 45.9018,18.0023 47.0065,18.0023L 51.0071,18.0023C 52.1118,18.0023 53.0073,18.8979 53.0073,20.0026L 53.0074,23.0033L 58.0081,23.0033L 58.0081,57.0082L 18.0025,57.0082 Z M 21.0029,54.0078L 55.0076,54.0078L 55.0076,31.0044L 21.0029,31.0044L 21.0029,54.0078 Z M 48.5067,20.0029C 47.6781,20.0029 47.0065,20.6746 47.0065,21.5031L 47.0065,24.5036C 47.0065,25.3321 47.6781,26.0038 48.5067,26.0038L 49.5068,26.0038C 50.3354,26.0038 51.007,25.3321 51.007,24.5036L 51.007,21.5031C 51.007,20.6746 50.3354,20.0029 49.5068,20.0029L 48.5067,20.0029 Z M 26.5037,20.0029C 25.6751,20.0029 25.0035,20.6746 25.0035,21.5031L 25.0035,24.5035C 25.0035,25.3321 25.6751,26.0037 26.5037,26.0037L 27.5038,26.0037C 28.3324,26.0037 29.004,25.3321 29.004,24.5035L 29.004,21.5031C 29.004,20.6746 28.3324,20.0029 27.5038,20.0029L 26.5037,20.0029 Z "/>
</Canvas>
<Canvas x:Key="appbar_calendar_day" Width="76.0106" Height="76.0106" Clip="F1 M 0,0L 76.0106,0L 76.0106,76.0106L 0,76.0106L 0,0">
<Path Width="40.0056" Height="39.0058" Canvas.Left="18.0025" Canvas.Top="18.0023" Stretch="Fill
gitextract_li59bh28/
├── .dockerignore
├── .gitattributes
├── .github/
│ └── workflows/
│ ├── Build.yml
│ └── Release.yml
├── .gitignore
├── .gitmodules
├── .travis.yml
├── .vscode/
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
├── Dockerfile
├── KeymapDownloader/
│ ├── .gitignore
│ ├── KeymapDownloader/
│ │ ├── App.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── CustomHID.cs
│ │ ├── FodyWeavers.xml
│ │ ├── FodyWeavers.xsd
│ │ ├── KeymapDownloader.csproj
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── Resources/
│ │ │ ├── Entypo-license.txt
│ │ │ ├── Icons.xaml
│ │ │ ├── IconsNonShared.xaml
│ │ │ └── WindowsIcons-license.txt
│ │ └── packages.config
│ └── KeymapDownloader.sln
├── README.md
├── SDK/
│ ├── components/
│ │ ├── ble/
│ │ │ ├── ble_advertising/
│ │ │ │ ├── ble_advertising.c
│ │ │ │ └── ble_advertising.h
│ │ │ ├── ble_link_ctx_manager/
│ │ │ │ ├── ble_link_ctx_manager.c
│ │ │ │ └── ble_link_ctx_manager.h
│ │ │ ├── ble_racp/
│ │ │ │ ├── ble_racp.c
│ │ │ │ └── ble_racp.h
│ │ │ ├── ble_services/
│ │ │ │ ├── ble_ancs_c/
│ │ │ │ │ ├── ancs_app_attr_get.c
│ │ │ │ │ ├── ancs_app_attr_get.h
│ │ │ │ │ ├── ancs_attr_parser.c
│ │ │ │ │ ├── ancs_attr_parser.h
│ │ │ │ │ ├── nrf_ble_ancs_c.c
│ │ │ │ │ └── nrf_ble_ancs_c.h
│ │ │ │ ├── ble_ans_c/
│ │ │ │ │ ├── ble_ans_c.c
│ │ │ │ │ └── ble_ans_c.h
│ │ │ │ ├── ble_bas/
│ │ │ │ │ ├── ble_bas.c
│ │ │ │ │ └── ble_bas.h
│ │ │ │ ├── ble_bas_c/
│ │ │ │ │ ├── ble_bas_c.c
│ │ │ │ │ └── ble_bas_c.h
│ │ │ │ ├── ble_bps/
│ │ │ │ │ ├── ble_bps.c
│ │ │ │ │ └── ble_bps.h
│ │ │ │ ├── ble_cscs/
│ │ │ │ │ ├── ble_cscs.c
│ │ │ │ │ ├── ble_cscs.h
│ │ │ │ │ ├── ble_sc_ctrlpt.c
│ │ │ │ │ └── ble_sc_ctrlpt.h
│ │ │ │ ├── ble_cts_c/
│ │ │ │ │ ├── ble_cts_c.c
│ │ │ │ │ └── ble_cts_c.h
│ │ │ │ ├── ble_dfu/
│ │ │ │ │ ├── ble_dfu.c
│ │ │ │ │ ├── ble_dfu.h
│ │ │ │ │ ├── ble_dfu_bonded.c
│ │ │ │ │ └── ble_dfu_unbonded.c
│ │ │ │ ├── ble_dis/
│ │ │ │ │ ├── ble_dis.c
│ │ │ │ │ └── ble_dis.h
│ │ │ │ ├── ble_dis_c/
│ │ │ │ │ ├── ble_dis_c.c
│ │ │ │ │ └── ble_dis_c.h
│ │ │ │ ├── ble_escs/
│ │ │ │ │ ├── escs_defs.h
│ │ │ │ │ ├── nrf_ble_escs.c
│ │ │ │ │ └── nrf_ble_escs.h
│ │ │ │ ├── ble_gls/
│ │ │ │ │ ├── ble_gls.c
│ │ │ │ │ ├── ble_gls.h
│ │ │ │ │ ├── ble_gls_db.c
│ │ │ │ │ └── ble_gls_db.h
│ │ │ │ ├── ble_hids/
│ │ │ │ │ ├── ble_hids.c
│ │ │ │ │ └── ble_hids.h
│ │ │ │ ├── ble_hrs/
│ │ │ │ │ ├── ble_hrs.c
│ │ │ │ │ └── ble_hrs.h
│ │ │ │ ├── ble_hrs_c/
│ │ │ │ │ ├── ble_hrs_c.c
│ │ │ │ │ └── ble_hrs_c.h
│ │ │ │ ├── ble_hts/
│ │ │ │ │ ├── ble_hts.c
│ │ │ │ │ └── ble_hts.h
│ │ │ │ ├── ble_ias/
│ │ │ │ │ ├── ble_ias.c
│ │ │ │ │ └── ble_ias.h
│ │ │ │ ├── ble_ias_c/
│ │ │ │ │ ├── ble_ias_c.c
│ │ │ │ │ └── ble_ias_c.h
│ │ │ │ ├── ble_ipsp/
│ │ │ │ │ ├── ble_ipsp.c
│ │ │ │ │ └── ble_ipsp.h
│ │ │ │ ├── ble_lbs/
│ │ │ │ │ ├── ble_lbs.c
│ │ │ │ │ └── ble_lbs.h
│ │ │ │ ├── ble_lbs_c/
│ │ │ │ │ ├── ble_lbs_c.c
│ │ │ │ │ └── ble_lbs_c.h
│ │ │ │ ├── ble_lls/
│ │ │ │ │ ├── ble_lls.c
│ │ │ │ │ └── ble_lls.h
│ │ │ │ ├── ble_nus/
│ │ │ │ │ ├── ble_nus.c
│ │ │ │ │ └── ble_nus.h
│ │ │ │ ├── ble_nus_c/
│ │ │ │ │ ├── ble_nus_c.c
│ │ │ │ │ └── ble_nus_c.h
│ │ │ │ ├── ble_rscs/
│ │ │ │ │ ├── ble_rscs.c
│ │ │ │ │ └── ble_rscs.h
│ │ │ │ ├── ble_rscs_c/
│ │ │ │ │ ├── ble_rscs_c.c
│ │ │ │ │ └── ble_rscs_c.h
│ │ │ │ ├── ble_tps/
│ │ │ │ │ ├── ble_tps.c
│ │ │ │ │ └── ble_tps.h
│ │ │ │ ├── eddystone/
│ │ │ │ │ ├── es.h
│ │ │ │ │ ├── es_adv.c
│ │ │ │ │ ├── es_adv.h
│ │ │ │ │ ├── es_adv_frame.c
│ │ │ │ │ ├── es_adv_frame.h
│ │ │ │ │ ├── es_adv_timing.c
│ │ │ │ │ ├── es_adv_timing.h
│ │ │ │ │ ├── es_adv_timing_resolver.c
│ │ │ │ │ ├── es_adv_timing_resolver.h
│ │ │ │ │ ├── es_battery_voltage.h
│ │ │ │ │ ├── es_battery_voltage_saadc.c
│ │ │ │ │ ├── es_flash.c
│ │ │ │ │ ├── es_flash.h
│ │ │ │ │ ├── es_gatts.c
│ │ │ │ │ ├── es_gatts.h
│ │ │ │ │ ├── es_gatts_read.c
│ │ │ │ │ ├── es_gatts_read.h
│ │ │ │ │ ├── es_gatts_write.c
│ │ │ │ │ ├── es_gatts_write.h
│ │ │ │ │ ├── es_security.c
│ │ │ │ │ ├── es_security.h
│ │ │ │ │ ├── es_slot.c
│ │ │ │ │ ├── es_slot.h
│ │ │ │ │ ├── es_slot_reg.c
│ │ │ │ │ ├── es_slot_reg.h
│ │ │ │ │ ├── es_stopwatch.c
│ │ │ │ │ ├── es_stopwatch.h
│ │ │ │ │ ├── es_tlm.c
│ │ │ │ │ ├── es_tlm.h
│ │ │ │ │ ├── es_util.h
│ │ │ │ │ ├── nrf_ble_es.c
│ │ │ │ │ └── nrf_ble_es.h
│ │ │ │ ├── experimental_ble_lns/
│ │ │ │ │ ├── ble_ln_common.h
│ │ │ │ │ ├── ble_ln_cp.c
│ │ │ │ │ ├── ble_ln_cp.h
│ │ │ │ │ ├── ble_ln_db.c
│ │ │ │ │ ├── ble_ln_db.h
│ │ │ │ │ ├── ble_lns.c
│ │ │ │ │ └── ble_lns.h
│ │ │ │ ├── experimental_ble_ots/
│ │ │ │ │ ├── ble_ots.c
│ │ │ │ │ ├── ble_ots.h
│ │ │ │ │ ├── ble_ots_l2cap.c
│ │ │ │ │ ├── ble_ots_l2cap.h
│ │ │ │ │ ├── ble_ots_oacp.c
│ │ │ │ │ ├── ble_ots_oacp.h
│ │ │ │ │ ├── ble_ots_object.c
│ │ │ │ │ └── ble_ots_object.h
│ │ │ │ ├── experimental_gatts_c/
│ │ │ │ │ ├── nrf_ble_gatts_c.c
│ │ │ │ │ └── nrf_ble_gatts_c.h
│ │ │ │ ├── experimental_nrf_ble_cgms/
│ │ │ │ │ ├── cgms_db.c
│ │ │ │ │ ├── cgms_db.h
│ │ │ │ │ ├── cgms_meas.c
│ │ │ │ │ ├── cgms_meas.h
│ │ │ │ │ ├── cgms_racp.c
│ │ │ │ │ ├── cgms_racp.h
│ │ │ │ │ ├── cgms_socp.c
│ │ │ │ │ ├── cgms_socp.h
│ │ │ │ │ ├── cgms_sst.c
│ │ │ │ │ ├── cgms_sst.h
│ │ │ │ │ ├── nrf_ble_cgms.c
│ │ │ │ │ └── nrf_ble_cgms.h
│ │ │ │ ├── experimental_nrf_ble_ots_c/
│ │ │ │ │ ├── nrf_ble_ots_c.c
│ │ │ │ │ ├── nrf_ble_ots_c.h
│ │ │ │ │ ├── nrf_ble_ots_c_l2cap.c
│ │ │ │ │ ├── nrf_ble_ots_c_l2cap.h
│ │ │ │ │ ├── nrf_ble_ots_c_oacp.c
│ │ │ │ │ └── nrf_ble_ots_c_oacp.h
│ │ │ │ └── nrf_ble_bms/
│ │ │ │ ├── nrf_ble_bms.c
│ │ │ │ └── nrf_ble_bms.h
│ │ │ ├── common/
│ │ │ │ ├── ble_advdata.c
│ │ │ │ ├── ble_advdata.h
│ │ │ │ ├── ble_conn_params.c
│ │ │ │ ├── ble_conn_params.h
│ │ │ │ ├── ble_conn_state.c
│ │ │ │ ├── ble_conn_state.h
│ │ │ │ ├── ble_date_time.h
│ │ │ │ ├── ble_gatt_db.h
│ │ │ │ ├── ble_sensor_location.h
│ │ │ │ ├── ble_srv_common.c
│ │ │ │ └── ble_srv_common.h
│ │ │ ├── nrf_ble_gatt/
│ │ │ │ ├── nrf_ble_gatt.c
│ │ │ │ └── nrf_ble_gatt.h
│ │ │ ├── nrf_ble_qwr/
│ │ │ │ ├── nrf_ble_qwr.c
│ │ │ │ └── nrf_ble_qwr.h
│ │ │ ├── nrf_ble_scan/
│ │ │ │ ├── nrf_ble_scan.c
│ │ │ │ └── nrf_ble_scan.h
│ │ │ └── peer_manager/
│ │ │ ├── auth_status_tracker.c
│ │ │ ├── auth_status_tracker.h
│ │ │ ├── gatt_cache_manager.c
│ │ │ ├── gatt_cache_manager.h
│ │ │ ├── gatts_cache_manager.c
│ │ │ ├── gatts_cache_manager.h
│ │ │ ├── id_manager.c
│ │ │ ├── id_manager.h
│ │ │ ├── nrf_ble_lesc.c
│ │ │ ├── nrf_ble_lesc.h
│ │ │ ├── peer_data_storage.c
│ │ │ ├── peer_data_storage.h
│ │ │ ├── peer_database.c
│ │ │ ├── peer_database.h
│ │ │ ├── peer_id.c
│ │ │ ├── peer_id.h
│ │ │ ├── peer_manager.c
│ │ │ ├── peer_manager.h
│ │ │ ├── peer_manager_handler.c
│ │ │ ├── peer_manager_handler.h
│ │ │ ├── peer_manager_internal.h
│ │ │ ├── peer_manager_types.h
│ │ │ ├── pm_buffer.c
│ │ │ ├── pm_buffer.h
│ │ │ ├── security_dispatcher.c
│ │ │ ├── security_dispatcher.h
│ │ │ ├── security_manager.c
│ │ │ └── security_manager.h
│ │ ├── boards/
│ │ │ ├── arduino_joystick_shield_v1a.h
│ │ │ ├── arduino_primo.h
│ │ │ ├── boards.c
│ │ │ ├── boards.h
│ │ │ ├── d52_starterkit.h
│ │ │ ├── n5_starterkit.h
│ │ │ ├── nrf6310.h
│ │ │ ├── pca10000.h
│ │ │ ├── pca10001.h
│ │ │ ├── pca10003.h
│ │ │ ├── pca10028.h
│ │ │ ├── pca10031.h
│ │ │ ├── pca10036.h
│ │ │ ├── pca10040.h
│ │ │ ├── pca10056.h
│ │ │ ├── pca10059.h
│ │ │ ├── pca10100.h
│ │ │ ├── pca10112.h
│ │ │ ├── pca20006.h
│ │ │ ├── pca20020.h
│ │ │ └── wt51822.h
│ │ ├── libraries/
│ │ │ ├── atomic/
│ │ │ │ ├── nrf_atomic.c
│ │ │ │ ├── nrf_atomic.h
│ │ │ │ ├── nrf_atomic_internal.h
│ │ │ │ └── nrf_atomic_sanity_check.h
│ │ │ ├── atomic_fifo/
│ │ │ │ ├── nrf_atfifo.c
│ │ │ │ ├── nrf_atfifo.h
│ │ │ │ └── nrf_atfifo_internal.h
│ │ │ ├── atomic_flags/
│ │ │ │ ├── nrf_atflags.c
│ │ │ │ └── nrf_atflags.h
│ │ │ ├── balloc/
│ │ │ │ ├── nrf_balloc.c
│ │ │ │ └── nrf_balloc.h
│ │ │ ├── block_dev/
│ │ │ │ ├── empty/
│ │ │ │ │ ├── nrf_block_dev_empty.c
│ │ │ │ │ └── nrf_block_dev_empty.h
│ │ │ │ ├── nrf_block_dev.h
│ │ │ │ ├── qspi/
│ │ │ │ │ ├── nrf_block_dev_qspi.c
│ │ │ │ │ ├── nrf_block_dev_qspi.h
│ │ │ │ │ ├── nrf_serial_flash_params.c
│ │ │ │ │ └── nrf_serial_flash_params.h
│ │ │ │ ├── ram/
│ │ │ │ │ ├── nrf_block_dev_ram.c
│ │ │ │ │ └── nrf_block_dev_ram.h
│ │ │ │ └── sdc/
│ │ │ │ ├── nrf_block_dev_sdc.c
│ │ │ │ └── nrf_block_dev_sdc.h
│ │ │ ├── bootloader/
│ │ │ │ ├── ant_dfu/
│ │ │ │ │ └── nrf_dfu_ant.c
│ │ │ │ ├── ble_dfu/
│ │ │ │ │ ├── nrf_dfu_ble.c
│ │ │ │ │ ├── nrf_dfu_ble.h
│ │ │ │ │ └── nrf_dfu_ble_svci_bond_sharing.h
│ │ │ │ ├── dfu/
│ │ │ │ │ ├── dfu-cc.options
│ │ │ │ │ ├── dfu-cc.pb.c
│ │ │ │ │ ├── dfu-cc.pb.h
│ │ │ │ │ ├── dfu-cc.proto
│ │ │ │ │ ├── nrf_dfu.c
│ │ │ │ │ ├── nrf_dfu.h
│ │ │ │ │ ├── nrf_dfu_flash.c
│ │ │ │ │ ├── nrf_dfu_flash.h
│ │ │ │ │ ├── nrf_dfu_handling_error.c
│ │ │ │ │ ├── nrf_dfu_handling_error.h
│ │ │ │ │ ├── nrf_dfu_mbr.c
│ │ │ │ │ ├── nrf_dfu_mbr.h
│ │ │ │ │ ├── nrf_dfu_req_handler.c
│ │ │ │ │ ├── nrf_dfu_req_handler.h
│ │ │ │ │ ├── nrf_dfu_settings.c
│ │ │ │ │ ├── nrf_dfu_settings.h
│ │ │ │ │ ├── nrf_dfu_settings_svci.c
│ │ │ │ │ ├── nrf_dfu_svci.c
│ │ │ │ │ ├── nrf_dfu_svci_handler.c
│ │ │ │ │ ├── nrf_dfu_transport.c
│ │ │ │ │ ├── nrf_dfu_transport.h
│ │ │ │ │ ├── nrf_dfu_trigger_usb.c
│ │ │ │ │ ├── nrf_dfu_trigger_usb.h
│ │ │ │ │ ├── nrf_dfu_types.h
│ │ │ │ │ ├── nrf_dfu_utils.c
│ │ │ │ │ ├── nrf_dfu_utils.h
│ │ │ │ │ ├── nrf_dfu_validation.c
│ │ │ │ │ ├── nrf_dfu_validation.h
│ │ │ │ │ ├── nrf_dfu_ver_validation.c
│ │ │ │ │ └── nrf_dfu_ver_validation.h
│ │ │ │ ├── nrf_bootloader.c
│ │ │ │ ├── nrf_bootloader.h
│ │ │ │ ├── nrf_bootloader_app_start.c
│ │ │ │ ├── nrf_bootloader_app_start.h
│ │ │ │ ├── nrf_bootloader_app_start_final.c
│ │ │ │ ├── nrf_bootloader_dfu_timers.c
│ │ │ │ ├── nrf_bootloader_dfu_timers.h
│ │ │ │ ├── nrf_bootloader_fw_activation.c
│ │ │ │ ├── nrf_bootloader_fw_activation.h
│ │ │ │ ├── nrf_bootloader_info.c
│ │ │ │ ├── nrf_bootloader_info.h
│ │ │ │ ├── nrf_bootloader_wdt.c
│ │ │ │ ├── nrf_bootloader_wdt.h
│ │ │ │ └── serial_dfu/
│ │ │ │ ├── nrf_dfu_serial.c
│ │ │ │ ├── nrf_dfu_serial.h
│ │ │ │ ├── nrf_dfu_serial_uart.c
│ │ │ │ └── nrf_dfu_serial_usb.c
│ │ │ ├── bsp/
│ │ │ │ ├── bsp.c
│ │ │ │ ├── bsp.h
│ │ │ │ ├── bsp_btn_ant.c
│ │ │ │ ├── bsp_btn_ant.h
│ │ │ │ ├── bsp_btn_ble.c
│ │ │ │ ├── bsp_btn_ble.h
│ │ │ │ ├── bsp_cli.c
│ │ │ │ ├── bsp_cli.h
│ │ │ │ ├── bsp_config.h
│ │ │ │ ├── bsp_nfc.c
│ │ │ │ └── bsp_nfc.h
│ │ │ ├── button/
│ │ │ │ ├── app_button.c
│ │ │ │ └── app_button.h
│ │ │ ├── cli/
│ │ │ │ ├── ble_uart/
│ │ │ │ │ ├── nrf_cli_ble_uart.c
│ │ │ │ │ └── nrf_cli_ble_uart.h
│ │ │ │ ├── cdc_acm/
│ │ │ │ │ ├── nrf_cli_cdc_acm.c
│ │ │ │ │ └── nrf_cli_cdc_acm.h
│ │ │ │ ├── cli_utils_cmds.c
│ │ │ │ ├── libuarte/
│ │ │ │ │ ├── nrf_cli_libuarte.c
│ │ │ │ │ └── nrf_cli_libuarte.h
│ │ │ │ ├── nrf_cli.c
│ │ │ │ ├── nrf_cli.h
│ │ │ │ ├── nrf_cli_types.h
│ │ │ │ ├── nrf_cli_vt100.h
│ │ │ │ ├── rtt/
│ │ │ │ │ ├── nrf_cli_rtt.c
│ │ │ │ │ └── nrf_cli_rtt.h
│ │ │ │ └── uart/
│ │ │ │ ├── nrf_cli_uart.c
│ │ │ │ └── nrf_cli_uart.h
│ │ │ ├── crc16/
│ │ │ │ ├── crc16.c
│ │ │ │ └── crc16.h
│ │ │ ├── crc32/
│ │ │ │ ├── crc32.c
│ │ │ │ └── crc32.h
│ │ │ ├── crypto/
│ │ │ │ ├── backend/
│ │ │ │ │ ├── cc310/
│ │ │ │ │ │ ├── cc310_backend_aes.c
│ │ │ │ │ │ ├── cc310_backend_aes.h
│ │ │ │ │ │ ├── cc310_backend_aes_aead.c
│ │ │ │ │ │ ├── cc310_backend_aes_aead.h
│ │ │ │ │ │ ├── cc310_backend_chacha_poly_aead.c
│ │ │ │ │ │ ├── cc310_backend_chacha_poly_aead.h
│ │ │ │ │ │ ├── cc310_backend_ecc.c
│ │ │ │ │ │ ├── cc310_backend_ecc.h
│ │ │ │ │ │ ├── cc310_backend_ecdh.c
│ │ │ │ │ │ ├── cc310_backend_ecdh.h
│ │ │ │ │ │ ├── cc310_backend_ecdsa.c
│ │ │ │ │ │ ├── cc310_backend_ecdsa.h
│ │ │ │ │ │ ├── cc310_backend_eddsa.c
│ │ │ │ │ │ ├── cc310_backend_eddsa.h
│ │ │ │ │ │ ├── cc310_backend_hash.c
│ │ │ │ │ │ ├── cc310_backend_hash.h
│ │ │ │ │ │ ├── cc310_backend_hmac.c
│ │ │ │ │ │ ├── cc310_backend_hmac.h
│ │ │ │ │ │ ├── cc310_backend_init.c
│ │ │ │ │ │ ├── cc310_backend_mutex.c
│ │ │ │ │ │ ├── cc310_backend_mutex.h
│ │ │ │ │ │ ├── cc310_backend_rng.c
│ │ │ │ │ │ ├── cc310_backend_rng.h
│ │ │ │ │ │ ├── cc310_backend_shared.c
│ │ │ │ │ │ └── cc310_backend_shared.h
│ │ │ │ │ ├── cc310_bl/
│ │ │ │ │ │ ├── cc310_bl_backend_ecc.c
│ │ │ │ │ │ ├── cc310_bl_backend_ecc.h
│ │ │ │ │ │ ├── cc310_bl_backend_ecdh.h
│ │ │ │ │ │ ├── cc310_bl_backend_ecdsa.c
│ │ │ │ │ │ ├── cc310_bl_backend_ecdsa.h
│ │ │ │ │ │ ├── cc310_bl_backend_hash.c
│ │ │ │ │ │ ├── cc310_bl_backend_hash.h
│ │ │ │ │ │ ├── cc310_bl_backend_init.c
│ │ │ │ │ │ ├── cc310_bl_backend_shared.c
│ │ │ │ │ │ └── cc310_bl_backend_shared.h
│ │ │ │ │ ├── cifra/
│ │ │ │ │ │ ├── cifra_backend_aes_aead.c
│ │ │ │ │ │ └── cifra_backend_aes_aead.h
│ │ │ │ │ ├── mbedtls/
│ │ │ │ │ │ ├── mbedtls_backend_aes.c
│ │ │ │ │ │ ├── mbedtls_backend_aes.h
│ │ │ │ │ │ ├── mbedtls_backend_aes_aead.c
│ │ │ │ │ │ ├── mbedtls_backend_aes_aead.h
│ │ │ │ │ │ ├── mbedtls_backend_ecc.c
│ │ │ │ │ │ ├── mbedtls_backend_ecc.h
│ │ │ │ │ │ ├── mbedtls_backend_ecdh.c
│ │ │ │ │ │ ├── mbedtls_backend_ecdh.h
│ │ │ │ │ │ ├── mbedtls_backend_ecdsa.c
│ │ │ │ │ │ ├── mbedtls_backend_ecdsa.h
│ │ │ │ │ │ ├── mbedtls_backend_hash.c
│ │ │ │ │ │ ├── mbedtls_backend_hash.h
│ │ │ │ │ │ ├── mbedtls_backend_hmac.c
│ │ │ │ │ │ ├── mbedtls_backend_hmac.h
│ │ │ │ │ │ └── mbedtls_backend_init.c
│ │ │ │ │ ├── micro_ecc/
│ │ │ │ │ │ ├── micro_ecc_backend_ecc.c
│ │ │ │ │ │ ├── micro_ecc_backend_ecc.h
│ │ │ │ │ │ ├── micro_ecc_backend_ecdh.c
│ │ │ │ │ │ ├── micro_ecc_backend_ecdh.h
│ │ │ │ │ │ ├── micro_ecc_backend_ecdsa.c
│ │ │ │ │ │ ├── micro_ecc_backend_ecdsa.h
│ │ │ │ │ │ └── micro_ecc_backend_shared.h
│ │ │ │ │ ├── nrf_hw/
│ │ │ │ │ │ ├── nrf_hw_backend_init.c
│ │ │ │ │ │ ├── nrf_hw_backend_rng.c
│ │ │ │ │ │ ├── nrf_hw_backend_rng.h
│ │ │ │ │ │ ├── nrf_hw_backend_rng_mbedtls.c
│ │ │ │ │ │ └── nrf_hw_backend_rng_mbedtls.h
│ │ │ │ │ ├── nrf_sw/
│ │ │ │ │ │ ├── nrf_sw_backend_hash.c
│ │ │ │ │ │ └── nrf_sw_backend_hash.h
│ │ │ │ │ ├── oberon/
│ │ │ │ │ │ ├── oberon_backend_chacha_poly_aead.c
│ │ │ │ │ │ ├── oberon_backend_chacha_poly_aead.h
│ │ │ │ │ │ ├── oberon_backend_ecc.c
│ │ │ │ │ │ ├── oberon_backend_ecc.h
│ │ │ │ │ │ ├── oberon_backend_ecdh.c
│ │ │ │ │ │ ├── oberon_backend_ecdh.h
│ │ │ │ │ │ ├── oberon_backend_ecdsa.c
│ │ │ │ │ │ ├── oberon_backend_ecdsa.h
│ │ │ │ │ │ ├── oberon_backend_eddsa.c
│ │ │ │ │ │ ├── oberon_backend_eddsa.h
│ │ │ │ │ │ ├── oberon_backend_hash.c
│ │ │ │ │ │ ├── oberon_backend_hash.h
│ │ │ │ │ │ ├── oberon_backend_hmac.c
│ │ │ │ │ │ └── oberon_backend_hmac.h
│ │ │ │ │ └── optiga/
│ │ │ │ │ ├── optiga_backend_ecc.c
│ │ │ │ │ ├── optiga_backend_ecc.h
│ │ │ │ │ ├── optiga_backend_ecdh.c
│ │ │ │ │ ├── optiga_backend_ecdh.h
│ │ │ │ │ ├── optiga_backend_ecdsa.c
│ │ │ │ │ ├── optiga_backend_ecdsa.h
│ │ │ │ │ ├── optiga_backend_init.c
│ │ │ │ │ ├── optiga_backend_rng.c
│ │ │ │ │ ├── optiga_backend_rng.h
│ │ │ │ │ ├── optiga_backend_utils.c
│ │ │ │ │ └── optiga_backend_utils.h
│ │ │ │ ├── nrf_crypto.h
│ │ │ │ ├── nrf_crypto_aead.c
│ │ │ │ ├── nrf_crypto_aead.h
│ │ │ │ ├── nrf_crypto_aead_backend.h
│ │ │ │ ├── nrf_crypto_aead_shared.h
│ │ │ │ ├── nrf_crypto_aes.c
│ │ │ │ ├── nrf_crypto_aes.h
│ │ │ │ ├── nrf_crypto_aes_backend.h
│ │ │ │ ├── nrf_crypto_aes_shared.c
│ │ │ │ ├── nrf_crypto_aes_shared.h
│ │ │ │ ├── nrf_crypto_ecc.c
│ │ │ │ ├── nrf_crypto_ecc.h
│ │ │ │ ├── nrf_crypto_ecc_backend.h
│ │ │ │ ├── nrf_crypto_ecc_shared.h
│ │ │ │ ├── nrf_crypto_ecdh.c
│ │ │ │ ├── nrf_crypto_ecdh.h
│ │ │ │ ├── nrf_crypto_ecdh_backend.h
│ │ │ │ ├── nrf_crypto_ecdh_shared.h
│ │ │ │ ├── nrf_crypto_ecdsa.c
│ │ │ │ ├── nrf_crypto_ecdsa.h
│ │ │ │ ├── nrf_crypto_ecdsa_backend.h
│ │ │ │ ├── nrf_crypto_ecdsa_shared.h
│ │ │ │ ├── nrf_crypto_eddsa.c
│ │ │ │ ├── nrf_crypto_eddsa.h
│ │ │ │ ├── nrf_crypto_eddsa_backend.h
│ │ │ │ ├── nrf_crypto_eddsa_shared.h
│ │ │ │ ├── nrf_crypto_error.c
│ │ │ │ ├── nrf_crypto_error.h
│ │ │ │ ├── nrf_crypto_hash.c
│ │ │ │ ├── nrf_crypto_hash.h
│ │ │ │ ├── nrf_crypto_hash_backend.h
│ │ │ │ ├── nrf_crypto_hash_shared.h
│ │ │ │ ├── nrf_crypto_hkdf.c
│ │ │ │ ├── nrf_crypto_hkdf.h
│ │ │ │ ├── nrf_crypto_hmac.c
│ │ │ │ ├── nrf_crypto_hmac.h
│ │ │ │ ├── nrf_crypto_hmac_backend.h
│ │ │ │ ├── nrf_crypto_hmac_shared.h
│ │ │ │ ├── nrf_crypto_init.c
│ │ │ │ ├── nrf_crypto_init.h
│ │ │ │ ├── nrf_crypto_mem.h
│ │ │ │ ├── nrf_crypto_rng.c
│ │ │ │ ├── nrf_crypto_rng.h
│ │ │ │ ├── nrf_crypto_rng_backend.h
│ │ │ │ ├── nrf_crypto_rng_shared.h
│ │ │ │ ├── nrf_crypto_shared.c
│ │ │ │ ├── nrf_crypto_shared.h
│ │ │ │ └── nrf_crypto_types.h
│ │ │ ├── csense/
│ │ │ │ ├── nrf_csense.c
│ │ │ │ ├── nrf_csense.h
│ │ │ │ └── nrf_csense_macros.h
│ │ │ ├── csense_drv/
│ │ │ │ ├── nrf_drv_csense.c
│ │ │ │ └── nrf_drv_csense.h
│ │ │ ├── delay/
│ │ │ │ └── nrf_delay.h
│ │ │ ├── ecc/
│ │ │ │ ├── ecc.c
│ │ │ │ └── ecc.h
│ │ │ ├── experimental_section_vars/
│ │ │ │ ├── nrf_section.h
│ │ │ │ ├── nrf_section_iter.c
│ │ │ │ └── nrf_section_iter.h
│ │ │ ├── experimental_task_manager/
│ │ │ │ ├── task_manager.c
│ │ │ │ ├── task_manager.h
│ │ │ │ ├── task_manager_core_armgcc.S
│ │ │ │ ├── task_manager_core_iar.s
│ │ │ │ └── task_manager_core_keil.s
│ │ │ ├── fds/
│ │ │ │ ├── fds.c
│ │ │ │ ├── fds.h
│ │ │ │ └── fds_internal_defs.h
│ │ │ ├── fifo/
│ │ │ │ ├── app_fifo.c
│ │ │ │ └── app_fifo.h
│ │ │ ├── fstorage/
│ │ │ │ ├── nrf_fstorage.c
│ │ │ │ ├── nrf_fstorage.h
│ │ │ │ ├── nrf_fstorage_nvmc.c
│ │ │ │ ├── nrf_fstorage_nvmc.h
│ │ │ │ ├── nrf_fstorage_sd.c
│ │ │ │ └── nrf_fstorage_sd.h
│ │ │ ├── gfx/
│ │ │ │ ├── nrf_gfx.c
│ │ │ │ ├── nrf_gfx.h
│ │ │ │ └── nrf_lcd.h
│ │ │ ├── gpiote/
│ │ │ │ ├── app_gpiote.c
│ │ │ │ └── app_gpiote.h
│ │ │ ├── hardfault/
│ │ │ │ ├── hardfault.h
│ │ │ │ ├── hardfault_genhf.h
│ │ │ │ ├── hardfault_implementation.c
│ │ │ │ ├── nrf51/
│ │ │ │ │ └── handler/
│ │ │ │ │ ├── hardfault_handler_gcc.c
│ │ │ │ │ ├── hardfault_handler_iar.c
│ │ │ │ │ └── hardfault_handler_keil.c
│ │ │ │ └── nrf52/
│ │ │ │ └── handler/
│ │ │ │ ├── hardfault_handler_gcc.c
│ │ │ │ ├── hardfault_handler_iar.c
│ │ │ │ └── hardfault_handler_keil.c
│ │ │ ├── hci/
│ │ │ │ ├── hci_mem_pool.c
│ │ │ │ ├── hci_mem_pool.h
│ │ │ │ ├── hci_slip.c
│ │ │ │ ├── hci_slip.h
│ │ │ │ ├── hci_transport.c
│ │ │ │ └── hci_transport.h
│ │ │ ├── led_softblink/
│ │ │ │ ├── led_softblink.c
│ │ │ │ └── led_softblink.h
│ │ │ ├── log/
│ │ │ │ ├── nrf_log.h
│ │ │ │ ├── nrf_log_backend_flash.h
│ │ │ │ ├── nrf_log_backend_interface.h
│ │ │ │ ├── nrf_log_backend_rtt.h
│ │ │ │ ├── nrf_log_backend_uart.h
│ │ │ │ ├── nrf_log_ctrl.h
│ │ │ │ ├── nrf_log_default_backends.h
│ │ │ │ ├── nrf_log_instance.h
│ │ │ │ ├── nrf_log_str_formatter.h
│ │ │ │ ├── nrf_log_types.h
│ │ │ │ └── src/
│ │ │ │ ├── nrf_log_backend_flash.c
│ │ │ │ ├── nrf_log_backend_rtt.c
│ │ │ │ ├── nrf_log_backend_serial.c
│ │ │ │ ├── nrf_log_backend_serial.h
│ │ │ │ ├── nrf_log_backend_uart.c
│ │ │ │ ├── nrf_log_ctrl_internal.h
│ │ │ │ ├── nrf_log_default_backends.c
│ │ │ │ ├── nrf_log_frontend.c
│ │ │ │ ├── nrf_log_internal.h
│ │ │ │ └── nrf_log_str_formatter.c
│ │ │ ├── low_power_pwm/
│ │ │ │ ├── low_power_pwm.c
│ │ │ │ └── low_power_pwm.h
│ │ │ ├── mem_manager/
│ │ │ │ ├── mem_manager.c
│ │ │ │ └── mem_manager.h
│ │ │ ├── memobj/
│ │ │ │ ├── nrf_memobj.c
│ │ │ │ └── nrf_memobj.h
│ │ │ ├── mpu/
│ │ │ │ ├── nrf_mpu_lib.c
│ │ │ │ └── nrf_mpu_lib.h
│ │ │ ├── mutex/
│ │ │ │ └── nrf_mtx.h
│ │ │ ├── pwm/
│ │ │ │ ├── app_pwm.c
│ │ │ │ └── app_pwm.h
│ │ │ ├── pwr_mgmt/
│ │ │ │ ├── nrf_pwr_mgmt.c
│ │ │ │ └── nrf_pwr_mgmt.h
│ │ │ ├── queue/
│ │ │ │ ├── nrf_queue.c
│ │ │ │ └── nrf_queue.h
│ │ │ ├── ringbuf/
│ │ │ │ ├── nrf_ringbuf.c
│ │ │ │ └── nrf_ringbuf.h
│ │ │ ├── scheduler/
│ │ │ │ ├── app_scheduler.c
│ │ │ │ ├── app_scheduler.h
│ │ │ │ └── app_scheduler_serconn.c
│ │ │ ├── sha256/
│ │ │ │ ├── sha256.c
│ │ │ │ └── sha256.h
│ │ │ ├── simple_timer/
│ │ │ │ ├── app_simple_timer.c
│ │ │ │ └── app_simple_timer.h
│ │ │ ├── slip/
│ │ │ │ ├── slip.c
│ │ │ │ └── slip.h
│ │ │ ├── sortlist/
│ │ │ │ ├── nrf_sortlist.c
│ │ │ │ └── nrf_sortlist.h
│ │ │ ├── spi_mngr/
│ │ │ │ ├── nrf_spi_mngr.c
│ │ │ │ └── nrf_spi_mngr.h
│ │ │ ├── stack_guard/
│ │ │ │ ├── nrf_stack_guard.c
│ │ │ │ └── nrf_stack_guard.h
│ │ │ ├── stack_info/
│ │ │ │ └── nrf_stack_info.h
│ │ │ ├── strerror/
│ │ │ │ ├── nrf_strerror.c
│ │ │ │ └── nrf_strerror.h
│ │ │ ├── svc/
│ │ │ │ ├── nrf_svc_function.h
│ │ │ │ ├── nrf_svc_handler.c
│ │ │ │ ├── nrf_svci.h
│ │ │ │ ├── nrf_svci_async_function.h
│ │ │ │ └── nrf_svci_async_handler.h
│ │ │ ├── timer/
│ │ │ │ ├── app_timer.c
│ │ │ │ ├── app_timer.h
│ │ │ │ ├── app_timer2.c
│ │ │ │ ├── app_timer_freertos.c
│ │ │ │ ├── app_timer_rtx.c
│ │ │ │ ├── drv_rtc.c
│ │ │ │ └── drv_rtc.h
│ │ │ ├── twi_mngr/
│ │ │ │ ├── nrf_twi_mngr.c
│ │ │ │ └── nrf_twi_mngr.h
│ │ │ ├── twi_sensor/
│ │ │ │ ├── nrf_twi_sensor.c
│ │ │ │ └── nrf_twi_sensor.h
│ │ │ ├── uart/
│ │ │ │ ├── app_uart.c
│ │ │ │ ├── app_uart.h
│ │ │ │ ├── app_uart_fifo.c
│ │ │ │ └── retarget.c
│ │ │ ├── usbd/
│ │ │ │ ├── app_usbd.c
│ │ │ │ ├── app_usbd.h
│ │ │ │ ├── app_usbd_class_base.h
│ │ │ │ ├── app_usbd_core.c
│ │ │ │ ├── app_usbd_core.h
│ │ │ │ ├── app_usbd_descriptor.h
│ │ │ │ ├── app_usbd_langid.h
│ │ │ │ ├── app_usbd_request.h
│ │ │ │ ├── app_usbd_serial_num.c
│ │ │ │ ├── app_usbd_serial_num.h
│ │ │ │ ├── app_usbd_string_desc.c
│ │ │ │ ├── app_usbd_string_desc.h
│ │ │ │ ├── app_usbd_types.h
│ │ │ │ └── class/
│ │ │ │ ├── audio/
│ │ │ │ │ ├── app_usbd_audio.c
│ │ │ │ │ ├── app_usbd_audio.h
│ │ │ │ │ ├── app_usbd_audio_desc.h
│ │ │ │ │ ├── app_usbd_audio_internal.h
│ │ │ │ │ └── app_usbd_audio_types.h
│ │ │ │ ├── cdc/
│ │ │ │ │ ├── acm/
│ │ │ │ │ │ ├── app_usbd_cdc_acm.c
│ │ │ │ │ │ ├── app_usbd_cdc_acm.h
│ │ │ │ │ │ └── app_usbd_cdc_acm_internal.h
│ │ │ │ │ ├── app_usbd_cdc_desc.h
│ │ │ │ │ └── app_usbd_cdc_types.h
│ │ │ │ ├── dummy/
│ │ │ │ │ ├── app_usbd_dummy.c
│ │ │ │ │ ├── app_usbd_dummy.h
│ │ │ │ │ ├── app_usbd_dummy_internal.h
│ │ │ │ │ └── app_usbd_dummy_types.h
│ │ │ │ ├── hid/
│ │ │ │ │ ├── app_usbd_hid.c
│ │ │ │ │ ├── app_usbd_hid.h
│ │ │ │ │ ├── app_usbd_hid_types.h
│ │ │ │ │ ├── generic/
│ │ │ │ │ │ ├── app_usbd_hid_generic.c
│ │ │ │ │ │ ├── app_usbd_hid_generic.h
│ │ │ │ │ │ ├── app_usbd_hid_generic_desc.h
│ │ │ │ │ │ └── app_usbd_hid_generic_internal.h
│ │ │ │ │ ├── kbd/
│ │ │ │ │ │ ├── app_usbd_hid_kbd.c
│ │ │ │ │ │ ├── app_usbd_hid_kbd.h
│ │ │ │ │ │ ├── app_usbd_hid_kbd_desc.h
│ │ │ │ │ │ └── app_usbd_hid_kbd_internal.h
│ │ │ │ │ └── mouse/
│ │ │ │ │ ├── app_usbd_hid_mouse.c
│ │ │ │ │ ├── app_usbd_hid_mouse.h
│ │ │ │ │ ├── app_usbd_hid_mouse_desc.h
│ │ │ │ │ └── app_usbd_hid_mouse_internal.h
│ │ │ │ ├── msc/
│ │ │ │ │ ├── app_usbd_msc.c
│ │ │ │ │ ├── app_usbd_msc.h
│ │ │ │ │ ├── app_usbd_msc_desc.h
│ │ │ │ │ ├── app_usbd_msc_internal.h
│ │ │ │ │ ├── app_usbd_msc_scsi.h
│ │ │ │ │ └── app_usbd_msc_types.h
│ │ │ │ └── nrf_dfu_trigger/
│ │ │ │ ├── app_usbd_nrf_dfu_trigger.c
│ │ │ │ ├── app_usbd_nrf_dfu_trigger.h
│ │ │ │ ├── app_usbd_nrf_dfu_trigger_internal.h
│ │ │ │ └── app_usbd_nrf_dfu_trigger_types.h
│ │ │ └── util/
│ │ │ ├── app_error.c
│ │ │ ├── app_error.h
│ │ │ ├── app_error_handler_gcc.c
│ │ │ ├── app_error_handler_iar.c
│ │ │ ├── app_error_handler_keil.c
│ │ │ ├── app_error_weak.c
│ │ │ ├── app_error_weak.h
│ │ │ ├── app_util.h
│ │ │ ├── app_util_bds.h
│ │ │ ├── app_util_platform.c
│ │ │ ├── app_util_platform.h
│ │ │ ├── nordic_common.h
│ │ │ ├── nrf_assert.c
│ │ │ ├── nrf_assert.h
│ │ │ ├── nrf_bitmask.h
│ │ │ ├── sdk_alloca.h
│ │ │ ├── sdk_common.h
│ │ │ ├── sdk_errors.h
│ │ │ ├── sdk_macros.h
│ │ │ ├── sdk_mapped_flags.c
│ │ │ ├── sdk_mapped_flags.h
│ │ │ ├── sdk_os.h
│ │ │ └── sdk_resources.h
│ │ ├── proprietary_rf/
│ │ │ ├── esb/
│ │ │ │ ├── nrf_esb.c
│ │ │ │ ├── nrf_esb.h
│ │ │ │ ├── nrf_esb_error_codes.h
│ │ │ │ └── nrf_esb_resources.h
│ │ │ └── gzll/
│ │ │ ├── arm/
│ │ │ │ └── license.txt
│ │ │ ├── config/
│ │ │ │ └── nrf_gzp_config.h
│ │ │ ├── gcc/
│ │ │ │ ├── gzll_nrf51_gcc.a
│ │ │ │ ├── gzll_nrf51_sd_resources_gcc.a
│ │ │ │ ├── gzll_nrf52810_gcc.a
│ │ │ │ ├── gzll_nrf52810_sd_resources_gcc.a
│ │ │ │ ├── gzll_nrf52811_gcc.a
│ │ │ │ ├── gzll_nrf52811_sd_resources_gcc.a
│ │ │ │ ├── gzll_nrf52840_gcc.a
│ │ │ │ ├── gzll_nrf52840_sd_resources_gcc.a
│ │ │ │ ├── gzll_nrf52_gcc.a
│ │ │ │ ├── gzll_nrf52_sd_resources_gcc.a
│ │ │ │ └── license.txt
│ │ │ ├── iar/
│ │ │ │ ├── gzll_nrf51_iar.a
│ │ │ │ ├── gzll_nrf51_sd_resources_iar.a
│ │ │ │ ├── gzll_nrf52840_iar.a
│ │ │ │ ├── gzll_nrf52840_sd_resources_iar.a
│ │ │ │ ├── gzll_nrf52_iar.a
│ │ │ │ ├── gzll_nrf52_sd_resources_iar.a
│ │ │ │ └── license.txt
│ │ │ ├── nrf_gzll.h
│ │ │ ├── nrf_gzll_constants.h
│ │ │ ├── nrf_gzll_error.h
│ │ │ ├── nrf_gzll_resources.h
│ │ │ ├── nrf_gzp.c
│ │ │ ├── nrf_gzp.h
│ │ │ ├── nrf_gzp_device.c
│ │ │ ├── nrf_gzp_host.c
│ │ │ └── nrf_gzp_host_nrf5x.c
│ │ ├── serialization/
│ │ │ ├── application/
│ │ │ │ ├── codecs/
│ │ │ │ │ ├── ant/
│ │ │ │ │ │ ├── middleware/
│ │ │ │ │ │ │ └── app_mw_ant.c
│ │ │ │ │ │ └── serializers/
│ │ │ │ │ │ ├── ant_acknowledge_message_tx.c
│ │ │ │ │ │ ├── ant_active_search_sharing_cycles_get.c
│ │ │ │ │ │ ├── ant_active_search_sharing_cycles_set.c
│ │ │ │ │ │ ├── ant_adv_burst_config_set.c
│ │ │ │ │ │ ├── ant_app.h
│ │ │ │ │ │ ├── ant_broadcast_message_tx.c
│ │ │ │ │ │ ├── ant_capabilities_get.c
│ │ │ │ │ │ ├── ant_channel_assign.c
│ │ │ │ │ │ ├── ant_channel_close.c
│ │ │ │ │ │ ├── ant_channel_id_get.c
│ │ │ │ │ │ ├── ant_channel_id_set.c
│ │ │ │ │ │ ├── ant_channel_low_priority_rx_search_timeout_set.c
│ │ │ │ │ │ ├── ant_channel_open_with_offset.c
│ │ │ │ │ │ ├── ant_channel_period_get.c
│ │ │ │ │ │ ├── ant_channel_period_set.c
│ │ │ │ │ │ ├── ant_channel_radio_freq_get.c
│ │ │ │ │ │ ├── ant_channel_radio_freq_set.c
│ │ │ │ │ │ ├── ant_channel_radio_tx_power_set.c
│ │ │ │ │ │ ├── ant_channel_rx_search_timeout_set.c
│ │ │ │ │ │ ├── ant_channel_status_get.c
│ │ │ │ │ │ ├── ant_channel_unassign.c
│ │ │ │ │ │ ├── ant_coex_config_get.c
│ │ │ │ │ │ ├── ant_coex_config_set.c
│ │ │ │ │ │ ├── ant_crypto_channel_enable.c
│ │ │ │ │ │ ├── ant_crypto_info_get.c
│ │ │ │ │ │ ├── ant_crypto_info_set.c
│ │ │ │ │ │ ├── ant_crypto_key_set.c
│ │ │ │ │ │ ├── ant_cw_test_mode.c
│ │ │ │ │ │ ├── ant_cw_test_mode_init.c
│ │ │ │ │ │ ├── ant_enable.c
│ │ │ │ │ │ ├── ant_event.c
│ │ │ │ │ │ ├── ant_event.h
│ │ │ │ │ │ ├── ant_id_list_add.c
│ │ │ │ │ │ ├── ant_id_list_config.c
│ │ │ │ │ │ ├── ant_lib_config_clear.c
│ │ │ │ │ │ ├── ant_lib_config_get.c
│ │ │ │ │ │ ├── ant_lib_config_set.c
│ │ │ │ │ │ ├── ant_network_address_set.c
│ │ │ │ │ │ ├── ant_prox_search_set.c
│ │ │ │ │ │ ├── ant_rx_scan_mode_start.c
│ │ │ │ │ │ ├── ant_search_channel_priority_set.c
│ │ │ │ │ │ ├── ant_search_waveform_set.c
│ │ │ │ │ │ ├── ant_stack_reset.c
│ │ │ │ │ │ └── ant_version_get.c
│ │ │ │ │ ├── ble/
│ │ │ │ │ │ ├── middleware/
│ │ │ │ │ │ │ ├── app_mw_ble.c
│ │ │ │ │ │ │ ├── app_mw_ble_gap.c
│ │ │ │ │ │ │ ├── app_mw_ble_gattc.c
│ │ │ │ │ │ │ ├── app_mw_ble_gatts.c
│ │ │ │ │ │ │ ├── app_mw_ble_l2cap.c
│ │ │ │ │ │ │ └── app_mw_nrf_soc.c
│ │ │ │ │ │ └── serializers/
│ │ │ │ │ │ ├── app_ble_gap_sec_keys.c
│ │ │ │ │ │ ├── app_ble_gap_sec_keys.h
│ │ │ │ │ │ ├── app_ble_user_mem.c
│ │ │ │ │ │ ├── app_ble_user_mem.h
│ │ │ │ │ │ ├── ble_app.c
│ │ │ │ │ │ ├── ble_app.h
│ │ │ │ │ │ ├── ble_event.c
│ │ │ │ │ │ ├── ble_evt_app.c
│ │ │ │ │ │ ├── ble_evt_app.h
│ │ │ │ │ │ ├── ble_gap_app.c
│ │ │ │ │ │ ├── ble_gap_app.h
│ │ │ │ │ │ ├── ble_gap_evt_app.c
│ │ │ │ │ │ ├── ble_gap_evt_app.h
│ │ │ │ │ │ ├── ble_gattc_app.c
│ │ │ │ │ │ ├── ble_gattc_app.h
│ │ │ │ │ │ ├── ble_gattc_evt_app.c
│ │ │ │ │ │ ├── ble_gattc_evt_app.h
│ │ │ │ │ │ ├── ble_gatts_app.c
│ │ │ │ │ │ ├── ble_gatts_app.h
│ │ │ │ │ │ ├── ble_gatts_evt_app.c
│ │ │ │ │ │ ├── ble_gatts_evt_app.h
│ │ │ │ │ │ ├── ble_l2cap_app.c
│ │ │ │ │ │ ├── ble_l2cap_app.h
│ │ │ │ │ │ ├── ble_l2cap_evt_app.c
│ │ │ │ │ │ ├── ble_l2cap_evt_app.h
│ │ │ │ │ │ ├── nrf_soc_app.c
│ │ │ │ │ │ └── nrf_soc_app.h
│ │ │ │ │ └── common/
│ │ │ │ │ ├── ble_dtm_app.c
│ │ │ │ │ ├── ble_dtm_app.h
│ │ │ │ │ ├── ble_dtm_init.c
│ │ │ │ │ ├── conn_systemreset.c
│ │ │ │ │ └── conn_systemreset.h
│ │ │ │ ├── hal/
│ │ │ │ │ ├── ser_app_hal.h
│ │ │ │ │ ├── ser_app_hal_nrf5x.c
│ │ │ │ │ ├── ser_app_power_system_off.c
│ │ │ │ │ └── ser_app_power_system_off.h
│ │ │ │ └── transport/
│ │ │ │ ├── ser_sd_transport.c
│ │ │ │ ├── ser_sd_transport.h
│ │ │ │ ├── ser_softdevice_handler.c
│ │ │ │ └── ser_softdevice_handler.h
│ │ │ ├── common/
│ │ │ │ ├── ble_serialization.c
│ │ │ │ ├── ble_serialization.h
│ │ │ │ ├── cond_field_serialization.c
│ │ │ │ ├── cond_field_serialization.h
│ │ │ │ ├── ser_config.h
│ │ │ │ ├── ser_dbg_sd_str.c
│ │ │ │ ├── ser_dbg_sd_str.h
│ │ │ │ ├── struct_ser/
│ │ │ │ │ ├── ant/
│ │ │ │ │ │ ├── ant_struct_serialization.c
│ │ │ │ │ │ └── ant_struct_serialization.h
│ │ │ │ │ └── ble/
│ │ │ │ │ ├── ble_gap_struct_serialization.c
│ │ │ │ │ ├── ble_gap_struct_serialization.h
│ │ │ │ │ ├── ble_gatt_struct_serialization.c
│ │ │ │ │ ├── ble_gatt_struct_serialization.h
│ │ │ │ │ ├── ble_gattc_struct_serialization.c
│ │ │ │ │ ├── ble_gattc_struct_serialization.h
│ │ │ │ │ ├── ble_gatts_struct_serialization.c
│ │ │ │ │ ├── ble_gatts_struct_serialization.h
│ │ │ │ │ ├── ble_l2cap_struct_serialization.c
│ │ │ │ │ ├── ble_l2cap_struct_serialization.h
│ │ │ │ │ ├── ble_struct_serialization.c
│ │ │ │ │ ├── ble_struct_serialization.h
│ │ │ │ │ ├── nrf_soc_struct_serialization.c
│ │ │ │ │ └── nrf_soc_struct_serialization.h
│ │ │ │ └── transport/
│ │ │ │ ├── dtm_uart_params.h
│ │ │ │ ├── ser_hal_transport.c
│ │ │ │ ├── ser_hal_transport.h
│ │ │ │ ├── ser_phy/
│ │ │ │ │ ├── config/
│ │ │ │ │ │ ├── ser_config_5W_app.h
│ │ │ │ │ │ ├── ser_phy_config_app.h
│ │ │ │ │ │ ├── ser_phy_config_conn.h
│ │ │ │ │ │ ├── ser_phy_debug_app.h
│ │ │ │ │ │ └── ser_phy_debug_conn.h
│ │ │ │ │ ├── ser_phy.c
│ │ │ │ │ ├── ser_phy.h
│ │ │ │ │ ├── ser_phy_hci.c
│ │ │ │ │ ├── ser_phy_hci.h
│ │ │ │ │ ├── ser_phy_hci_slip.c
│ │ │ │ │ ├── ser_phy_hci_slip_cdc.c
│ │ │ │ │ ├── ser_phy_nohci.c
│ │ │ │ │ ├── ser_phy_spi_5W_master.c
│ │ │ │ │ ├── ser_phy_spi_5W_slave.c
│ │ │ │ │ ├── ser_phy_spi_master.c
│ │ │ │ │ ├── ser_phy_spi_slave.c
│ │ │ │ │ └── ser_phy_uart.c
│ │ │ │ └── ser_phy_debug_comm.h
│ │ │ └── connectivity/
│ │ │ ├── codecs/
│ │ │ │ ├── ant/
│ │ │ │ │ ├── middleware/
│ │ │ │ │ │ ├── conn_mw_ant.c
│ │ │ │ │ │ └── conn_mw_ant.h
│ │ │ │ │ └── serializers/
│ │ │ │ │ ├── ant_acknowledge_message_tx.c
│ │ │ │ │ ├── ant_active_search_sharing_cycles_get.c
│ │ │ │ │ ├── ant_active_search_sharing_cycles_set.c
│ │ │ │ │ ├── ant_adv_burst_config_set.c
│ │ │ │ │ ├── ant_broadcast_message_tx.c
│ │ │ │ │ ├── ant_capabilities_get.c
│ │ │ │ │ ├── ant_channel_assign.c
│ │ │ │ │ ├── ant_channel_close.c
│ │ │ │ │ ├── ant_channel_id_get.c
│ │ │ │ │ ├── ant_channel_id_set.c
│ │ │ │ │ ├── ant_channel_low_priority_rx_search_timout_set.c
│ │ │ │ │ ├── ant_channel_open_with_offset.c
│ │ │ │ │ ├── ant_channel_period_get.c
│ │ │ │ │ ├── ant_channel_period_set.c
│ │ │ │ │ ├── ant_channel_radio_freq_get.c
│ │ │ │ │ ├── ant_channel_radio_freq_set.c
│ │ │ │ │ ├── ant_channel_radio_tx_power_set.c
│ │ │ │ │ ├── ant_channel_rx_search_timeout_set.c
│ │ │ │ │ ├── ant_channel_status_get.c
│ │ │ │ │ ├── ant_channel_unassign.c
│ │ │ │ │ ├── ant_coex_config_get.c
│ │ │ │ │ ├── ant_coex_config_set.c
│ │ │ │ │ ├── ant_conn.h
│ │ │ │ │ ├── ant_crypto_channel_enable.c
│ │ │ │ │ ├── ant_crypto_info_get.c
│ │ │ │ │ ├── ant_crypto_info_set.c
│ │ │ │ │ ├── ant_crypto_key_set.c
│ │ │ │ │ ├── ant_cw_test_mode.c
│ │ │ │ │ ├── ant_cw_test_mode_init.c
│ │ │ │ │ ├── ant_enable.c
│ │ │ │ │ ├── ant_event.c
│ │ │ │ │ ├── ant_event.h
│ │ │ │ │ ├── ant_event_rx.c
│ │ │ │ │ ├── ant_event_rx.h
│ │ │ │ │ ├── ant_id_list_add.c
│ │ │ │ │ ├── ant_id_list_config.c
│ │ │ │ │ ├── ant_lib_config_clear.c
│ │ │ │ │ ├── ant_lib_config_get.c
│ │ │ │ │ ├── ant_lib_config_set.c
│ │ │ │ │ ├── ant_network_address_set.c
│ │ │ │ │ ├── ant_prox_search_set.c
│ │ │ │ │ ├── ant_rx_scan_mode_start.c
│ │ │ │ │ ├── ant_search_channel_priority_set.c
│ │ │ │ │ ├── ant_search_waveform_set.c
│ │ │ │ │ ├── ant_stack_reset.c
│ │ │ │ │ └── ant_version_get.c
│ │ │ │ ├── ble/
│ │ │ │ │ ├── middleware/
│ │ │ │ │ │ ├── conn_mw.h
│ │ │ │ │ │ ├── conn_mw_ble.c
│ │ │ │ │ │ ├── conn_mw_ble.h
│ │ │ │ │ │ ├── conn_mw_ble_gap.c
│ │ │ │ │ │ ├── conn_mw_ble_gap.h
│ │ │ │ │ │ ├── conn_mw_ble_gattc.c
│ │ │ │ │ │ ├── conn_mw_ble_gattc.h
│ │ │ │ │ │ ├── conn_mw_ble_gatts.c
│ │ │ │ │ │ ├── conn_mw_ble_gatts.h
│ │ │ │ │ │ ├── conn_mw_ble_l2cap.c
│ │ │ │ │ │ └── conn_mw_ble_l2cap.h
│ │ │ │ │ └── serializers/
│ │ │ │ │ ├── ble_conn.c
│ │ │ │ │ ├── ble_conn.h
│ │ │ │ │ ├── ble_event_enc.c
│ │ │ │ │ ├── ble_evt_conn.c
│ │ │ │ │ ├── ble_evt_conn.h
│ │ │ │ │ ├── ble_gap_conn.c
│ │ │ │ │ ├── ble_gap_conn.h
│ │ │ │ │ ├── ble_gap_evt_conn.c
│ │ │ │ │ ├── ble_gap_evt_conn.h
│ │ │ │ │ ├── ble_gattc_conn.c
│ │ │ │ │ ├── ble_gattc_conn.h
│ │ │ │ │ ├── ble_gattc_evt_conn.c
│ │ │ │ │ ├── ble_gattc_evt_conn.h
│ │ │ │ │ ├── ble_gatts_conn.c
│ │ │ │ │ ├── ble_gatts_conn.h
│ │ │ │ │ ├── ble_gatts_evt_conn.c
│ │ │ │ │ ├── ble_gatts_evt_conn.h
│ │ │ │ │ ├── ble_l2cap_conn.c
│ │ │ │ │ ├── ble_l2cap_conn.h
│ │ │ │ │ ├── ble_l2cap_evt_conn.c
│ │ │ │ │ ├── ble_l2cap_evt_conn.h
│ │ │ │ │ ├── conn_ble_gap_sec_keys.c
│ │ │ │ │ ├── conn_ble_gap_sec_keys.h
│ │ │ │ │ ├── conn_ble_l2cap_sdu_pool.c
│ │ │ │ │ ├── conn_ble_l2cap_sdu_pool.h
│ │ │ │ │ ├── conn_ble_user_mem.c
│ │ │ │ │ ├── conn_ble_user_mem.h
│ │ │ │ │ ├── nrf_soc_conn.c
│ │ │ │ │ └── nrf_soc_conn.h
│ │ │ │ └── common/
│ │ │ │ ├── ble_dtm_conn.h
│ │ │ │ ├── ble_dtm_init.c
│ │ │ │ ├── conn_mw.c
│ │ │ │ ├── conn_mw.h
│ │ │ │ ├── conn_mw_items.c
│ │ │ │ ├── conn_mw_nrf_soc.c
│ │ │ │ └── conn_mw_nrf_soc.h
│ │ │ ├── hal/
│ │ │ │ ├── dtm_uart.c
│ │ │ │ └── dtm_uart.h
│ │ │ ├── ser_conn_cmd_decoder.c
│ │ │ ├── ser_conn_cmd_decoder.h
│ │ │ ├── ser_conn_dtm_cmd_decoder.c
│ │ │ ├── ser_conn_dtm_cmd_decoder.h
│ │ │ ├── ser_conn_error_handling.c
│ │ │ ├── ser_conn_event_encoder.c
│ │ │ ├── ser_conn_event_encoder.h
│ │ │ ├── ser_conn_handlers.c
│ │ │ ├── ser_conn_handlers.h
│ │ │ ├── ser_conn_pkt_decoder.c
│ │ │ ├── ser_conn_pkt_decoder.h
│ │ │ ├── ser_conn_reset_cmd_decoder.c
│ │ │ └── ser_conn_reset_cmd_decoder.h
│ │ ├── softdevice/
│ │ │ ├── common/
│ │ │ │ ├── nrf_sdh.c
│ │ │ │ ├── nrf_sdh.h
│ │ │ │ ├── nrf_sdh_ant.c
│ │ │ │ ├── nrf_sdh_ant.h
│ │ │ │ ├── nrf_sdh_ble.c
│ │ │ │ ├── nrf_sdh_ble.h
│ │ │ │ ├── nrf_sdh_freertos.c
│ │ │ │ ├── nrf_sdh_freertos.h
│ │ │ │ ├── nrf_sdh_soc.c
│ │ │ │ └── nrf_sdh_soc.h
│ │ │ ├── mbr/
│ │ │ │ ├── headers/
│ │ │ │ │ ├── nrf_mbr.h
│ │ │ │ │ └── nrf_svc.h
│ │ │ │ └── hex/
│ │ │ │ └── mbr_nrf52_2.4.1_licence-agreement.txt
│ │ │ ├── s112/
│ │ │ │ ├── doc/
│ │ │ │ │ └── s112_nrf52_7.2.0_licence-agreement.txt
│ │ │ │ ├── headers/
│ │ │ │ │ ├── ble.h
│ │ │ │ │ ├── ble_err.h
│ │ │ │ │ ├── ble_gap.h
│ │ │ │ │ ├── ble_gatt.h
│ │ │ │ │ ├── ble_gattc.h
│ │ │ │ │ ├── ble_gatts.h
│ │ │ │ │ ├── ble_hci.h
│ │ │ │ │ ├── ble_ranges.h
│ │ │ │ │ ├── ble_types.h
│ │ │ │ │ ├── nrf52/
│ │ │ │ │ │ └── nrf_mbr.h
│ │ │ │ │ ├── nrf_error.h
│ │ │ │ │ ├── nrf_error_sdm.h
│ │ │ │ │ ├── nrf_error_soc.h
│ │ │ │ │ ├── nrf_nvic.h
│ │ │ │ │ ├── nrf_sd_def.h
│ │ │ │ │ ├── nrf_sdm.h
│ │ │ │ │ ├── nrf_soc.h
│ │ │ │ │ └── nrf_svc.h
│ │ │ │ ├── hex/
│ │ │ │ │ └── s112_nrf52_7.2.0_licence-agreement.txt
│ │ │ │ └── toolchain/
│ │ │ │ ├── armgcc/
│ │ │ │ │ └── armgcc_s112_nrf52810_xxaa.ld
│ │ │ │ └── iar/
│ │ │ │ └── iar_s112_nrf52810_xxaa.icf
│ │ │ └── s132/
│ │ │ ├── doc/
│ │ │ │ └── s132_nrf52_7.2.0_licence-agreement.txt
│ │ │ ├── headers/
│ │ │ │ ├── ble.h
│ │ │ │ ├── ble_err.h
│ │ │ │ ├── ble_gap.h
│ │ │ │ ├── ble_gatt.h
│ │ │ │ ├── ble_gattc.h
│ │ │ │ ├── ble_gatts.h
│ │ │ │ ├── ble_hci.h
│ │ │ │ ├── ble_l2cap.h
│ │ │ │ ├── ble_ranges.h
│ │ │ │ ├── ble_types.h
│ │ │ │ ├── nrf52/
│ │ │ │ │ └── nrf_mbr.h
│ │ │ │ ├── nrf_error.h
│ │ │ │ ├── nrf_error_sdm.h
│ │ │ │ ├── nrf_error_soc.h
│ │ │ │ ├── nrf_nvic.h
│ │ │ │ ├── nrf_sd_def.h
│ │ │ │ ├── nrf_sdm.h
│ │ │ │ ├── nrf_soc.h
│ │ │ │ └── nrf_svc.h
│ │ │ ├── hex/
│ │ │ │ └── s132_nrf52_7.2.0_licence-agreement.txt
│ │ │ └── toolchain/
│ │ │ ├── armgcc/
│ │ │ │ └── armgcc_s132_nrf52832_xxaa.ld
│ │ │ └── iar/
│ │ │ └── iar_s132_nrf52832_xxaa.icf
│ │ └── toolchain/
│ │ ├── arm/
│ │ │ └── uicr_config.h
│ │ ├── cmsis/
│ │ │ ├── dsp/
│ │ │ │ ├── GCC/
│ │ │ │ │ ├── libarm_cortexM4l_math.a
│ │ │ │ │ └── libarm_cortexM4lf_math.a
│ │ │ │ ├── Include/
│ │ │ │ │ ├── arm_common_tables.h
│ │ │ │ │ ├── arm_const_structs.h
│ │ │ │ │ └── arm_math.h
│ │ │ │ └── license.txt
│ │ │ └── include/
│ │ │ ├── cmsis_armcc.h
│ │ │ ├── cmsis_armclang.h
│ │ │ ├── cmsis_armclang_ltm.h
│ │ │ ├── cmsis_compiler.h
│ │ │ ├── cmsis_gcc.h
│ │ │ ├── cmsis_iccarm.h
│ │ │ ├── cmsis_version.h
│ │ │ ├── core_armv81mml.h
│ │ │ ├── core_armv8mbl.h
│ │ │ ├── core_armv8mml.h
│ │ │ ├── core_cm0.h
│ │ │ ├── core_cm0plus.h
│ │ │ ├── core_cm1.h
│ │ │ ├── core_cm23.h
│ │ │ ├── core_cm3.h
│ │ │ ├── core_cm33.h
│ │ │ ├── core_cm35p.h
│ │ │ ├── core_cm4.h
│ │ │ ├── core_cm7.h
│ │ │ ├── core_sc000.h
│ │ │ ├── core_sc300.h
│ │ │ ├── mpu_armv7.h
│ │ │ ├── mpu_armv8.h
│ │ │ └── tz_context.h
│ │ └── gcc/
│ │ ├── Makefile.common
│ │ ├── Makefile.posix
│ │ ├── Makefile.windows
│ │ ├── dump.mk
│ │ └── gcc_nrf51_common.ld
│ ├── external/
│ │ ├── fprintf/
│ │ │ ├── nrf_fprintf.c
│ │ │ ├── nrf_fprintf.h
│ │ │ ├── nrf_fprintf_format.c
│ │ │ └── nrf_fprintf_format.h
│ │ ├── licenses_external.txt
│ │ ├── micro-ecc/
│ │ │ ├── build_all.bat
│ │ │ ├── build_all.sh
│ │ │ ├── license.txt
│ │ │ ├── nrf51_armgcc/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf51.a
│ │ │ ├── nrf51_iar/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf51.a
│ │ │ ├── nrf51_keil/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ └── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ ├── nrf52hf_armgcc/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf52.a
│ │ │ ├── nrf52hf_iar/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf52.a
│ │ │ ├── nrf52hf_keil/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ └── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ ├── nrf52nf_armgcc/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf52.a
│ │ │ ├── nrf52nf_iar/
│ │ │ │ └── armgcc/
│ │ │ │ ├── Makefile
│ │ │ │ ├── ext_micro_ecc_gcc_nRF5x.ld
│ │ │ │ └── micro_ecc_lib_nrf52.a
│ │ │ └── nrf52nf_keil/
│ │ │ └── armgcc/
│ │ │ ├── Makefile
│ │ │ └── ext_micro_ecc_gcc_nRF5x.ld
│ │ ├── nano-pb/
│ │ │ ├── LICENSE.txt
│ │ │ ├── generator/
│ │ │ │ ├── camel_case_splitter.py
│ │ │ │ ├── nanopb_generator.py
│ │ │ │ ├── proto/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── google/
│ │ │ │ │ │ └── protobuf/
│ │ │ │ │ │ └── descriptor.proto
│ │ │ │ │ ├── nanopb.proto
│ │ │ │ │ ├── nanopb_pb2.py
│ │ │ │ │ ├── plugin.proto
│ │ │ │ │ └── plugin_pb2.py
│ │ │ │ ├── protoc-gen-nanopb
│ │ │ │ └── protoc-gen-nanopb.bat
│ │ │ ├── pb.h
│ │ │ ├── pb_common.c
│ │ │ ├── pb_common.h
│ │ │ ├── pb_decode.c
│ │ │ ├── pb_decode.h
│ │ │ ├── pb_encode.c
│ │ │ └── pb_encode.h
│ │ ├── nrf_oberon/
│ │ │ ├── include/
│ │ │ │ ├── mbedtls/
│ │ │ │ │ ├── chacha20_alt.h
│ │ │ │ │ ├── ecjpake_alt.h
│ │ │ │ │ ├── poly1305_alt.h
│ │ │ │ │ ├── sha1_alt.h
│ │ │ │ │ └── sha256_alt.h
│ │ │ │ ├── ocrypto_aes_cbc.h
│ │ │ │ ├── ocrypto_aes_ccm.h
│ │ │ │ ├── ocrypto_aes_cmac.h
│ │ │ │ ├── ocrypto_aes_ctr.h
│ │ │ │ ├── ocrypto_aes_eax.h
│ │ │ │ ├── ocrypto_aes_gcm.h
│ │ │ │ ├── ocrypto_aes_key.h
│ │ │ │ ├── ocrypto_chacha20.h
│ │ │ │ ├── ocrypto_chacha20_poly1305.h
│ │ │ │ ├── ocrypto_chacha20_poly1305_inc.h
│ │ │ │ ├── ocrypto_constant_time.h
│ │ │ │ ├── ocrypto_curve25519.h
│ │ │ │ ├── ocrypto_curve_p224.h
│ │ │ │ ├── ocrypto_curve_p256.h
│ │ │ │ ├── ocrypto_ecdh_p224.h
│ │ │ │ ├── ocrypto_ecdh_p256.h
│ │ │ │ ├── ocrypto_ecdsa_p224.h
│ │ │ │ ├── ocrypto_ecdsa_p256.h
│ │ │ │ ├── ocrypto_ecjpake_p256.h
│ │ │ │ ├── ocrypto_ed25519.h
│ │ │ │ ├── ocrypto_hkdf_sha1.h
│ │ │ │ ├── ocrypto_hkdf_sha256.h
│ │ │ │ ├── ocrypto_hkdf_sha512.h
│ │ │ │ ├── ocrypto_hmac_sha1.h
│ │ │ │ ├── ocrypto_hmac_sha256.h
│ │ │ │ ├── ocrypto_hmac_sha512.h
│ │ │ │ ├── ocrypto_poly1305.h
│ │ │ │ ├── ocrypto_rsa.h
│ │ │ │ ├── ocrypto_rsa_key.h
│ │ │ │ ├── ocrypto_sc_p224.h
│ │ │ │ ├── ocrypto_sc_p256.h
│ │ │ │ ├── ocrypto_sha1.h
│ │ │ │ ├── ocrypto_sha224.h
│ │ │ │ ├── ocrypto_sha256.h
│ │ │ │ ├── ocrypto_sha384.h
│ │ │ │ ├── ocrypto_sha512.h
│ │ │ │ ├── ocrypto_srp.h
│ │ │ │ └── ocrypto_srtp.h
│ │ │ ├── lib/
│ │ │ │ ├── cortex-m0/
│ │ │ │ │ └── soft-float/
│ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ ├── liboberon_mbedtls_3.0.8.a
│ │ │ │ │ └── short-wchar/
│ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ └── liboberon_mbedtls_3.0.8.a
│ │ │ │ ├── cortex-m4/
│ │ │ │ │ ├── hard-float/
│ │ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ │ ├── liboberon_mbedtls_3.0.8.a
│ │ │ │ │ │ └── short-wchar/
│ │ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ │ └── liboberon_mbedtls_3.0.8.a
│ │ │ │ │ └── soft-float/
│ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ ├── liboberon_mbedtls_3.0.8.a
│ │ │ │ │ └── short-wchar/
│ │ │ │ │ ├── liboberon_3.0.8.a
│ │ │ │ │ └── liboberon_mbedtls_3.0.8.a
│ │ │ │ └── license.txt
│ │ │ └── license.txt
│ │ └── segger_rtt/
│ │ ├── SEGGER_RTT.c
│ │ ├── SEGGER_RTT.h
│ │ ├── SEGGER_RTT_Conf.h
│ │ ├── SEGGER_RTT_Syscalls_GCC.c
│ │ ├── SEGGER_RTT_Syscalls_IAR.c
│ │ ├── SEGGER_RTT_Syscalls_KEIL.c
│ │ ├── SEGGER_RTT_Syscalls_SES.c
│ │ ├── SEGGER_RTT_printf.c
│ │ └── license/
│ │ └── license.txt
│ ├── integration/
│ │ └── nrfx/
│ │ ├── legacy/
│ │ │ ├── apply_old_config.h
│ │ │ ├── nrf_drv_clock.c
│ │ │ ├── nrf_drv_clock.h
│ │ │ ├── nrf_drv_common.h
│ │ │ ├── nrf_drv_comp.h
│ │ │ ├── nrf_drv_gpiote.h
│ │ │ ├── nrf_drv_i2s.h
│ │ │ ├── nrf_drv_lpcomp.h
│ │ │ ├── nrf_drv_pdm.h
│ │ │ ├── nrf_drv_power.c
│ │ │ ├── nrf_drv_power.h
│ │ │ ├── nrf_drv_ppi.c
│ │ │ ├── nrf_drv_ppi.h
│ │ │ ├── nrf_drv_pwm.h
│ │ │ ├── nrf_drv_qdec.h
│ │ │ ├── nrf_drv_qspi.h
│ │ │ ├── nrf_drv_rng.c
│ │ │ ├── nrf_drv_rng.h
│ │ │ ├── nrf_drv_rtc.h
│ │ │ ├── nrf_drv_saadc.h
│ │ │ ├── nrf_drv_spi.c
│ │ │ ├── nrf_drv_spi.h
│ │ │ ├── nrf_drv_spis.c
│ │ │ ├── nrf_drv_spis.h
│ │ │ ├── nrf_drv_swi.c
│ │ │ ├── nrf_drv_swi.h
│ │ │ ├── nrf_drv_systick.h
│ │ │ ├── nrf_drv_timer.h
│ │ │ ├── nrf_drv_twi.c
│ │ │ ├── nrf_drv_twi.h
│ │ │ ├── nrf_drv_twis.h
│ │ │ ├── nrf_drv_uart.c
│ │ │ ├── nrf_drv_uart.h
│ │ │ ├── nrf_drv_usbd.h
│ │ │ ├── nrf_drv_usbd_errata.h
│ │ │ └── nrf_drv_wdt.h
│ │ ├── nrfx_config.h
│ │ ├── nrfx_glue.h
│ │ └── nrfx_log.h
│ └── modules/
│ └── nrfx/
│ ├── drivers/
│ │ ├── include/
│ │ │ ├── nrf_bitmask.h
│ │ │ ├── nrfx_adc.h
│ │ │ ├── nrfx_clock.h
│ │ │ ├── nrfx_comp.h
│ │ │ ├── nrfx_dppi.h
│ │ │ ├── nrfx_gpiote.h
│ │ │ ├── nrfx_i2s.h
│ │ │ ├── nrfx_lpcomp.h
│ │ │ ├── nrfx_nfct.h
│ │ │ ├── nrfx_nvmc.h
│ │ │ ├── nrfx_pdm.h
│ │ │ ├── nrfx_power.h
│ │ │ ├── nrfx_power_clock.h
│ │ │ ├── nrfx_ppi.h
│ │ │ ├── nrfx_pwm.h
│ │ │ ├── nrfx_qdec.h
│ │ │ ├── nrfx_qspi.h
│ │ │ ├── nrfx_rng.h
│ │ │ ├── nrfx_rtc.h
│ │ │ ├── nrfx_saadc.h
│ │ │ ├── nrfx_saadc_v2.h
│ │ │ ├── nrfx_spi.h
│ │ │ ├── nrfx_spim.h
│ │ │ ├── nrfx_spis.h
│ │ │ ├── nrfx_swi.h
│ │ │ ├── nrfx_systick.h
│ │ │ ├── nrfx_temp.h
│ │ │ ├── nrfx_timer.h
│ │ │ ├── nrfx_twi.h
│ │ │ ├── nrfx_twi_twim.h
│ │ │ ├── nrfx_twim.h
│ │ │ ├── nrfx_twis.h
│ │ │ ├── nrfx_uart.h
│ │ │ ├── nrfx_uarte.h
│ │ │ ├── nrfx_usbd.h
│ │ │ └── nrfx_wdt.h
│ │ ├── nrfx_common.h
│ │ ├── nrfx_errors.h
│ │ └── src/
│ │ ├── nrfx_adc.c
│ │ ├── nrfx_clock.c
│ │ ├── nrfx_comp.c
│ │ ├── nrfx_dppi.c
│ │ ├── nrfx_gpiote.c
│ │ ├── nrfx_i2s.c
│ │ ├── nrfx_lpcomp.c
│ │ ├── nrfx_nfct.c
│ │ ├── nrfx_nvmc.c
│ │ ├── nrfx_pdm.c
│ │ ├── nrfx_power.c
│ │ ├── nrfx_ppi.c
│ │ ├── nrfx_pwm.c
│ │ ├── nrfx_qdec.c
│ │ ├── nrfx_qspi.c
│ │ ├── nrfx_rng.c
│ │ ├── nrfx_rtc.c
│ │ ├── nrfx_saadc.c
│ │ ├── nrfx_spi.c
│ │ ├── nrfx_spim.c
│ │ ├── nrfx_spis.c
│ │ ├── nrfx_swi.c
│ │ ├── nrfx_systick.c
│ │ ├── nrfx_temp.c
│ │ ├── nrfx_timer.c
│ │ ├── nrfx_twi.c
│ │ ├── nrfx_twi_twim.c
│ │ ├── nrfx_twim.c
│ │ ├── nrfx_twis.c
│ │ ├── nrfx_uart.c
│ │ ├── nrfx_uarte.c
│ │ ├── nrfx_usbd.c
│ │ ├── nrfx_usbd_errata.h
│ │ ├── nrfx_wdt.c
│ │ └── prs/
│ │ ├── nrfx_prs.c
│ │ └── nrfx_prs.h
│ ├── hal/
│ │ ├── nrf_aar.h
│ │ ├── nrf_acl.h
│ │ ├── nrf_adc.h
│ │ ├── nrf_bprot.h
│ │ ├── nrf_ccm.h
│ │ ├── nrf_clock.h
│ │ ├── nrf_comp.h
│ │ ├── nrf_dppi.h
│ │ ├── nrf_ecb.c
│ │ ├── nrf_ecb.h
│ │ ├── nrf_egu.h
│ │ ├── nrf_ficr.h
│ │ ├── nrf_gpio.h
│ │ ├── nrf_gpiote.h
│ │ ├── nrf_i2s.h
│ │ ├── nrf_kmu.h
│ │ ├── nrf_lpcomp.h
│ │ ├── nrf_mpu.h
│ │ ├── nrf_mwu.h
│ │ ├── nrf_nfct.h
│ │ ├── nrf_nvmc.c
│ │ ├── nrf_nvmc.h
│ │ ├── nrf_pdm.h
│ │ ├── nrf_power.h
│ │ ├── nrf_ppi.h
│ │ ├── nrf_pwm.h
│ │ ├── nrf_qdec.h
│ │ ├── nrf_qspi.h
│ │ ├── nrf_radio.h
│ │ ├── nrf_regulators.h
│ │ ├── nrf_rng.h
│ │ ├── nrf_rtc.h
│ │ ├── nrf_saadc.h
│ │ ├── nrf_spi.h
│ │ ├── nrf_spim.h
│ │ ├── nrf_spis.h
│ │ ├── nrf_spu.h
│ │ ├── nrf_systick.h
│ │ ├── nrf_temp.h
│ │ ├── nrf_timer.h
│ │ ├── nrf_twi.h
│ │ ├── nrf_twim.h
│ │ ├── nrf_twis.h
│ │ ├── nrf_uart.h
│ │ ├── nrf_uarte.h
│ │ ├── nrf_usbd.h
│ │ ├── nrf_vmc.h
│ │ └── nrf_wdt.h
│ ├── mdk/
│ │ ├── arm_startup_nrf51.s
│ │ ├── arm_startup_nrf52.s
│ │ ├── arm_startup_nrf52805.s
│ │ ├── arm_startup_nrf52810.s
│ │ ├── arm_startup_nrf52811.s
│ │ ├── arm_startup_nrf52820.s
│ │ ├── arm_startup_nrf52833.s
│ │ ├── arm_startup_nrf52840.s
│ │ ├── arm_startup_nrf5340_application.s
│ │ ├── arm_startup_nrf5340_network.s
│ │ ├── arm_startup_nrf9160.s
│ │ ├── compiler_abstraction.h
│ │ ├── gcc_startup_nrf51.S
│ │ ├── gcc_startup_nrf52.S
│ │ ├── gcc_startup_nrf52805.S
│ │ ├── gcc_startup_nrf52810.S
│ │ ├── gcc_startup_nrf52811.S
│ │ ├── gcc_startup_nrf52820.S
│ │ ├── gcc_startup_nrf52833.S
│ │ ├── gcc_startup_nrf52840.S
│ │ ├── gcc_startup_nrf5340_application.S
│ │ ├── gcc_startup_nrf5340_network.S
│ │ ├── gcc_startup_nrf9160.S
│ │ ├── iar_startup_nrf51.s
│ │ ├── iar_startup_nrf52.s
│ │ ├── iar_startup_nrf52805.s
│ │ ├── iar_startup_nrf52810.s
│ │ ├── iar_startup_nrf52811.s
│ │ ├── iar_startup_nrf52820.s
│ │ ├── iar_startup_nrf52833.s
│ │ ├── iar_startup_nrf52840.s
│ │ ├── iar_startup_nrf5340_application.s
│ │ ├── iar_startup_nrf5340_network.s
│ │ ├── iar_startup_nrf9160.s
│ │ ├── nrf.h
│ │ ├── nrf51.h
│ │ ├── nrf51.svd
│ │ ├── nrf51422_peripherals.h
│ │ ├── nrf51422_xxaa.ld
│ │ ├── nrf51422_xxab.ld
│ │ ├── nrf51422_xxac.ld
│ │ ├── nrf51801_peripherals.h
│ │ ├── nrf51801_xxab.ld
│ │ ├── nrf51802_peripherals.h
│ │ ├── nrf51802_xxaa.ld
│ │ ├── nrf51822_peripherals.h
│ │ ├── nrf51822_xxaa.ld
│ │ ├── nrf51822_xxab.ld
│ │ ├── nrf51822_xxac.ld
│ │ ├── nrf51824_peripherals.h
│ │ ├── nrf51824_xxaa.ld
│ │ ├── nrf51_bitfields.h
│ │ ├── nrf51_common.ld
│ │ ├── nrf51_deprecated.h
│ │ ├── nrf51_erratas.h
│ │ ├── nrf51_peripherals.h
│ │ ├── nrf51_to_nrf52.h
│ │ ├── nrf51_to_nrf52810.h
│ │ ├── nrf51_to_nrf52840.h
│ │ ├── nrf51_xxaa.ld
│ │ ├── nrf51_xxab.ld
│ │ ├── nrf51_xxac.ld
│ │ ├── nrf52.h
│ │ ├── nrf52.svd
│ │ ├── nrf52805.h
│ │ ├── nrf52805.svd
│ │ ├── nrf52805_bitfields.h
│ │ ├── nrf52805_peripherals.h
│ │ ├── nrf52805_xxaa.ld
│ │ ├── nrf52810.h
│ │ ├── nrf52810.svd
│ │ ├── nrf52810_bitfields.h
│ │ ├── nrf52810_name_change.h
│ │ ├── nrf52810_peripherals.h
│ │ ├── nrf52810_to_nrf52811.h
│ │ ├── nrf52810_xxaa.ld
│ │ ├── nrf52811.h
│ │ ├── nrf52811.svd
│ │ ├── nrf52811_bitfields.h
│ │ ├── nrf52811_peripherals.h
│ │ ├── nrf52811_xxaa.ld
│ │ ├── nrf52820.h
│ │ ├── nrf52820.svd
│ │ ├── nrf52820_bitfields.h
│ │ ├── nrf52820_peripherals.h
│ │ ├── nrf52820_xxaa.ld
│ │ ├── nrf52832_peripherals.h
│ │ ├── nrf52832_xxaa.ld
│ │ ├── nrf52832_xxab.ld
│ │ ├── nrf52833.h
│ │ ├── nrf52833.svd
│ │ ├── nrf52833_bitfields.h
│ │ ├── nrf52833_peripherals.h
│ │ ├── nrf52833_to_nrf52820.h
│ │ ├── nrf52833_xxaa.ld
│ │ ├── nrf52840.h
│ │ ├── nrf52840.svd
│ │ ├── nrf52840_bitfields.h
│ │ ├── nrf52840_peripherals.h
│ │ ├── nrf52840_xxaa.ld
│ │ ├── nrf52_bitfields.h
│ │ ├── nrf52_common.ld
│ │ ├── nrf52_erratas.h
│ │ ├── nrf52_name_change.h
│ │ ├── nrf52_to_nrf52810.h
│ │ ├── nrf52_to_nrf52833.h
│ │ ├── nrf52_to_nrf52840.h
│ │ ├── nrf52_xxaa.ld
│ │ ├── nrf5340_application.h
│ │ ├── nrf5340_application.svd
│ │ ├── nrf5340_application_bitfields.h
│ │ ├── nrf5340_application_name_change.h
│ │ ├── nrf5340_application_peripherals.h
│ │ ├── nrf5340_network.h
│ │ ├── nrf5340_network.svd
│ │ ├── nrf5340_network_bitfields.h
│ │ ├── nrf5340_network_name_change.h
│ │ ├── nrf5340_network_peripherals.h
│ │ ├── nrf5340_xxaa_application.ld
│ │ ├── nrf5340_xxaa_network.ld
│ │ ├── nrf53_erratas.h
│ │ ├── nrf9160.h
│ │ ├── nrf9160.svd
│ │ ├── nrf9160_bitfields.h
│ │ ├── nrf9160_name_change.h
│ │ ├── nrf9160_peripherals.h
│ │ ├── nrf9160_xxaa.ld
│ │ ├── nrf91_erratas.h
│ │ ├── nrf_common.ld
│ │ ├── nrf_erratas.h
│ │ ├── nrf_peripherals.h
│ │ ├── ses_startup_nrf51.s
│ │ ├── ses_startup_nrf52.s
│ │ ├── ses_startup_nrf52805.s
│ │ ├── ses_startup_nrf52810.s
│ │ ├── ses_startup_nrf52811.s
│ │ ├── ses_startup_nrf52820.s
│ │ ├── ses_startup_nrf52833.s
│ │ ├── ses_startup_nrf52840.s
│ │ ├── ses_startup_nrf5340_application.s
│ │ ├── ses_startup_nrf5340_network.s
│ │ ├── ses_startup_nrf9160.s
│ │ ├── ses_startup_nrf_common.s
│ │ ├── startup_config.h
│ │ ├── system_nrf.h
│ │ ├── system_nrf51.c
│ │ ├── system_nrf51.h
│ │ ├── system_nrf52.c
│ │ ├── system_nrf52.h
│ │ ├── system_nrf52805.c
│ │ ├── system_nrf52805.h
│ │ ├── system_nrf52810.c
│ │ ├── system_nrf52810.h
│ │ ├── system_nrf52811.c
│ │ ├── system_nrf52811.h
│ │ ├── system_nrf52820.c
│ │ ├── system_nrf52820.h
│ │ ├── system_nrf52833.c
│ │ ├── system_nrf52833.h
│ │ ├── system_nrf52840.c
│ │ ├── system_nrf52840.h
│ │ ├── system_nrf52_approtect.h
│ │ ├── system_nrf5340_application.c
│ │ ├── system_nrf5340_application.h
│ │ ├── system_nrf5340_network.c
│ │ ├── system_nrf5340_network.h
│ │ ├── system_nrf53_approtect.h
│ │ ├── system_nrf9160.c
│ │ └── system_nrf9160.h
│ ├── nrfx.h
│ └── soc/
│ ├── nrfx_atomic.c
│ ├── nrfx_atomic.h
│ ├── nrfx_atomic_internal.h
│ ├── nrfx_coredep.h
│ ├── nrfx_irqs.h
│ ├── nrfx_irqs_nrf51.h
│ ├── nrfx_irqs_nrf52810.h
│ ├── nrfx_irqs_nrf52811.h
│ ├── nrfx_irqs_nrf52820.h
│ ├── nrfx_irqs_nrf52832.h
│ ├── nrfx_irqs_nrf52833.h
│ ├── nrfx_irqs_nrf52840.h
│ └── nrfx_irqs_nrf9160.h
├── application/
│ ├── bootloader/
│ │ ├── dfu_public_key.c
│ │ ├── main.c
│ │ ├── project/
│ │ │ ├── Makefile
│ │ │ ├── nrf52810.mk
│ │ │ ├── nrf52810_s112.ld
│ │ │ ├── nrf52811.mk
│ │ │ ├── nrf52811_s112.ld
│ │ │ ├── nrf52832.mk
│ │ │ └── nrf52832_s132.ld
│ │ └── sdk_config.h
│ └── main/
│ ├── project/
│ │ ├── app.mk
│ │ ├── bl.mk
│ │ ├── driver.mk
│ │ ├── kbd.mk
│ │ ├── nrf52810.mk
│ │ ├── nrf52810_s112.ld
│ │ ├── nrf52811.mk
│ │ ├── nrf52811_s112.ld
│ │ ├── nrf52832.mk
│ │ ├── nrf52832_s132.ld
│ │ ├── private.key
│ │ └── tmk.mk
│ └── src/
│ ├── ble/
│ │ ├── ble_bas_service.c
│ │ ├── ble_bas_service.h
│ │ ├── ble_config.h
│ │ ├── ble_hid_descriptor.h
│ │ ├── ble_hid_service.c
│ │ ├── ble_hid_service.h
│ │ ├── ble_services.c
│ │ └── ble_services.h
│ ├── config/
│ │ ├── keyboard_config.h
│ │ └── sdk_config.h
│ ├── driver/
│ │ ├── 3led/
│ │ │ ├── 3led_status.c
│ │ │ ├── 3led_status.h
│ │ │ └── README.md
│ │ ├── i2c/
│ │ │ ├── README.md
│ │ │ ├── shared_i2c.c
│ │ │ └── shared_i2c.h
│ │ ├── ledmap/
│ │ │ ├── README.md
│ │ │ ├── ledmap.c
│ │ │ └── ledmap.h
│ │ ├── rgb_light/
│ │ │ ├── rgb_light.c
│ │ │ └── rgb_light.h
│ │ ├── rgb_matrix/
│ │ │ ├── color.c
│ │ │ ├── color.h
│ │ │ ├── led_tables.c
│ │ │ ├── led_tables.h
│ │ │ ├── lib8tion/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── lib8tion.c
│ │ │ │ ├── lib8tion.h
│ │ │ │ ├── math8.h
│ │ │ │ ├── random8.h
│ │ │ │ ├── scale8.h
│ │ │ │ └── trig8.h
│ │ │ ├── rgb.h
│ │ │ ├── rgb_matrix.c
│ │ │ ├── rgb_matrix.h
│ │ │ ├── rgb_matrix_animations/
│ │ │ │ ├── alpha_mods_anim.h
│ │ │ │ ├── breathing_anim.h
│ │ │ │ ├── colorband_pinwheel_sat_anim.h
│ │ │ │ ├── colorband_pinwheel_val_anim.h
│ │ │ │ ├── colorband_sat_anim.h
│ │ │ │ ├── colorband_spiral_sat_anim.h
│ │ │ │ ├── colorband_spiral_val_anim.h
│ │ │ │ ├── colorband_val_anim.h
│ │ │ │ ├── cycle_all_anim.h
│ │ │ │ ├── cycle_left_right_anim.h
│ │ │ │ ├── cycle_out_in_anim.h
│ │ │ │ ├── cycle_out_in_dual_anim.h
│ │ │ │ ├── cycle_pinwheel_anim.h
│ │ │ │ ├── cycle_spiral_anim.h
│ │ │ │ ├── cycle_up_down_anim.h
│ │ │ │ ├── digital_rain_anim.h
│ │ │ │ ├── dual_beacon_anim.h
│ │ │ │ ├── gradient_left_right_anim.h
│ │ │ │ ├── gradient_up_down_anim.h
│ │ │ │ ├── hue_breathing_anim.h
│ │ │ │ ├── hue_pendulum_anim.h
│ │ │ │ ├── hue_wave_anim.h
│ │ │ │ ├── jellybean_raindrops_anim.h
│ │ │ │ ├── pixel_flow_anim.h
│ │ │ │ ├── pixel_fractal_anim.h
│ │ │ │ ├── pixel_rain_anim.h
│ │ │ │ ├── rainbow_beacon_anim.h
│ │ │ │ ├── rainbow_moving_chevron_anim.h
│ │ │ │ ├── rainbow_pinwheels_anim.h
│ │ │ │ ├── raindrops_anim.h
│ │ │ │ ├── rgb_matrix_effects.inc
│ │ │ │ ├── solid_color_anim.h
│ │ │ │ ├── solid_reactive_anim.h
│ │ │ │ ├── solid_reactive_cross.h
│ │ │ │ ├── solid_reactive_nexus.h
│ │ │ │ ├── solid_reactive_simple_anim.h
│ │ │ │ ├── solid_reactive_wide.h
│ │ │ │ ├── solid_splash_anim.h
│ │ │ │ ├── splash_anim.h
│ │ │ │ └── typing_heatmap_anim.h
│ │ │ ├── rgb_matrix_drivers.c
│ │ │ ├── rgb_matrix_indicator.c
│ │ │ ├── rgb_matrix_runners/
│ │ │ │ ├── effect_runner_dx_dy.h
│ │ │ │ ├── effect_runner_dx_dy_dist.h
│ │ │ │ ├── effect_runner_i.h
│ │ │ │ ├── effect_runner_reactive.h
│ │ │ │ ├── effect_runner_reactive_splash.h
│ │ │ │ ├── effect_runner_sin_cos_i.h
│ │ │ │ └── rgb_matrix_runners.inc
│ │ │ ├── rgb_matrix_types.h
│ │ │ ├── rgblight.c
│ │ │ ├── rgblight.h
│ │ │ ├── rgblight_breathe_table.h
│ │ │ ├── rgblight_ctrl.c
│ │ │ ├── rgblight_list.h
│ │ │ ├── rgblight_modes.h
│ │ │ ├── rgblight_timer.c
│ │ │ ├── rgblight_timer.h
│ │ │ ├── ws2812.c
│ │ │ └── ws2812.h
│ │ ├── rotary_encoder/
│ │ │ ├── README.md
│ │ │ ├── encoder.c
│ │ │ ├── radial_controller.c
│ │ │ └── radial_controller.h
│ │ ├── simple_rgb/
│ │ │ ├── README.md
│ │ │ ├── led_rgb.c
│ │ │ └── led_rgb.h
│ │ ├── soft_encoder/
│ │ │ ├── README.md
│ │ │ ├── soft_encoder.c
│ │ │ └── soft_encoder.h
│ │ └── ssd1306/
│ │ ├── README.md
│ │ ├── font_5x8.h
│ │ ├── font_gohu.h
│ │ ├── icons.h
│ │ ├── image_header.h
│ │ ├── oled_graph.c
│ │ ├── oled_graph.h
│ │ ├── ssd1306_oled.c
│ │ └── ssd1306_oled.h
│ ├── events.h
│ ├── keyboard/
│ │ ├── action_macro_extend.h
│ │ ├── adc_convert.c
│ │ ├── adc_convert.h
│ │ ├── data_storage.c
│ │ ├── data_storage.h
│ │ ├── host_driver.c
│ │ ├── keyboard_battery.c
│ │ ├── keyboard_battery.h
│ │ ├── keyboard_bootcheck.c
│ │ ├── keyboard_bootcheck.h
│ │ ├── keyboard_bootmagic.c
│ │ ├── keyboard_command.c
│ │ ├── keyboard_command.h
│ │ ├── keyboard_evt.c
│ │ ├── keyboard_evt.h
│ │ ├── keyboard_fn.c
│ │ ├── keyboard_fn.h
│ │ ├── keyboard_host_driver.h
│ │ ├── keyboard_led.c
│ │ ├── keyboard_led.h
│ │ ├── keyboard_matrix.c
│ │ ├── keyboard_matrix.h
│ │ ├── keyboard_services.c
│ │ ├── keyboard_services.h
│ │ ├── macro_player.c
│ │ ├── macro_player.h
│ │ ├── passkey.c
│ │ ├── passkey.h
│ │ ├── power_button.c
│ │ ├── power_button.h
│ │ ├── power_save.c
│ │ ├── power_save.h
│ │ ├── queue.h
│ │ ├── sleep_reason.c
│ │ ├── sleep_reason.h
│ │ ├── store_config.c
│ │ ├── store_config.h
│ │ └── util.h
│ ├── main.c
│ ├── main.h
│ ├── protocol/
│ │ ├── ble_comm.c
│ │ ├── ble_comm.h
│ │ ├── hid_configuration.c
│ │ ├── hid_configuration.h
│ │ ├── lufa/
│ │ │ └── descriptor.h
│ │ ├── usb_comm.c
│ │ └── usb_comm.h
│ ├── tmk/
│ │ ├── eeconfig.c
│ │ ├── glue_layer.c
│ │ ├── keyboard_timer.c
│ │ └── wait_api.h
│ └── user/
│ └── glab/
│ ├── user_fn.c
│ └── user_fn.h
├── doc/
│ ├── communicate.md
│ ├── driver.md
│ ├── hook.md
│ └── porting.md
├── docker/
│ ├── post.sh
│ └── pre.sh
├── keyboard/
│ ├── Hal67/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── Makefile
│ ├── Omega40/
│ │ ├── Makefile
│ │ └── a/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── Omega45/
│ │ ├── Makefile
│ │ ├── c/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── d/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── e/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── f/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── Omega50/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── b/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── c/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── Omega64/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ ├── keymap_plain.c
│ │ └── rules.mk
│ ├── Omega84/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ ├── keymap_plain.c
│ │ └── rules.mk
│ ├── ergoconn/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── common/
│ │ │ ├── common.mk
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_left.c
│ │ │ └── keymap_right.c
│ │ ├── rev0_left/
│ │ │ └── Makefile
│ │ ├── rev0_right/
│ │ │ └── Makefile
│ │ ├── rev1_left/
│ │ │ └── Makefile
│ │ └── rev1_right/
│ │ └── Makefile
│ ├── farad69/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── b/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── c/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── d/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── g84-4100/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ └── keymap_plain.c
│ ├── gt-ble60/
│ │ ├── Makefile
│ │ ├── d/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── e/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── f/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── g/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── gt-pad/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ ├── b/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ └── rules.mk
│ │ └── c/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── gt-planck/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── custom_led.c
│ │ │ └── rules.mk
│ │ └── b/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ └── rules.mk
│ ├── lkb-core/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ └── keymap_plain.c
│ ├── lot60-ble/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── common/
│ │ │ ├── common.mk
│ │ │ ├── config.h
│ │ │ ├── config.rev_c.h
│ │ │ ├── config.rev_e.h
│ │ │ ├── config.rev_f.h
│ │ │ ├── config.rev_g.h
│ │ │ ├── config.rev_h.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── user_evt.c
│ │ ├── rev_c/
│ │ │ └── Makefile
│ │ ├── rev_e/
│ │ │ └── Makefile
│ │ ├── rev_e_3led/
│ │ │ └── Makefile
│ │ ├── rev_f/
│ │ │ └── Makefile
│ │ ├── rev_f_3led/
│ │ │ └── Makefile
│ │ ├── rev_g/
│ │ │ └── Makefile
│ │ ├── rev_g_3led/
│ │ │ └── Makefile
│ │ └── rev_h/
│ │ └── Makefile
│ ├── newhope64/
│ │ ├── Makefile
│ │ ├── a/
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── actionmap_common.h
│ │ │ ├── actionmap_plain.c
│ │ │ ├── config.h
│ │ │ ├── keymap_common.h
│ │ │ ├── keymap_plain.c
│ │ │ └── rules.mk
│ │ └── b/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── actionmap_common.h
│ │ ├── actionmap_plain.c
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ ├── keymap_plain.c
│ │ └── rules.mk
│ ├── template/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ └── keymap_plain.c
│ ├── test/
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.h
│ │ ├── keymap_common.h
│ │ ├── keymap_plain.c
│ │ ├── rules.mk
│ │ └── user_evt.c
│ └── volta9/
│ ├── Makefile
│ └── a/
│ ├── Makefile
│ ├── README.md
│ ├── actionmap_common.h
│ ├── actionmap_plain.c
│ ├── config.h
│ └── rules.mk
├── license.md
├── template/
│ ├── Makefile.common
│ ├── Makefile.posix.template
│ ├── Makefile.windows.template
│ ├── README.txt
│ ├── dump.mk
│ └── gcc_nrf51_common.ld
├── tmk/
│ └── tmk_core/
│ └── common/
│ ├── action.c
│ ├── action.h
│ ├── action_code.h
│ ├── action_layer.c
│ ├── action_layer.h
│ ├── action_macro.c
│ ├── action_macro.h
│ ├── action_tapping.c
│ ├── action_tapping.h
│ ├── action_util.c
│ ├── action_util.h
│ ├── actionmap.c
│ ├── actionmap.h
│ ├── backlight.c
│ ├── backlight.h
│ ├── bootloader.h
│ ├── bootmagic.c
│ ├── bootmagic.h
│ ├── command.c
│ ├── command.h
│ ├── debug.c
│ ├── debug.h
│ ├── eeconfig.h
│ ├── hook.c
│ ├── hook.h
│ ├── host.c
│ ├── host.h
│ ├── host_driver.h
│ ├── keyboard.c
│ ├── keyboard.h
│ ├── keycode.h
│ ├── keymap.c
│ ├── keymap.h
│ ├── led.h
│ ├── matrix.c
│ ├── matrix.h
│ ├── mousekey.c
│ ├── mousekey.h
│ ├── nodebug.h
│ ├── print.c
│ ├── print.h
│ ├── progmem.h
│ ├── report.h
│ ├── ringbuf.h
│ ├── sendchar.h
│ ├── sendchar_null.c
│ ├── sendchar_uart.c
│ ├── sleep_led.h
│ ├── suspend.h
│ ├── timer.h
│ ├── uart.h
│ ├── unimap.c
│ ├── unimap.h
│ ├── util.c
│ ├── util.h
│ └── wait.h
└── usb/
├── .gitignore
├── CH554_SDCC.h
├── DAP.c
├── DAP.h
├── DAP_config.h
├── DAP_hid.c
├── DAP_hid.h
├── SW_DP.c
├── app_timer.h
├── compiler.h
├── dap_strings.h
├── descriptor.c
├── descriptor.h
├── endpoints.c
├── endpoints.h
├── interrupt.c
├── interrupt.h
├── main.c
├── system.c
├── system.h
├── uart.c
├── uart.h
├── usb.mk
├── usb_comm.h
└── usb_descriptor.h
Showing preview only (1,307K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (13162 symbols across 1164 files)
FILE: KeymapDownloader/KeymapDownloader/App.xaml.cs
class App (line 14) | public partial class App : Application
FILE: KeymapDownloader/KeymapDownloader/CustomHID.cs
class CustomHID (line 10) | class CustomHID
method CustomHID (line 14) | public CustomHID(HidDevice device)
method ToString (line 19) | public override string ToString()
method IsTarget (line 34) | public static bool IsTarget(HidDevice device)
FILE: KeymapDownloader/KeymapDownloader/MainWindow.xaml.cs
class MainWindow (line 26) | public partial class MainWindow
method MainWindow (line 30) | public MainWindow()
method SetCopyright (line 37) | void SetCopyright()
method RefreshHIDList (line 45) | void RefreshHIDList()
method refresh_Click (line 61) | private void refresh_Click(object sender, RoutedEventArgs e)
method browse_Click (line 66) | private void browse_Click(object sender, RoutedEventArgs e)
method checkSum (line 77) | bool checkSum(byte[] data)
method Download_Click (line 94) | private void Download_Click(object sender, RoutedEventArgs e)
method DownloadKeymap (line 101) | private void DownloadKeymap(string path)
method setStatusText (line 178) | void setStatusText(string msg)
method SendPacket (line 190) | bool SendPacket(HidStream stream, uint id, byte[] data)
method SendPacketFn (line 232) | bool SendPacketFn(HidStream stream, uint id, byte[] data)
method SendCommand (line 267) | byte[] SendCommand(HidStream stream, uint cmd, byte[] data)
method Devices_SelectionChanged (line 296) | private void Devices_SelectionChanged(object sender, SelectionChangedE...
FILE: KeymapDownloader/KeymapDownloader/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 32) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: KeymapDownloader/KeymapDownloader/Properties/Settings.Designer.cs
class Settings (line 15) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: SDK/components/ble/ble_advertising/ble_advertising.c
function whitelist_has_entries (line 56) | static bool whitelist_has_entries(ble_advertising_t * const p_advertising)
function addr_is_valid (line 66) | static bool addr_is_valid(uint8_t const * const p_addr)
function ble_adv_mode_t (line 83) | static ble_adv_mode_t adv_mode_next_get(ble_adv_mode_t adv_mode)
function on_connected (line 93) | static void on_connected(ble_advertising_t * const p_advertising, ble_ev...
function on_disconnected (line 107) | static void on_disconnected(ble_advertising_t * const p_advertising, ble...
function on_terminated (line 130) | static void on_terminated(ble_advertising_t * const p_advertising, ble_e...
function ble_adv_mode_t (line 161) | static ble_adv_mode_t adv_mode_next_avail_get(ble_advertising_t * const ...
function ret_code_t (line 213) | static ret_code_t set_adv_mode_directed_high_duty(ble_advertising_t * co...
function use_whitelist (line 268) | static bool use_whitelist(ble_advertising_t * const p_advertising)
function ret_code_t (line 283) | static ret_code_t flags_set(ble_advertising_t * const p_advertising, uin...
function config_is_valid (line 402) | static bool config_is_valid(ble_adv_modes_config_t const * const p_config)
function adv_set_data_size_max_get (line 429) | static uint16_t adv_set_data_size_max_get(ble_advertising_t const * cons...
function ble_advertising_conn_cfg_tag_set (line 450) | void ble_advertising_conn_cfg_tag_set(ble_advertising_t * const p_advert...
function ble_advertising_init (line 457) | uint32_t ble_advertising_init(ble_advertising_t * const p_adv...
function phy_is_valid (line 524) | static bool phy_is_valid(uint32_t const * const p_phy)
function ble_advertising_start (line 542) | uint32_t ble_advertising_start(ble_advertising_t * const p_advertising,
function ble_advertising_on_ble_evt (line 670) | void ble_advertising_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_co...
function ble_advertising_peer_addr_reply (line 696) | uint32_t ble_advertising_peer_addr_reply(ble_advertising_t * const p_adv...
function ble_advertising_whitelist_reply (line 712) | uint32_t ble_advertising_whitelist_reply(ble_advertising_t * const p_adv...
function ble_advertising_restart_without_whitelist (line 730) | uint32_t ble_advertising_restart_without_whitelist(ble_advertising_t * c...
function ble_advertising_modes_config_set (line 753) | void ble_advertising_modes_config_set(ble_advertising_t * con...
function ret_code_t (line 760) | ret_code_t ble_advertising_advdata_update(ble_advertising_t * const p_...
FILE: SDK/components/ble/ble_advertising/ble_advertising.h
type ble_adv_mode_t (line 83) | typedef enum
type ble_adv_evt_t (line 99) | typedef enum
type ble_adv_modes_config_t (line 117) | typedef struct
type ble_advertising_t (line 142) | typedef struct
type ble_adv_mode_config_t (line 176) | typedef struct
type ble_advertising_init_t (line 187) | typedef struct
FILE: SDK/components/ble/ble_link_ctx_manager/ble_link_ctx_manager.c
function ret_code_t (line 44) | ret_code_t blcm_link_ctx_get(blcm_link_ctx_storage_t const * const p_lin...
FILE: SDK/components/ble/ble_link_ctx_manager/ble_link_ctx_manager.h
type blcm_link_ctx_storage_t (line 84) | typedef struct
FILE: SDK/components/ble/ble_racp/ble_racp.c
function ble_racp_decode (line 46) | void ble_racp_decode(uint8_t data_len, uint8_t const * p_data, ble_racp_...
function ble_racp_encode (line 69) | uint8_t ble_racp_encode(const ble_racp_value_t * p_racp_val, uint8_t * p...
FILE: SDK/components/ble/ble_racp/ble_racp.h
type ble_racp_value_t (line 96) | typedef struct
FILE: SDK/components/ble/ble_services/ble_ancs_c/ancs_app_attr_get.c
type encode_app_attr_t (line 58) | typedef enum
function app_attr_is_requested (line 75) | static bool app_attr_is_requested(ble_ancs_c_t * p_ancs, uint32_t attr_id)
function app_attr_nb_to_get (line 91) | static uint32_t app_attr_nb_to_get(ble_ancs_c_t * p_ancs)
function ret_code_t (line 114) | static ret_code_t queued_write_tx_message(ble_ancs_c_t * p_ancs,
function encode_app_attr_t (line 139) | static encode_app_attr_t app_attr_encode_cmd_id(uint32_t * index,
function encode_app_attr_t (line 163) | static encode_app_attr_t app_attr_encode_app_id(ble_ancs_c_t * p_ancs,
function encode_app_attr_t (line 219) | static encode_app_attr_t app_attr_encode_attr_id(ble_ancs_c_t * p_ancs,
function ret_code_t (line 271) | static ret_code_t app_attr_execute_write(ble_ancs_c_t * p_ancs,
function app_attr_get (line 302) | static uint32_t app_attr_get(ble_ancs_c_t * p_ancs,
function ancs_c_app_attr_request (line 371) | uint32_t ancs_c_app_attr_request(ble_ancs_c_t * p_ancs,
FILE: SDK/components/ble/ble_services/ble_ancs_c/ancs_attr_parser.c
function all_req_attrs_parsed (line 49) | static bool all_req_attrs_parsed(ble_ancs_c_t * p_ancs)
function attr_is_requested (line 58) | static bool attr_is_requested(ble_ancs_c_t * p_ancs, ble_ancs_c_attr_t a...
function ble_ancs_c_parse_state_t (line 80) | static ble_ancs_c_parse_state_t command_id_parse(ble_ancs_c_t * p_ancs,
function ble_ancs_c_parse_state_t (line 114) | static ble_ancs_c_parse_state_t notif_uid_parse(ble_ancs_c_t * p_ancs,
function ble_ancs_c_parse_state_t (line 123) | static ble_ancs_c_parse_state_t app_id_parse(ble_ancs_c_t * p_ancs,
function ble_ancs_c_parse_state_t (line 152) | static ble_ancs_c_parse_state_t attr_id_parse(ble_ancs_c_t * p_ancs,
function ble_ancs_c_parse_state_t (line 195) | static ble_ancs_c_parse_state_t attr_len1_parse(ble_ancs_c_t * p_ancs, c...
function ble_ancs_c_parse_state_t (line 213) | static ble_ancs_c_parse_state_t attr_len2_parse(ble_ancs_c_t * p_ancs, c...
function ble_ancs_c_parse_state_t (line 262) | static ble_ancs_c_parse_state_t attr_data_parse(ble_ancs_c_t * p_ancs,
function ble_ancs_c_parse_state_t (line 309) | static ble_ancs_c_parse_state_t attr_skip(ble_ancs_c_t * p_ancs, const u...
function ancs_parse_get_attrs_response (line 339) | void ancs_parse_get_attrs_response(ble_ancs_c_t * p_ancs,
FILE: SDK/components/ble/ble_services/ble_ancs_c/nrf_ble_ancs_c.c
function gatt_error_handler (line 116) | static void gatt_error_handler(uint32_t nrf_error,
function on_disconnected (line 140) | static void on_disconnected(ble_ancs_c_t * p_ancs, ble_evt_t const * p_b...
function ble_ancs_c_on_db_disc_evt (line 149) | void ble_ancs_c_on_db_disc_evt(ble_ancs_c_t * p_ancs, ble_db_discovery_e...
function ble_ancs_verify_notification_format (line 219) | static uint32_t ble_ancs_verify_notification_format(ble_ancs_c_evt_notif...
function parse_notif (line 235) | static void parse_notif(ble_ancs_c_t const * p_ancs,
function ret_code_t (line 287) | ret_code_t nrf_ble_ancs_c_app_attr_request(ble_ancs_c_t * p_ancs,
function on_evt_gattc_notif (line 300) | static void on_evt_gattc_notif(ble_ancs_c_t * p_ancs, ble_evt_t const * ...
function on_ctrlpt_error_rsp (line 328) | static void on_ctrlpt_error_rsp(ble_ancs_c_t * p_ancs, ble_evt_t const *...
function on_write_rsp (line 343) | static void on_write_rsp(ble_ancs_c_t * p_ancs, ble_evt_t const* p_ble_evt)
function ble_ancs_c_on_ble_evt (line 358) | void ble_ancs_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ret_code_t (line 383) | ret_code_t ble_ancs_c_init(ble_ancs_c_t * p_ancs, ble_ancs_c_init_t cons...
function cccd_configure (line 443) | static uint32_t cccd_configure(ble_ancs_c_t const * const p_ancs,
function ret_code_t (line 469) | ret_code_t ble_ancs_c_notif_source_notif_enable(ble_ancs_c_t const * p_a...
function ret_code_t (line 477) | ret_code_t ble_ancs_c_notif_source_notif_disable(ble_ancs_c_t const * p_...
function ret_code_t (line 483) | ret_code_t ble_ancs_c_data_source_notif_enable(ble_ancs_c_t const * p_ancs)
function ret_code_t (line 491) | ret_code_t ble_ancs_c_data_source_notif_disable(ble_ancs_c_t const * p_a...
function ble_ancs_get_notif_attrs (line 497) | uint32_t ble_ancs_get_notif_attrs(ble_ancs_c_t * p_ancs,
function ret_code_t (line 549) | ret_code_t nrf_ble_ancs_c_attr_add(ble_ancs_c_t * ...
function ret_code_t (line 569) | ret_code_t nrf_ble_ancs_c_app_attr_add(ble_ancs_c_t ...
function ret_code_t (line 589) | ret_code_t ble_ancs_c_app_attr_remove(ble_ancs_c_t *...
function ret_code_t (line 598) | ret_code_t ble_ancs_c_notif_attr_remove(ble_ancs_c_t ...
function ret_code_t (line 607) | ret_code_t nrf_ble_ancs_c_attr_req_clear_all(ble_ancs_c_t * p_ancs)
function ret_code_t (line 615) | ret_code_t nrf_ble_ancs_c_request_attrs(ble_ancs_c_t * p_ancs,
function encode_notif_action (line 629) | static uint16_t encode_notif_action(uint8_t * p_encoded_data, uint32_t u...
function ret_code_t (line 640) | ret_code_t nrf_ancs_perform_notif_action(ble_ancs_c_t * p_ancs, uint32_t...
function ret_code_t (line 663) | ret_code_t nrf_ble_ancs_c_handles_assign(ble_ancs_c_t * p_ancs,
FILE: SDK/components/ble/ble_services/ble_ancs_c/nrf_ble_ancs_c.h
type ble_ancs_c_evt_type_t (line 187) | typedef enum
type ble_ancs_c_category_id_val_t (line 199) | typedef enum
type ble_ancs_c_evt_id_values_t (line 216) | typedef enum
type ble_ancs_c_cmd_id_val_t (line 224) | typedef enum
type ble_ancs_c_action_id_values_t (line 232) | typedef enum
type ble_ancs_c_app_attr_id_val_t (line 242) | typedef enum
type ble_ancs_c_notif_attr_id_val_t (line 248) | typedef enum
type ble_ancs_c_notif_flags_t (line 261) | typedef struct
type ble_ancs_c_parse_state_t (line 271) | typedef enum
type ble_ancs_c_evt_notif_t (line 285) | typedef struct
type ble_ancs_c_attr_t (line 295) | typedef struct
type ble_ancs_c_evt_attr_t (line 303) | typedef struct
type ble_ancs_c_evt_app_attr_t (line 309) | typedef struct
type ble_ancs_c_attr_list_t (line 317) | typedef struct
type ble_ancs_c_service_t (line 328) | typedef struct
type ble_ancs_c_evt_t (line 342) | typedef struct
type ble_ancs_parse_sm_t (line 357) | typedef struct
type ble_ancs_c_t (line 370) | typedef struct
type ble_ancs_c_init_t (line 388) | typedef struct
FILE: SDK/components/ble/ble_services/ble_ans_c/ble_ans_c.c
function gatt_error_handler (line 67) | static void gatt_error_handler(uint32_t nrf_error,
function char_set (line 84) | static void char_set(ble_gattc_char_t * p_dest_char, ble_gattc_char_t co...
function char_cccd_set (line 89) | static void char_cccd_set(ble_gattc_desc_t * p_cccd, uint16_t cccd_handle)
function is_valid_ans_srv_discovered (line 96) | static bool is_valid_ans_srv_discovered(ble_ans_c_service_t const * p_srv)
function ble_ans_c_on_db_disc_evt (line 114) | void ble_ans_c_on_db_disc_evt(ble_ans_c_t * p_ans, ble_db_discovery_evt_...
function event_notify (line 190) | static void event_notify(ble_ans_c_t * p_ans, ble_evt_t const * p_ble_evt)
function event_read_rsp (line 237) | static void event_read_rsp(ble_ans_c_t * p_ans, ble_evt_t const * p_ble_...
function event_disconnect (line 279) | static void event_disconnect(ble_ans_c_t * p_ans, ble_evt_t const * p_bl...
function ble_ans_c_on_ble_evt (line 299) | void ble_ans_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_ans_c_init (line 320) | uint32_t ble_ans_c_init(ble_ans_c_t * p_ans, ble_ans_c_init_t const * p_...
function cccd_configure (line 357) | static uint32_t cccd_configure(ble_ans_c_t const * const p_ans,
function ble_ans_c_enable_notif_new_alert (line 383) | uint32_t ble_ans_c_enable_notif_new_alert(ble_ans_c_t const * p_ans)
function ble_ans_c_disable_notif_new_alert (line 398) | uint32_t ble_ans_c_disable_notif_new_alert(ble_ans_c_t const * p_ans)
function ble_ans_c_enable_notif_unread_alert (line 406) | uint32_t ble_ans_c_enable_notif_unread_alert(ble_ans_c_t const * p_ans)
function ble_ans_c_disable_notif_unread_alert (line 418) | uint32_t ble_ans_c_disable_notif_unread_alert(ble_ans_c_t const * p_ans)
function ble_ans_c_control_point_write (line 426) | uint32_t ble_ans_c_control_point_write(ble_ans_c_t const * p...
function ble_ans_c_new_alert_read (line 450) | uint32_t ble_ans_c_new_alert_read(ble_ans_c_t const * p_ans)
function ble_ans_c_unread_alert_read (line 466) | uint32_t ble_ans_c_unread_alert_read(ble_ans_c_t const * p_ans)
function ble_ans_c_new_alert_notify (line 482) | uint32_t ble_ans_c_new_alert_notify(ble_ans_c_t const * p_ans, ble_ans_c...
function ble_ans_c_unread_alert_notify (line 493) | uint32_t ble_ans_c_unread_alert_notify(ble_ans_c_t const * p_ans, ble_an...
function ble_ans_c_handles_assign (line 504) | uint32_t ble_ans_c_handles_assign(ble_ans_c_t * p_ans,
FILE: SDK/components/ble/ble_services/ble_ans_c/ble_ans_c.h
type ble_ans_c_t (line 102) | typedef struct ble_ans_c_s ble_ans_c_t;
type ble_ans_category_id_t (line 105) | typedef enum
type ble_ans_command_id_t (line 123) | typedef enum
type ble_ans_c_evt_type_t (line 134) | typedef enum
type ble_ans_control_point_t (line 145) | typedef struct
type ble_ans_alert_settings_t (line 158) | typedef struct
type ble_ans_alert_notification_t (line 175) | typedef struct
type ble_ans_c_service_t (line 184) | typedef struct
type ble_ans_c_evt_t (line 201) | typedef struct
type ble_ans_c_s (line 219) | struct ble_ans_c_s
type ble_ans_c_init_t (line 234) | typedef struct
FILE: SDK/components/ble/ble_services/ble_bas/ble_bas.c
function on_write (line 71) | static void on_write(ble_bas_t * p_bas, ble_evt_t const * p_ble_evt)
function ble_bas_on_ble_evt (line 106) | void ble_bas_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ret_code_t (line 135) | static ret_code_t battery_level_char_add(ble_bas_t * p_bas, const ble_ba...
function ret_code_t (line 191) | ret_code_t ble_bas_init(ble_bas_t * p_bas, const ble_bas_init_t * p_bas_...
function ret_code_t (line 225) | static ret_code_t battery_notification_send(ble_gatts_hvx_params_t * con...
function ret_code_t (line 243) | ret_code_t ble_bas_battery_level_update(ble_bas_t * p_bas,
function ret_code_t (line 333) | ret_code_t ble_bas_battery_lvl_on_reconnection_update(ble_bas_t * p_bas,
FILE: SDK/components/ble/ble_services/ble_bas/ble_bas.h
type ble_bas_evt_type_t (line 96) | typedef enum
type ble_bas_evt_t (line 103) | typedef struct
type ble_bas_t (line 110) | typedef struct ble_bas_s ble_bas_t;
type ble_bas_init_t (line 117) | typedef struct
type ble_bas_s (line 129) | struct ble_bas_s
FILE: SDK/components/ble/ble_services/ble_bas_c/ble_bas_c.c
function gatt_error_handler (line 57) | static void gatt_error_handler(uint32_t nrf_error,
function on_read_rsp (line 80) | static void on_read_rsp(ble_bas_c_t * p_bas_c, ble_evt_t const * p_ble_evt)
function on_hvx (line 116) | static void on_hvx(ble_bas_c_t * p_ble_bas_c, ble_evt_t const * p_ble_evt)
function ble_bas_on_db_disc_evt (line 140) | void ble_bas_on_db_disc_evt(ble_bas_c_t * p_ble_bas_c, const ble_db_disc...
function cccd_configure (line 196) | static uint32_t cccd_configure(ble_bas_c_t * p_ble_bas_c, bool notificat...
function ble_bas_c_init (line 224) | uint32_t ble_bas_c_init(ble_bas_c_t * p_ble_bas_c, ble_bas_c_init_t * p_...
function on_disconnected (line 254) | static void on_disconnected(ble_bas_c_t * p_ble_bas_c, const ble_evt_t *...
function ble_bas_c_on_ble_evt (line 265) | void ble_bas_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_bas_c_bl_notif_enable (line 294) | uint32_t ble_bas_c_bl_notif_enable(ble_bas_c_t * p_ble_bas_c)
function ble_bas_c_bl_read (line 307) | uint32_t ble_bas_c_bl_read(ble_bas_c_t * p_ble_bas_c)
function ble_bas_c_handles_assign (line 327) | uint32_t ble_bas_c_handles_assign(ble_bas_c_t * p_ble_bas_c,
FILE: SDK/components/ble/ble_services/ble_bas_c/ble_bas_c.h
type ble_bas_c_evt_type_t (line 102) | typedef enum
type ble_bas_c_db_t (line 117) | typedef struct
type ble_bas_c_evt_t (line 124) | typedef struct
type ble_bas_c_t (line 143) | typedef struct ble_bas_c_s ble_bas_c_t;
type ble_bas_c_s (line 160) | struct ble_bas_c_s
type ble_bas_c_init_t (line 170) | typedef struct
FILE: SDK/components/ble/ble_services/ble_bps/ble_bps.c
function gatt_error_handler (line 71) | static void gatt_error_handler(uint32_t nrf_error,
function on_connect (line 89) | static void on_connect(ble_bps_t * p_bps, ble_evt_t const * p_ble_evt)
function on_disconnect (line 111) | static void on_disconnect(ble_bps_t * p_bps, ble_evt_t const * p_ble_evt)
function on_cccd_write (line 123) | static void on_cccd_write(ble_bps_t * p_bps, ble_gatts_evt_write_t const...
function on_write (line 152) | static void on_write(ble_bps_t * p_bps, ble_evt_t const * p_ble_evt)
function on_hvc (line 170) | static void on_hvc(ble_bps_t * p_bps, ble_evt_t const * p_ble_evt)
function ble_bps_on_ble_evt (line 184) | void ble_bps_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function bps_measurement_encode (line 221) | static uint8_t bps_measurement_encode(ble_bps_t * p_bps,
function ble_bps_init (line 288) | uint32_t ble_bps_init(ble_bps_t * p_bps, ble_bps_init_t const * p_bps_init)
function ble_bps_measurement_send (line 357) | uint32_t ble_bps_measurement_send(ble_bps_t * p_bps, ble_bps_meas_t * p_...
function ble_bps_is_indication_enabled (line 392) | uint32_t ble_bps_is_indication_enabled(ble_bps_t * p_bps, bool * p_indic...
FILE: SDK/components/ble/ble_services/ble_bps/ble_bps.h
type ble_bps_evt_type_t (line 102) | typedef enum
type ble_bps_evt_t (line 110) | typedef struct
type ble_bps_t (line 116) | typedef struct ble_bps_s ble_bps_t;
type ieee_float16_t (line 123) | typedef struct
type ble_bps_init_t (line 131) | typedef struct
type ble_bps_s (line 143) | struct ble_bps_s
type ble_bps_meas_t (line 157) | typedef struct ble_bps_meas_s
FILE: SDK/components/ble/ble_services/ble_cscs/ble_cscs.c
function on_connect (line 67) | static void on_connect(ble_cscs_t * p_cscs, ble_evt_t const * p_ble_evt)
function on_disconnect (line 78) | static void on_disconnect(ble_cscs_t * p_cscs, ble_evt_t const * p_ble_evt)
function on_meas_cccd_write (line 90) | static void on_meas_cccd_write(ble_cscs_t * p_cscs, ble_gatts_evt_write_...
function on_write (line 119) | static void on_write(ble_cscs_t * p_cscs, ble_evt_t const * p_ble_evt)
function ble_cscs_on_ble_evt (line 130) | void ble_cscs_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function csc_measurement_encode (line 171) | static uint8_t csc_measurement_encode(ble_cscs_t * p_cscs,
function ble_cscs_init (line 207) | uint32_t ble_cscs_init(ble_cscs_t * p_cscs, ble_cscs_init_t const * p_cs...
function ble_cscs_measurement_send (line 304) | uint32_t ble_cscs_measurement_send(ble_cscs_t * p_cscs, ble_cscs_meas_t ...
FILE: SDK/components/ble/ble_services/ble_cscs/ble_cscs.h
type ble_cscs_evt_type_t (line 112) | typedef enum
type ble_cscs_evt_t (line 119) | typedef struct
type ble_cscs_t (line 125) | typedef struct ble_cscs_s ble_cscs_t;
type ble_cscs_init_t (line 132) | typedef struct
type ble_cscs_s (line 151) | struct ble_cscs_s
type ble_cscs_meas_t (line 165) | typedef struct ble_cscs_meas_s
FILE: SDK/components/ble/ble_services/ble_cscs/ble_sc_ctrlpt.c
function ble_sc_ctrlpt_init (line 56) | uint32_t ble_sc_ctrlpt_init(ble_sc_ctrlpt_t * p_sc_ctrlpt,
function sc_ctrlpt_decode (line 108) | static uint32_t sc_ctrlpt_decode(uint8_t const * p_rcvd_val,
function ctrlpt_rsp_encode (line 151) | static int ctrlpt_rsp_encode(ble_sc_ctrlpt_t * p_sc_ctrlpt,
function is_location_supported (line 190) | static bool is_location_supported(ble_sc_ctrlpt_t * p_sc_ctrlpt, ble_sen...
function is_cccd_configured (line 210) | static bool is_cccd_configured(ble_sc_ctrlpt_t * p_sc_ctrlpt)
function sc_ctrlpt_resp_send (line 246) | static void sc_ctrlpt_resp_send(ble_sc_ctrlpt_t * p_sc_ctrlpt)
function on_ctrlpt_write (line 301) | static void on_ctrlpt_write(ble_sc_ctrlpt_t * p_sc_ctrlpt,
function on_rw_authorize_request (line 499) | static void on_rw_authorize_request(ble_sc_ctrlpt_t * p_sc_ctrlpt,
function on_tx_complete (line 533) | static void on_tx_complete(ble_sc_ctrlpt_t * p_sc_ctrlpt)
function on_connect (line 547) | static void on_connect(ble_sc_ctrlpt_t * p_sc_ctrlpt, ble_evt_t const * ...
function on_disconnect (line 559) | static void on_disconnect(ble_sc_ctrlpt_t * p_sc_ctrlpt, ble_evt_t const...
function on_sc_hvc_confirm (line 572) | static void on_sc_hvc_confirm(ble_sc_ctrlpt_t * p_sc_ctrlpt, ble_evt_t c...
function ble_sc_ctrlpt_on_ble_evt (line 584) | void ble_sc_ctrlpt_on_ble_evt(ble_sc_ctrlpt_t * p_sc_ctrlpt, ble_evt_t c...
function ble_sc_ctrlpt_rsp_send (line 619) | uint32_t ble_sc_ctrlpt_rsp_send(ble_sc_ctrlpt_t * p_sc_ctrlpt, ble_scpt_...
FILE: SDK/components/ble/ble_services/ble_cscs/ble_sc_ctrlpt.h
type ble_sc_ctrlpt_t (line 74) | typedef struct ble_sc_ctrlpt_s ble_sc_ctrlpt_t;
type ble_sc_ctrlpt_evt_type_t (line 78) | typedef enum
type ble_sc_ctrlpt_evt_t (line 87) | typedef struct
type ble_scpt_operator_t (line 99) | typedef enum {
type ble_scpt_response_t (line 109) | typedef enum {
type ble_scpt_procedure_status_t (line 118) | typedef enum {
type ble_scpt_response_t (line 126) | typedef ble_scpt_response_t (*ble_sc_ctrlpt_evt_handler_t) (ble_sc_ctrlp...
type ble_sc_ctrlpt_val_t (line 130) | typedef struct{
type ble_sc_ctrlpt_rsp_t (line 137) | typedef struct{
type ble_cs_ctrlpt_init_t (line 157) | typedef struct
type ble_sc_ctrlpt_resp_t (line 172) | typedef struct
type ble_sc_ctrlpt_s (line 182) | struct ble_sc_ctrlpt_s
FILE: SDK/components/ble/ble_services/ble_cts_c/ble_cts_c.c
function gatt_error_handler (line 66) | static void gatt_error_handler(uint32_t nrf_error,
function ble_cts_c_on_db_disc_evt (line 92) | void ble_cts_c_on_db_disc_evt(ble_cts_c_t * p_cts, ble_db_discovery_evt_...
function ble_cts_c_init (line 137) | uint32_t ble_cts_c_init(ble_cts_c_t * p_cts, ble_cts_c_init_t const * p_...
function current_time_decode (line 170) | static uint32_t current_time_decode(current_time_char_t * p_time,
function current_time_validate (line 214) | static uint32_t current_time_validate(current_time_char_t * p_time)
function current_time_read (line 271) | static void current_time_read(ble_cts_c_t * p_cts, ble_evt_t const * p_b...
function on_disconnect (line 319) | static void on_disconnect(ble_cts_c_t * p_cts, ble_evt_t const * p_ble_evt)
function ble_cts_c_on_ble_evt (line 341) | void ble_cts_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_cts_c_current_time_read (line 363) | uint32_t ble_cts_c_current_time_read(ble_cts_c_t const * p_cts)
function ble_cts_c_handles_assign (line 384) | uint32_t ble_cts_c_handles_assign(ble_cts_c_t * p_cts,
FILE: SDK/components/ble/ble_services/ble_cts_c/ble_cts_c.h
type day_date_time_t (line 115) | typedef struct
type exact_time_256_t (line 122) | typedef struct
type adjust_reason_t (line 129) | typedef struct
type current_time_char_t (line 138) | typedef struct
type ble_cts_c_t (line 145) | typedef struct ble_cts_c_s ble_cts_c_t;
type ble_cts_c_evt_type_t (line 148) | typedef enum
type ble_cts_c_handles_t (line 158) | typedef struct
type ble_cts_c_evt_t (line 165) | typedef struct
type ble_cts_c_s (line 181) | struct ble_cts_c_s
type ble_cts_c_init_t (line 191) | typedef struct
function __INLINE (line 245) | static __INLINE bool ble_cts_c_is_cts_discovered(const ble_cts_c_t * p_cts)
FILE: SDK/components/ble/ble_services/ble_dfu/ble_dfu.c
function dummy_evt_handler (line 73) | static void dummy_evt_handler(ble_dfu_buttonless_evt_type_t evt)
function on_ctrlpt_write (line 83) | static void on_ctrlpt_write(ble_gatts_evt_write_t const * p_evt_write)
function on_rw_authorize_req (line 127) | static void on_rw_authorize_req(ble_evt_t const * p_ble_evt)
function on_connect (line 154) | static void on_connect(ble_evt_t const * p_ble_evt)
function on_disconnect (line 164) | static void on_disconnect(ble_evt_t const * p_ble_evt)
function on_hvc (line 181) | static void on_hvc(ble_evt_t const * p_ble_evt)
function ble_dfu_buttonless_on_ble_evt (line 201) | void ble_dfu_buttonless_on_ble_evt(ble_evt_t const * p_ble_evt, void * p...
function ble_dfu_buttonless_resp_send (line 230) | uint32_t ble_dfu_buttonless_resp_send(ble_dfu_buttonless_op_code_t op_co...
function ble_dfu_buttonless_bootloader_start_finalize (line 262) | uint32_t ble_dfu_buttonless_bootloader_start_finalize(void)
function ble_dfu_buttonless_init (line 284) | uint32_t ble_dfu_buttonless_init(const ble_dfu_buttonless_init_t * p_dfu...
FILE: SDK/components/ble/ble_services/ble_dfu/ble_dfu.h
type ble_dfu_buttonless_evt_type_t (line 89) | typedef enum
type ble_dfu_buttonless_rsp_code_t (line 103) | typedef enum
type ble_dfu_buttonless_op_code_t (line 117) | typedef enum
type ble_dfu_buttonless_t (line 128) | typedef struct
type ble_dfu_buttonless_init_t (line 143) | typedef struct
FILE: SDK/components/ble/ble_services/ble_dfu/ble_dfu_bonded.c
function pm_evt_handler (line 76) | static void pm_evt_handler(pm_evt_t const * p_evt)
function retrieve_peer_data (line 126) | static uint32_t retrieve_peer_data(void)
function enter_bootloader (line 162) | static uint32_t enter_bootloader(void)
function ble_dfu_buttonless_backend_init (line 193) | uint32_t ble_dfu_buttonless_backend_init(ble_dfu_buttonless_t * p_dfu)
function ble_dfu_buttonless_async_svci_init (line 205) | uint32_t ble_dfu_buttonless_async_svci_init(void)
function ble_dfu_buttonless_on_sys_evt (line 230) | void ble_dfu_buttonless_on_sys_evt(uint32_t sys_evt, void * p_context)
function ble_dfu_buttonless_char_add (line 280) | uint32_t ble_dfu_buttonless_char_add(ble_dfu_buttonless_t * p_dfu)
function ble_dfu_buttonless_on_ctrl_pt_write (line 301) | void ble_dfu_buttonless_on_ctrl_pt_write(ble_gatts_evt_write_t const * p...
function ble_dfu_buttonless_bootloader_start_prepare (line 347) | uint32_t ble_dfu_buttonless_bootloader_start_prepare(void)
FILE: SDK/components/ble/ble_services/ble_dfu/ble_dfu_unbonded.c
function set_adv_name (line 78) | static uint32_t set_adv_name(nrf_dfu_adv_name_t * p_adv_name)
function enter_bootloader (line 105) | static uint32_t enter_bootloader()
function ble_dfu_buttonless_backend_init (line 134) | uint32_t ble_dfu_buttonless_backend_init(ble_dfu_buttonless_t * p_dfu)
function ble_dfu_buttonless_async_svci_init (line 144) | uint32_t ble_dfu_buttonless_async_svci_init(void)
function ble_dfu_buttonless_on_sys_evt (line 160) | void ble_dfu_buttonless_on_sys_evt(uint32_t sys_evt, void * p_context)
function ble_dfu_buttonless_char_add (line 206) | uint32_t ble_dfu_buttonless_char_add(ble_dfu_buttonless_t * p_dfu)
function ble_dfu_buttonless_on_ctrl_pt_write (line 227) | void ble_dfu_buttonless_on_ctrl_pt_write(ble_gatts_evt_write_t const * p...
function ble_dfu_buttonless_bootloader_start_prepare (line 288) | uint32_t ble_dfu_buttonless_bootloader_start_prepare(void)
FILE: SDK/components/ble/ble_services/ble_dis/ble_dis.c
function sys_id_encode (line 75) | static void sys_id_encode(uint8_t * p_encoded_buffer, ble_dis_sys_id_t c...
function pnp_id_encode (line 97) | static void pnp_id_encode(uint8_t * p_encoded_buffer, ble_dis_pnp_id_t c...
function char_add (line 124) | static uint32_t char_add(uint16_t uuid,
function ble_dis_init (line 148) | uint32_t ble_dis_init(ble_dis_init_t const * p_dis_init)
FILE: SDK/components/ble/ble_services/ble_dis/ble_dis.h
type ble_dis_sys_id_t (line 74) | typedef struct
type ble_dis_reg_cert_data_list_t (line 81) | typedef struct
type ble_dis_pnp_id_t (line 88) | typedef struct
type ble_dis_init_t (line 99) | typedef struct
FILE: SDK/components/ble/ble_services/ble_dis_c/ble_dis_c.c
function gatt_error_handler (line 76) | static void gatt_error_handler(uint32_t nrf_error, void * p_contex, uint...
function ret_code_t (line 98) | static ret_code_t system_id_decode(uint8_t const * p_data,
function ret_code_t (line 132) | static ret_code_t pnp_id_decode(uint8_t const * p_data,
function ble_dis_c_char_type_t (line 171) | static ble_dis_c_char_type_t char_type_get(ble_dis_c_t * p_ble_dis_c, ui...
function on_read_rsp (line 194) | static void on_read_rsp(ble_dis_c_t * p_ble_dis_c, ble_evt_t const * p_b...
function on_disconnected (line 293) | static void on_disconnected(ble_dis_c_t * p_ble_dis_c, const ble_evt_t *...
function ret_code_t (line 313) | ret_code_t ble_dis_c_init(ble_dis_c_t * p_ble_dis_c, ble_dis_c_init_t * ...
function ble_dis_c_on_db_disc_evt (line 349) | void ble_dis_c_on_db_disc_evt(ble_dis_c_t * p_ble_dis_c, ble_db_discover...
function ble_dis_c_on_ble_evt (line 440) | void ble_dis_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ret_code_t (line 471) | ret_code_t ble_dis_c_read(ble_dis_c_t * p_ble_dis_c, ble_dis_c_char_type...
function ret_code_t (line 496) | ret_code_t ble_dis_c_handles_assign(ble_dis_c_t * p_ble_dis_c,
FILE: SDK/components/ble/ble_services/ble_dis_c/ble_dis_c.h
type ble_dis_c_evt_type_t (line 107) | typedef enum
type ble_dis_c_char_type_t (line 116) | typedef enum
type ble_dis_c_handle_t (line 131) | typedef uint16_t ble_dis_c_handle_t;
type ble_dis_c_evt_disc_complete_t (line 134) | typedef struct
type ble_dis_c_string_t (line 140) | typedef struct
type ble_dis_c_evt_read_rsp_t (line 147) | typedef struct
type ble_dis_c_evt_read_rsp_err_t (line 161) | typedef struct
type ble_dis_c_evt_t (line 169) | typedef struct
type ble_dis_c_t (line 182) | typedef struct ble_dis_c_s ble_dis_c_t;
type ble_dis_c_s (line 192) | struct ble_dis_c_s
type ble_dis_c_char_group_t (line 203) | typedef struct
type ble_dis_c_init_t (line 210) | typedef struct
FILE: SDK/components/ble/ble_services/ble_escs/nrf_ble_escs.c
type val_handle_to_uuid_t (line 53) | typedef struct
function char_add (line 264) | static uint32_t char_add(ble_add_char_params_t * p_char_init,
function on_connect (line 300) | static void on_connect(nrf_ble_escs_t * p_escs, ble_evt_t const * p_ble_...
function on_disconnect (line 312) | static void on_disconnect(nrf_ble_escs_t * p_escs, ble_evt_t const * p_b...
function get_evt_type_for_handle (line 320) | static uint32_t get_evt_type_for_handle(uint16_t handle, uint16_t * p_uuid)
function ret_code_t (line 341) | static ret_code_t on_write(nrf_ble_escs_t * p_escs, ble_evt_t const * p_...
function on_long_write (line 370) | static void on_long_write(nrf_ble_escs_t * p_escs, ble_evt_t const * p_b...
function ret_code_t (line 448) | static ret_code_t on_read(nrf_ble_escs_t * p_escs, ble_evt_t const * p_b...
function ret_code_t (line 464) | static ret_code_t on_rw_authorize_req(nrf_ble_escs_t * p_escs, ble_evt_t...
function ret_code_t (line 517) | ret_code_t nrf_ble_escs_on_ble_evt(nrf_ble_escs_t * p_escs, ble_evt_t co...
function ret_code_t (line 558) | ret_code_t nrf_ble_escs_init(nrf_ble_escs_t * p_escs, const nrf_ble_escs...
FILE: SDK/components/ble/ble_services/ble_escs/nrf_ble_escs.h
type nrf_ble_escs_active_slot_t (line 99) | typedef uint8_t nrf_ble_escs_active_slot_t;
type nrf_ble_escs_adv_interval_t (line 100) | typedef uint16_t nrf_ble_escs_adv_interval_t;
type nrf_ble_escs_radio_tx_pwr_t (line 101) | typedef int8_t nrf_ble_escs_radio_tx_pwr_t;
type nrf_ble_escs_adv_tx_pwr_t (line 102) | typedef int8_t nrf_ble_escs_adv_tx_pwr_t;
type nrf_ble_escs_lock_state_read_t (line 105) | typedef enum
type nrf_ble_escs_lock_byte_t (line 114) | typedef enum
type nrf_ble_escs_lock_state_t (line 130) | typedef union
type nrf_ble_escs_unlock_t (line 137) | typedef union
type nrf_ble_escs_factory_reset_t (line 160) | typedef uint8_t nrf_ble_escs_factory_reset_t;
type nrf_ble_escs_remain_conntbl_t (line 163) | typedef union
type nrf_ble_escs_init_params_t (line 170) | typedef struct
type nrf_ble_escs_t (line 181) | typedef struct nrf_ble_escs_s nrf_ble_escs_t;
type nrf_ble_escs_init_t (line 199) | typedef struct
type nrf_ble_escs_s (line 206) | struct nrf_ble_escs_s
FILE: SDK/components/ble/ble_services/ble_gls/ble_gls.c
function gatt_error_handler (line 84) | static void gatt_error_handler(uint32_t nrf_error,
function next_sequence_number_set (line 101) | static uint32_t next_sequence_number_set(void)
function gls_meas_encode (line 133) | static uint8_t gls_meas_encode(const ble_gls_meas_t * p_meas, uint8_t * ...
function ble_gls_init (line 168) | uint32_t ble_gls_init(ble_gls_t * p_gls, const ble_gls_init_t * p_gls_init)
function racp_send (line 286) | static void racp_send(ble_gls_t * p_gls, ble_racp_value_t * p_racp_val)
function racp_response_code_send (line 329) | static void racp_response_code_send(ble_gls_t * p_gls, uint8_t opcode, u...
function glucose_meas_send (line 355) | static uint32_t glucose_meas_send(ble_gls_t * p_gls, ble_gls_rec_t * p_rec)
function racp_report_records_all (line 398) | static uint32_t racp_report_records_all(ble_gls_t * p_gls)
function racp_report_records_first_last (line 434) | static uint32_t racp_report_records_first_last(ble_gls_t * p_gls)
function racp_report_records_greater_or_equal (line 482) | static uint32_t racp_report_records_greater_or_equal(ble_gls_t * p_gls)
function racp_report_records_completed (line 521) | static void racp_report_records_completed(ble_gls_t * p_gls)
function racp_report_records_procedure (line 542) | static void racp_report_records_procedure(ble_gls_t * p_gls)
function is_request_to_be_executed (line 620) | static bool is_request_to_be_executed(ble_racp_value_t const * p_racp_re...
function report_records_request_execute (line 733) | static void report_records_request_execute(ble_gls_t * p_gls, ble_racp_v...
function report_num_records_request_execute (line 753) | static void report_num_records_request_execute(ble_gls_t * p_gls, ble_ra...
function ble_gls_are_cccd_configured (line 824) | uint32_t ble_gls_are_cccd_configured(ble_gls_t * p_gls, bool * p_are_ccc...
function on_racp_value_write (line 873) | static void on_racp_value_write(ble_gls_t * p_gls, ble_gatts_evt_write_t...
function on_glm_cccd_write (line 987) | static void on_glm_cccd_write(ble_gls_t * p_gls, ble_gatts_evt_write_t c...
function on_write (line 1018) | static void on_write(ble_gls_t * p_gls, ble_evt_t const * p_ble_evt)
function on_tx_complete (line 1040) | static void on_tx_complete(ble_gls_t * p_gls, ble_evt_t const * p_ble_evt)
function on_rw_authorize_request (line 1049) | static void on_rw_authorize_request(ble_gls_t * p_gls, ble_gatts_evt_t c...
function ble_gls_on_ble_evt (line 1073) | void ble_gls_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_gls_glucose_new_meas (line 1114) | uint32_t ble_gls_glucose_new_meas(ble_gls_t * p_gls, ble_gls_rec_t * p_rec)
FILE: SDK/components/ble/ble_services/ble_gls/ble_gls.h
type sfloat_t (line 193) | typedef struct
type ble_gls_evt_type_t (line 200) | typedef enum
type ble_gls_evt_t (line 207) | typedef struct
type ble_gls_t (line 213) | typedef struct ble_gls_s ble_gls_t;
type ble_gls_meas_t (line 219) | typedef struct
type ble_gls_meas_context_t (line 232) | typedef struct
type ble_gls_rec_t (line 248) | typedef struct
type ble_gls_init_t (line 256) | typedef struct
type ble_gls_s (line 270) | struct ble_gls_s
FILE: SDK/components/ble/ble_services/ble_gls/ble_gls_db.c
type database_entry_t (line 45) | typedef struct
function ble_gls_db_init (line 56) | uint32_t ble_gls_db_init(void)
function ble_gls_db_num_records_get (line 72) | uint16_t ble_gls_db_num_records_get(void)
function ble_gls_db_record_get (line 78) | uint32_t ble_gls_db_record_get(uint8_t rec_ndx, ble_gls_rec_t * p_rec)
function ble_gls_db_record_add (line 92) | uint32_t ble_gls_db_record_add(ble_gls_rec_t * p_rec)
function ble_gls_db_record_delete (line 120) | uint32_t ble_gls_db_record_delete(uint8_t rec_ndx)
FILE: SDK/components/ble/ble_services/ble_hids/ble_hids.c
function ble_hids_client_context_size_calc (line 87) | static size_t ble_hids_client_context_size_calc(ble_hids_t * p_hids)
function ble_hids_char_id_t (line 126) | static ble_hids_char_id_t make_char_id(uint16_t uuid, uint8_t rep_type, ...
function on_connect (line 143) | static void on_connect(ble_hids_t * p_hids, ble_evt_t const * p_ble_evt)
function on_control_point_write (line 186) | static void on_control_point_write(ble_hids_t * p_hids, ble_evt_t const ...
function on_protocol_mode_write (line 239) | static void on_protocol_mode_write(ble_hids_t * p_hids, ble_evt_t const ...
function on_protocol_mode_read_auth (line 293) | void on_protocol_mode_read_auth(ble_hids_t * p_hids, ble_evt_t const * p...
function on_report_cccd_write (line 331) | static void on_report_cccd_write(ble_hids_t * p_hids,
function on_report_value_write (line 369) | static void on_report_value_write(ble_hids_t * p_hids,
function on_report_value_read_auth (line 422) | static void on_report_value_read_auth(ble_hids_t * p_hids,
function inp_rep_cccd_identify (line 484) | static bool inp_rep_cccd_identify(ble_hids_t * p_hids,
function rep_value_identify (line 513) | static bool rep_value_identify(ble_hids_t * p_hids,
function on_write (line 574) | static void on_write(ble_hids_t * p_hids, ble_evt_t const * p_ble_evt)
function on_rw_authorize_request (line 643) | static void on_rw_authorize_request(ble_hids_t * p_hids, ble_evt_t const...
function ble_hids_on_ble_evt (line 698) | void ble_hids_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function protocol_mode_char_add (line 731) | static uint32_t protocol_mode_char_add(ble_hids_t * p_hids,
function rep_char_add (line 768) | static uint32_t rep_char_add(ble_hids_t * p_hids,
function rep_map_char_add (line 820) | static uint32_t rep_map_char_add(ble_hids_t * p_hids, const ble_hids_ini...
function boot_inp_rep_char_add (line 893) | static uint32_t boot_inp_rep_char_add(ble_hids_t * ...
function boot_kb_outp_rep_char_add (line 925) | static uint32_t boot_kb_outp_rep_char_add(ble_hids_t * p_hids, const ble...
function encode_hid_information (line 952) | static uint8_t encode_hid_information(uint8_t *...
function hid_information_char_add (line 973) | static uint32_t hid_information_char_add(ble_hids_t * p_hids, const ble_...
function hid_control_point_char_add (line 1002) | static uint32_t hid_control_point_char_add(ble_hids_t * p_hids, security...
function inp_rep_characteristics_add (line 1030) | static uint32_t inp_rep_characteristics_add(ble_hids_t * p_hids,
function outp_rep_characteristics_add (line 1073) | static uint32_t outp_rep_characteristics_add(ble_hids_t * p_h...
function feature_rep_characteristics_add (line 1116) | static uint32_t feature_rep_characteristics_add(ble_hids_t * ...
function includes_add (line 1158) | static uint32_t includes_add(ble_hids_t * p_hids, const ble_hids_init_t ...
function ble_hids_init (line 1179) | uint32_t ble_hids_init(ble_hids_t * p_hids, const ble_hids_init_t * p_hi...
function ble_hids_inp_rep_send (line 1318) | uint32_t ble_hids_inp_rep_send(ble_hids_t * p_hids,
function ble_hids_boot_kb_inp_rep_send (line 1393) | uint32_t ble_hids_boot_kb_inp_rep_send(ble_hids_t * p_hids,
function ble_hids_boot_mouse_inp_rep_send (line 1446) | uint32_t ble_hids_boot_mouse_inp_rep_send(ble_hids_t * p_hids,
function ble_hids_outp_rep_get (line 1522) | uint32_t ble_hids_outp_rep_get(ble_hids_t * p_hids,
FILE: SDK/components/ble/ble_services/ble_hids/ble_hids.h
type ble_hids_char_id_t (line 162) | typedef struct
type ble_hids_evt_type_t (line 170) | typedef enum
type ble_hids_evt_t (line 183) | typedef struct
type ble_hids_t (line 208) | typedef struct ble_hids_s ble_hids_t;
type ble_hids_char_sec_t (line 214) | typedef struct
type ble_hids_hid_information_t (line 222) | typedef struct
type ble_hids_inp_rep_init_t (line 232) | typedef struct
type ble_hids_outp_rep_init_t (line 241) | typedef struct
type ble_hids_feature_rep_init_t (line 250) | typedef struct
type ble_hids_rep_map_init_t (line 259) | typedef struct
type ble_hids_rep_char_t (line 269) | typedef struct
type ble_hids_client_context_t (line 276) | typedef struct
type ble_hids_init_t (line 284) | typedef struct
type ble_hids_s (line 309) | struct ble_hids_s
FILE: SDK/components/ble/ble_services/ble_hrs/ble_hrs.c
function on_connect (line 70) | static void on_connect(ble_hrs_t * p_hrs, ble_evt_t const * p_ble_evt)
function on_disconnect (line 81) | static void on_disconnect(ble_hrs_t * p_hrs, ble_evt_t const * p_ble_evt)
function on_hrm_cccd_write (line 93) | static void on_hrm_cccd_write(ble_hrs_t * p_hrs, ble_gatts_evt_write_t c...
function on_write (line 122) | static void on_write(ble_hrs_t * p_hrs, ble_evt_t const * p_ble_evt)
function ble_hrs_on_ble_evt (line 133) | void ble_hrs_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function hrm_encode (line 166) | static uint8_t hrm_encode(ble_hrs_t * p_hrs, uint16_t heart_rate, uint8_...
function ble_hrs_init (line 220) | uint32_t ble_hrs_init(ble_hrs_t * p_hrs, const ble_hrs_init_t * p_hrs_init)
function ble_hrs_heart_rate_measurement_send (line 287) | uint32_t ble_hrs_heart_rate_measurement_send(ble_hrs_t * p_hrs, uint16_t...
function ble_hrs_rr_interval_add (line 325) | void ble_hrs_rr_interval_add(ble_hrs_t * p_hrs, uint16_t rr_interval)
function ble_hrs_rr_interval_buffer_is_full (line 341) | bool ble_hrs_rr_interval_buffer_is_full(ble_hrs_t * p_hrs)
function ble_hrs_sensor_contact_supported_set (line 347) | uint32_t ble_hrs_sensor_contact_supported_set(ble_hrs_t * p_hrs, bool is...
function ble_hrs_sensor_contact_detected_update (line 362) | void ble_hrs_sensor_contact_detected_update(ble_hrs_t * p_hrs, bool is_s...
function ble_hrs_body_sensor_location_set (line 368) | uint32_t ble_hrs_body_sensor_location_set(ble_hrs_t * p_hrs, uint8_t bod...
function ble_hrs_on_gatt_evt (line 383) | void ble_hrs_on_gatt_evt(ble_hrs_t * p_hrs, nrf_ble_gatt_evt_t const * p...
FILE: SDK/components/ble/ble_services/ble_hrs/ble_hrs.h
type ble_hrs_evt_type_t (line 114) | typedef enum
type ble_hrs_evt_t (line 121) | typedef struct
type ble_hrs_t (line 127) | typedef struct ble_hrs_s ble_hrs_t;
type ble_hrs_init_t (line 134) | typedef struct
type ble_hrs_s (line 144) | struct ble_hrs_s
FILE: SDK/components/ble/ble_services/ble_hrs_c/ble_hrs_c.c
function gatt_error_handler (line 64) | static void gatt_error_handler(uint32_t nrf_error,
function on_hvx (line 89) | static void on_hvx(ble_hrs_c_t * p_ble_hrs_c, const ble_evt_t * p_ble_evt)
function on_disconnected (line 157) | static void on_disconnected(ble_hrs_c_t * p_ble_hrs_c, const ble_evt_t *...
function ble_hrs_on_db_disc_evt (line 168) | void ble_hrs_on_db_disc_evt(ble_hrs_c_t * p_ble_hrs_c, const ble_db_disc...
function ble_hrs_c_init (line 214) | uint32_t ble_hrs_c_init(ble_hrs_c_t * p_ble_hrs_c, ble_hrs_c_init_t * p_...
function ble_hrs_c_on_ble_evt (line 234) | void ble_hrs_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function cccd_configure (line 261) | static uint32_t cccd_configure(ble_hrs_c_t * p_ble_hrs_c, bool enable)
function ble_hrs_c_hrm_notif_enable (line 288) | uint32_t ble_hrs_c_hrm_notif_enable(ble_hrs_c_t * p_ble_hrs_c)
function ble_hrs_c_handles_assign (line 296) | uint32_t ble_hrs_c_handles_assign(ble_hrs_c_t * p_ble_hrs_c,
FILE: SDK/components/ble/ble_services/ble_hrs_c/ble_hrs_c.h
type ble_hrs_c_evt_type_t (line 122) | typedef enum
type ble_hrm_t (line 136) | typedef struct
type hrs_db_t (line 144) | typedef struct
type ble_hrs_c_evt_t (line 151) | typedef struct
type ble_hrs_c_t (line 170) | typedef struct ble_hrs_c_s ble_hrs_c_t;
type ble_hrs_c_s (line 188) | struct ble_hrs_c_s
type ble_hrs_c_init_t (line 199) | typedef struct
FILE: SDK/components/ble/ble_services/ble_hts/ble_hts.c
function gatt_error_handler (line 68) | static void gatt_error_handler(uint32_t nrf_error,
function on_connect (line 86) | static void on_connect(ble_hts_t * p_hts, ble_evt_t const * p_ble_evt)
function on_disconnect (line 107) | static void on_disconnect(ble_hts_t * p_hts, ble_evt_t const * p_ble_evt)
function on_cccd_write (line 119) | static void on_cccd_write(ble_hts_t * p_hts, ble_gatts_evt_write_t const...
function on_write (line 148) | static void on_write(ble_hts_t * p_hts, ble_evt_t const * p_ble_evt)
function on_hvc (line 166) | static void on_hvc(ble_hts_t * p_hts, ble_evt_t const * p_ble_evt)
function ble_hts_on_ble_evt (line 180) | void ble_hts_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function hts_measurement_encode (line 217) | static uint8_t hts_measurement_encode(ble_hts_t * p_hts,
function ble_hts_init (line 271) | uint32_t ble_hts_init(ble_hts_t * p_hts, ble_hts_init_t const * p_hts_init)
function ble_hts_measurement_send (line 342) | uint32_t ble_hts_measurement_send(ble_hts_t * p_hts, ble_hts_meas_t * p_...
function ble_hts_is_indication_enabled (line 377) | uint32_t ble_hts_is_indication_enabled(ble_hts_t * p_hts, bool * p_indic...
FILE: SDK/components/ble/ble_services/ble_hts/ble_hts.h
type ble_hts_evt_type_t (line 104) | typedef enum
type ble_hts_evt_t (line 112) | typedef struct
type ble_hts_t (line 118) | typedef struct ble_hts_s ble_hts_t;
type ieee_float32_t (line 125) | typedef struct
type ble_hts_init_t (line 133) | typedef struct
type ble_hts_s (line 146) | struct ble_hts_s
type ble_hts_meas_t (line 160) | typedef struct ble_hts_meas_s
FILE: SDK/components/ble/ble_services/ble_ias/ble_ias.c
function on_connect (line 70) | static void on_connect(ble_ias_t * p_ias, ble_evt_t const * p_ble_evt)
function on_write (line 95) | static void on_write(ble_ias_t * p_ias, ble_evt_t const * p_ble_evt)
function ble_ias_on_ble_evt (line 128) | void ble_ias_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_ias_init (line 149) | uint32_t ble_ias_init(ble_ias_t * p_ias, const ble_ias_init_t * p_ias_init)
function ble_ias_alert_level_get (line 188) | uint32_t ble_ias_alert_level_get(ble_ias_t * p_ias, uint16_t conn_handle...
FILE: SDK/components/ble/ble_services/ble_ias/ble_ias.h
type ble_ias_evt_type_t (line 106) | typedef enum
type ble_ias_client_context_t (line 116) | typedef struct
type ble_ias_evt_t (line 123) | typedef struct
type ble_ias_t (line 132) | typedef struct ble_ias_s ble_ias_t;
type ble_ias_init_t (line 141) | typedef struct
type ble_ias_s (line 150) | struct ble_ias_s
FILE: SDK/components/ble/ble_services/ble_ias_c/ble_ias_c.c
function gatt_error_handler (line 57) | static void gatt_error_handler(uint32_t nrf_error,
function ble_ias_c_on_db_disc_evt (line 72) | void ble_ias_c_on_db_disc_evt(ble_ias_c_t * p_ias_c, ble_db_discovery_ev...
function ble_ias_c_init (line 126) | uint32_t ble_ias_c_init(ble_ias_c_t * p_ias_c, ble_ias_c_init_t const * ...
function on_disconnect (line 152) | static void on_disconnect(ble_ias_c_t * p_ias_c, ble_evt_t const * p_ble...
function ble_ias_c_on_ble_evt (line 171) | void ble_ias_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function write_characteristic_value (line 202) | static uint32_t write_characteristic_value(ble_ias_c_t const * const p_i...
function ble_ias_c_send_alert_level (line 223) | uint32_t ble_ias_c_send_alert_level(ble_ias_c_t const * p_ias_c, uint8_t...
function ble_ias_c_handles_assign (line 236) | uint32_t ble_ias_c_handles_assign(ble_ias_c_t * p_ias_c,
FILE: SDK/components/ble/ble_services/ble_ias_c/ble_ias_c.h
type ble_ias_c_t (line 103) | typedef struct ble_ias_c_s ble_ias_c_t;
type ble_ias_c_evt_type_t (line 106) | typedef enum
type ble_ias_c_evt_t (line 114) | typedef struct
type ble_ias_c_s (line 125) | struct ble_ias_c_s
type ble_ias_c_init_t (line 137) | typedef struct
function __INLINE (line 192) | static __INLINE bool ble_ias_c_is_discovered(ble_ias_c_t const * p_ias_c)
FILE: SDK/components/ble/ble_services/ble_ipsp/ble_ipsp.c
type channel_state_t (line 165) | typedef enum
type incoming_channel_action_t (line 175) | typedef enum
type peer_connection_t (line 185) | typedef struct
type channel_t (line 194) | typedef struct
function connected_device_init (line 217) | void connected_device_init(uint32_t index)
function __INLINE (line 230) | static __INLINE void connected_device_allocate(ble_gap_addr_t const * p_...
function __INLINE (line 252) | static __INLINE uint32_t connected_device_search(uint16_t conn_handle)
function __INLINE (line 269) | static __INLINE void channel_init(uint8_t ch_id)
function __INLINE (line 283) | static __INLINE void channel_free(uint8_t ch_id)
function __INLINE (line 299) | static __INLINE uint32_t channel_search(uint16_t conn_handle, uint16_t l...
function __INLINE (line 332) | static __INLINE void app_notify(ble_ipsp_handle_t * p_handle, ble_ipsp_e...
function __INLINE (line 350) | static __INLINE bool is_tx_buffer(uint32_t ch_id, const uint8_t * p_buffer)
function __INLINE (line 367) | static __INLINE void rx_buffers_submit(uint32_t ch_id)
function __INLINE (line 400) | static __INLINE void rx_buffer_mark_unused(uint32_t ch_id, uint8_t * p_b...
function ble_ipsp_evt_handler (line 412) | void ble_ipsp_evt_handler(ble_evt_t const * p_evt)
function ble_ipsp_init (line 768) | uint32_t ble_ipsp_init(const ble_ipsp_init_t * p_init)
function ble_ipsp_connect (line 813) | uint32_t ble_ipsp_connect(const ble_ipsp_handle_t * p_handle)
function ble_ipsp_send (line 889) | uint32_t ble_ipsp_send(ble_ipsp_handle_t const * p_handle,
function ble_ipsp_disconnect (line 931) | uint32_t ble_ipsp_disconnect(ble_ipsp_handle_t const * p_handle)
function ble_ipsp_incoming_channel_reject (line 962) | void ble_ipsp_incoming_channel_reject(uint16_t conn_handle)
function ble_ipsp_incoming_channel_accept (line 973) | void ble_ipsp_incoming_channel_accept(uint16_t conn_handle)
FILE: SDK/components/ble/ble_services/ble_ipsp/ble_ipsp.h
type ble_ipsp_evt_type_t (line 109) | typedef enum
type ble_ipsp_event_param_t (line 119) | typedef struct
type ble_ipsp_evt_t (line 127) | typedef struct
type ble_ipsp_handle_t (line 139) | typedef struct
type ble_ipsp_init_t (line 163) | typedef struct
FILE: SDK/components/ble/ble_services/ble_lbs/ble_lbs.c
function on_write (line 51) | static void on_write(ble_lbs_t * p_lbs, ble_evt_t const * p_ble_evt)
function ble_lbs_on_ble_evt (line 64) | void ble_lbs_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_lbs_init (line 81) | uint32_t ble_lbs_init(ble_lbs_t * p_lbs, const ble_lbs_init_t * p_lbs_init)
function ble_lbs_on_button_change (line 137) | uint32_t ble_lbs_on_button_change(uint16_t conn_handle, ble_lbs_t * p_lb...
FILE: SDK/components/ble/ble_services/ble_lbs/ble_lbs.h
type ble_lbs_t (line 100) | typedef struct ble_lbs_s ble_lbs_t;
type ble_lbs_init_t (line 106) | typedef struct
type ble_lbs_s (line 112) | struct ble_lbs_s
FILE: SDK/components/ble/ble_services/ble_lbs_c/ble_lbs_c.c
function gatt_error_handler (line 60) | static void gatt_error_handler(uint32_t nrf_error,
function on_hvx (line 85) | static void on_hvx(ble_lbs_c_t * p_ble_lbs_c, ble_evt_t const * p_ble_evt)
function on_disconnected (line 117) | static void on_disconnected(ble_lbs_c_t * p_ble_lbs_c, ble_evt_t const *...
function ble_lbs_on_db_disc_evt (line 129) | void ble_lbs_on_db_disc_evt(ble_lbs_c_t * p_ble_lbs_c, ble_db_discovery_...
function ble_lbs_c_init (line 177) | uint32_t ble_lbs_c_init(ble_lbs_c_t * p_ble_lbs_c, ble_lbs_c_init_t * p_...
function ble_lbs_c_on_ble_evt (line 209) | void ble_lbs_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function cccd_configure (line 241) | static uint32_t cccd_configure(ble_lbs_c_t * p_ble_lbs_c, bool enable)
function ble_lbs_c_button_notif_enable (line 267) | uint32_t ble_lbs_c_button_notif_enable(ble_lbs_c_t * p_ble_lbs_c)
function ble_lbs_led_status_send (line 281) | uint32_t ble_lbs_led_status_send(ble_lbs_c_t * p_ble_lbs_c, uint8_t status)
function ble_lbs_c_handles_assign (line 308) | uint32_t ble_lbs_c_handles_assign(ble_lbs_c_t * p_ble_lbs_c,
FILE: SDK/components/ble/ble_services/ble_lbs_c/ble_lbs_c.h
type ble_lbs_c_evt_type_t (line 105) | typedef enum
type ble_button_t (line 112) | typedef struct
type lbs_db_t (line 118) | typedef struct
type ble_lbs_c_evt_t (line 126) | typedef struct
type ble_lbs_c_t (line 138) | typedef struct ble_lbs_c_s ble_lbs_c_t;
type ble_lbs_c_s (line 148) | struct ble_lbs_c_s
type ble_lbs_c_init_t (line 159) | typedef struct
FILE: SDK/components/ble/ble_services/ble_lls/ble_lls.c
function on_connect (line 57) | static void on_connect(ble_lls_t * p_lls, ble_evt_t const * p_ble_evt)
function on_disconnect (line 75) | static void on_disconnect(ble_lls_t * p_lls, ble_evt_t const * p_ble_evt)
function on_auth_status (line 108) | static void on_auth_status(ble_lls_t * p_lls, ble_evt_t const * p_ble_evt)
function ble_lls_on_ble_evt (line 122) | void ble_lls_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_lls_init (line 152) | uint32_t ble_lls_init(ble_lls_t * p_lls, const ble_lls_init_t * p_lls_init)
function ble_lls_alert_level_get (line 201) | uint32_t ble_lls_alert_level_get(ble_lls_t * p_lls, uint8_t * p_alert_le...
FILE: SDK/components/ble/ble_services/ble_lls/ble_lls.h
type ble_lls_evt_type_t (line 96) | typedef enum
type ble_lls_evt_t (line 102) | typedef struct
type ble_lls_t (line 112) | typedef struct ble_lls_s ble_lls_t;
type ble_lls_init_t (line 118) | typedef struct
type ble_lls_s (line 128) | struct ble_lls_s
FILE: SDK/components/ble/ble_services/ble_nus/ble_nus.c
function on_connect (line 72) | static void on_connect(ble_nus_t * p_nus, ble_evt_t const * p_ble_evt)
function on_write (line 124) | static void on_write(ble_nus_t * p_nus, ble_evt_t const * p_ble_evt)
function on_hvx_tx_complete (line 189) | static void on_hvx_tx_complete(ble_nus_t * p_nus, ble_evt_t const * p_bl...
function ble_nus_on_ble_evt (line 218) | void ble_nus_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_nus_init (line 248) | uint32_t ble_nus_init(ble_nus_t * p_nus, ble_nus_init_t const * p_nus_init)
function ble_nus_data_send (line 314) | uint32_t ble_nus_data_send(ble_nus_t * p_nus,
FILE: SDK/components/ble/ble_services/ble_nus/ble_nus.h
type ble_nus_evt_type_t (line 112) | typedef enum
type ble_nus_t (line 122) | typedef struct ble_nus_s ble_nus_t;
type ble_nus_evt_rx_data_t (line 129) | typedef struct
type ble_nus_client_context_t (line 140) | typedef struct
type ble_nus_evt_t (line 150) | typedef struct
type ble_nus_init_t (line 173) | typedef struct
type ble_nus_s (line 183) | struct ble_nus_s
FILE: SDK/components/ble/ble_services/ble_nus_c/ble_nus_c.c
function gatt_error_handler (line 62) | static void gatt_error_handler(uint32_t nrf_error,
function ble_nus_c_on_db_disc_evt (line 77) | void ble_nus_c_on_db_disc_evt(ble_nus_c_t * p_ble_nus_c, ble_db_discover...
function on_hvx (line 124) | static void on_hvx(ble_nus_c_t * p_ble_nus_c, ble_evt_t const * p_ble_evt)
function ble_nus_c_init (line 142) | uint32_t ble_nus_c_init(ble_nus_c_t * p_ble_nus_c, ble_nus_c_init_t * p_...
function ble_nus_c_on_ble_evt (line 168) | void ble_nus_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function cccd_configure (line 210) | static uint32_t cccd_configure(ble_nus_c_t * p_ble_nus_c, bool notificat...
function ble_nus_c_tx_notif_enable (line 235) | uint32_t ble_nus_c_tx_notif_enable(ble_nus_c_t * p_ble_nus_c)
function ble_nus_c_string_send (line 249) | uint32_t ble_nus_c_string_send(ble_nus_c_t * p_ble_nus_c, uint8_t * p_st...
function ble_nus_c_handles_assign (line 282) | uint32_t ble_nus_c_handles_assign(ble_nus_c_t * p_ble_nus,
FILE: SDK/components/ble/ble_services/ble_nus_c/ble_nus_c.h
type ble_nus_c_evt_type_t (line 122) | typedef enum
type ble_nus_c_handles_t (line 130) | typedef struct
type ble_nus_c_evt_t (line 138) | typedef struct
type ble_nus_c_t (line 149) | typedef struct ble_nus_c_s ble_nus_c_t;
type ble_nus_c_s (line 159) | struct ble_nus_c_s
type ble_nus_c_init_t (line 170) | typedef struct
FILE: SDK/components/ble/ble_services/ble_rscs/ble_rscs.c
function on_connect (line 69) | static void on_connect(ble_rscs_t * p_rscs, ble_evt_t const * p_ble_evt)
function on_disconnect (line 80) | static void on_disconnect(ble_rscs_t * p_rscs, ble_evt_t const * p_ble_evt)
function on_meas_cccd_write (line 92) | static void on_meas_cccd_write(ble_rscs_t * p_rscs, ble_gatts_evt_write_...
function on_write (line 121) | static void on_write(ble_rscs_t * p_rscs, ble_evt_t const * p_ble_evt)
function ble_rscs_on_ble_evt (line 132) | void ble_rscs_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function rsc_measurement_encode (line 170) | static uint8_t rsc_measurement_encode(const ble_rscs_t * p_rscs,
function ble_rscs_init (line 218) | uint32_t ble_rscs_init(ble_rscs_t * p_rscs, const ble_rscs_init_t * p_rs...
function ble_rscs_measurement_send (line 286) | uint32_t ble_rscs_measurement_send(ble_rscs_t * p_rscs, ble_rscs_meas_t ...
FILE: SDK/components/ble/ble_services/ble_rscs/ble_rscs.h
type ble_rscs_evt_type_t (line 99) | typedef enum
type ble_rscs_evt_t (line 106) | typedef struct
type ble_rscs_t (line 112) | typedef struct ble_rscs_s ble_rscs_t;
type ble_rscs_meas_t (line 113) | typedef struct ble_rscs_meas_s ble_rscs_meas_t;
type ble_rscs_meas_s (line 121) | struct ble_rscs_meas_s
type ble_rscs_init_t (line 135) | typedef struct
type ble_rscs_s (line 147) | struct ble_rscs_s
FILE: SDK/components/ble/ble_services/ble_rscs_c/ble_rscs_c.c
function gatt_error_handler (line 63) | static void gatt_error_handler(uint32_t nrf_error,
function on_hvx (line 88) | static void on_hvx(ble_rscs_c_t * p_ble_rscs_c, const ble_evt_t * p_ble_...
function ble_rscs_on_db_disc_evt (line 154) | void ble_rscs_on_db_disc_evt(ble_rscs_c_t * p_ble_rscs_c, const ble_db_d...
function ble_rscs_c_init (line 198) | uint32_t ble_rscs_c_init(ble_rscs_c_t * p_ble_rscs_c, ble_rscs_c_init_t ...
function ble_rscs_c_handles_assign (line 219) | uint32_t ble_rscs_c_handles_assign(ble_rscs_c_t * p_ble_rscs_c,
function on_disconnected (line 243) | static void on_disconnected(ble_rscs_c_t * p_ble_rscs_c, const ble_evt_t...
function ble_rscs_c_on_ble_evt (line 254) | void ble_rscs_c_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function cccd_configure (line 281) | static uint32_t cccd_configure(ble_rscs_c_t * p_ble_rscs_c, bool enable)
function ble_rscs_c_rsc_notif_enable (line 308) | uint32_t ble_rscs_c_rsc_notif_enable(ble_rscs_c_t * p_ble_rscs_c)
FILE: SDK/components/ble/ble_services/ble_rscs_c/ble_rscs_c.h
type ble_rscs_c_db_t (line 101) | typedef struct
type ble_rscs_c_evt_type_t (line 108) | typedef enum
type ble_rsc_t (line 115) | typedef struct
type ble_rscs_c_evt_t (line 127) | typedef struct
type ble_rscs_c_t (line 139) | typedef struct ble_rscs_c_s ble_rscs_c_t;
type ble_rscs_c_s (line 149) | struct ble_rscs_c_s
type ble_rscs_c_init_t (line 159) | typedef struct
FILE: SDK/components/ble/ble_services/ble_tps/ble_tps.c
function on_connect (line 56) | static void on_connect(ble_tps_t * p_tps, ble_evt_t const * p_ble_evt)
function ble_tps_on_ble_evt (line 62) | void ble_tps_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ble_tps_init (line 79) | uint32_t ble_tps_init(ble_tps_t * p_tps, const ble_tps_init_t * p_tps_init)
function ble_tps_tx_power_level_set (line 112) | uint32_t ble_tps_tx_power_level_set(ble_tps_t * p_tps, int8_t tx_power_l...
FILE: SDK/components/ble/ble_services/ble_tps/ble_tps.h
type ble_tps_init_t (line 85) | typedef struct
type ble_tps_t (line 92) | typedef struct
FILE: SDK/components/ble/ble_services/eddystone/es.h
type es_frame_type_t (line 118) | typedef enum
type es_tlm_version_t (line 127) | typedef enum
FILE: SDK/components/ble/ble_services/eddystone/es_adv.c
function invoke_callback (line 79) | static void invoke_callback(es_adv_evt_t evt)
function adv_start (line 90) | static void adv_start(ble_gap_adv_params_t * p_adv_params)
function get_adv_params (line 109) | static void get_adv_params(ble_gap_adv_params_t * p_adv_params,
function connectable_adv_start (line 146) | static void connectable_adv_start(void)
function adv_stop (line 171) | static void adv_stop(void)
function adv_restart (line 185) | static void adv_restart(void)
function adv_timing_callback (line 203) | static void adv_timing_callback(const es_adv_timing_evt_t * p_evt)
function es_adv_start_connectable_adv (line 243) | void es_adv_start_connectable_adv(void)
function es_adv_start_non_connctable_adv (line 254) | void es_adv_start_non_connctable_adv(void)
function es_adv_remain_connectable_set (line 260) | void es_adv_remain_connectable_set(bool remain_connectable)
function es_adv_remain_connectable_get (line 266) | bool es_adv_remain_connectable_get(void)
function es_adv_on_ble_evt (line 272) | void es_adv_on_ble_evt(ble_evt_t const * p_ble_evt)
function es_adv_interval_set (line 308) | void es_adv_interval_set(nrf_ble_escs_adv_interval_t interval)
function nrf_ble_escs_adv_interval_t (line 332) | nrf_ble_escs_adv_interval_t es_adv_interval_get(void)
function es_adv_init (line 338) | void es_adv_init(uint8_t ecs_uuid_type,
function es_adv_timers_init (line 356) | void es_adv_timers_init(void)
FILE: SDK/components/ble/ble_services/eddystone/es_adv.h
type es_adv_evt_t (line 54) | typedef enum
FILE: SDK/components/ble/ble_services/eddystone/es_adv_frame.c
function fill_adv_data (line 49) | static void fill_adv_data(ble_advdata_t * p_scrsp_data, uint8_array_t * ...
function es_adv_frame_fill_connectable_adv_data (line 91) | void es_adv_frame_fill_connectable_adv_data(ble_advdata_t * p_scrsp_data...
function es_adv_frame_fill_non_connectable_adv_data (line 97) | void es_adv_frame_fill_non_connectable_adv_data(uint8_t slot_no, bool et...
FILE: SDK/components/ble/ble_services/eddystone/es_adv_timing.c
function invoke_callback (line 58) | static void invoke_callback(const es_adv_timing_evt_t * p_evt)
function frame_to_adv_is_tlm (line 68) | static bool frame_to_adv_is_tlm(const es_adv_timing_evt_t * p_evt)
function tlm_should_be_advertised (line 77) | static bool tlm_should_be_advertised(uint32_t adv_event_cnt)
function adv_slot_timeout (line 85) | static void adv_slot_timeout(void * p_context)
function adv_interval_timeout (line 131) | static void adv_interval_timeout(void * p_context)
function es_adv_timing_timers_init (line 150) | void es_adv_timing_timers_init(void)
function adv_timing_set (line 167) | static void adv_timing_set(void)
function es_adv_timing_start (line 187) | void es_adv_timing_start(uint16_t adv_interval)
function es_adv_timing_stop (line 209) | void es_adv_timing_stop(void)
function es_adv_timing_init (line 215) | void es_adv_timing_init(es_adv_timing_callback_t p_handler)
FILE: SDK/components/ble/ble_services/eddystone/es_adv_timing.h
type es_adv_timing_evt_id_t (line 54) | typedef enum
type es_adv_timing_evt_t (line 61) | typedef struct
FILE: SDK/components/ble/ble_services/eddystone/es_adv_timing_resolver.c
function get_adv_delay (line 50) | static uint16_t get_adv_delay(uint16_t adv_interval,
function is_eid (line 65) | static bool is_eid(uint8_t slot_no, const uint8_t * p_eid_slots_configur...
function ret_code_t (line 78) | ret_code_t es_adv_timing_resolve(es_adv_timing_resolver_input_t * p_input)
FILE: SDK/components/ble/ble_services/eddystone/es_adv_timing_resolver.h
type es_adv_timing_resolver_adv_timing_t (line 54) | typedef struct
type es_adv_timing_resolver_result_t (line 65) | typedef struct
type es_adv_timing_resolver_input_t (line 73) | typedef struct
FILE: SDK/components/ble/ble_services/eddystone/es_battery_voltage_saadc.c
function saadc_event_handler (line 58) | static void saadc_event_handler(nrf_drv_saadc_evt_t const * p_evt)
function es_battery_voltage_init (line 72) | void es_battery_voltage_init(void)
function es_battery_voltage_get (line 91) | void es_battery_voltage_get(uint16_t * p_vbatt)
FILE: SDK/components/ble/ble_services/eddystone/es_flash.c
type flash_access_params_t (line 62) | typedef struct
function fds_gc_event (line 95) | static void fds_gc_event(void * p_event_data, uint16_t event_size)
function fds_cb (line 110) | static void fds_cb(fds_evt_t const * const p_evt)
function ret_code_t (line 167) | static ret_code_t access_flash_data(const flash_access_params_t * p_params)
function ret_code_t (line 238) | ret_code_t es_flash_access_lock_key(uint8_t * p_lock_key, es_flash_acces...
function ret_code_t (line 251) | ret_code_t es_flash_access_beacon_config(es_flash_beacon_config_t * p_co...
function ret_code_t (line 269) | ret_code_t es_flash_access_slot_configs(uint8_t slot_no,
function ret_code_t (line 289) | ret_code_t es_flash_access_flags(es_flash_flags_t * p_flags, es_flash_ac...
function ret_code_t (line 302) | ret_code_t es_flash_factory_reset(void)
function es_flash_num_pending_ops (line 311) | uint32_t es_flash_num_pending_ops(void)
function es_flash_on_ble_evt (line 317) | void es_flash_on_ble_evt(ble_evt_t const * p_evt)
function ret_code_t (line 337) | ret_code_t es_flash_init(void)
FILE: SDK/components/ble/ble_services/eddystone/es_flash.h
type es_flash_beacon_config_t (line 70) | typedef struct
type es_flash_flags_t (line 79) | typedef struct
type es_flash_access_t (line 87) | typedef enum
FILE: SDK/components/ble/ble_services/eddystone/es_gatts.c
function is_beacon_unlocked (line 55) | static bool is_beacon_unlocked(const nrf_ble_escs_t * p_escs)
function ret_code_t (line 61) | ret_code_t es_gatts_send_reply(nrf_ble_escs_t * p...
function ret_code_t (line 76) | ret_code_t es_gatts_send_op_not_permitted(nrf_ble_escs_t * p_escs, bool ...
function es_gatts_handle_write (line 99) | void es_gatts_handle_write(nrf_ble_escs_t * p_escs,
function es_gatts_handle_read (line 140) | void es_gatts_handle_read(nrf_ble_escs_t * p_escs, uint16_t uuid, uint16...
function ret_code_t (line 176) | ret_code_t es_gatts_init(nrf_ble_escs_t * p_ble_escs)
FILE: SDK/components/ble/ble_services/eddystone/es_gatts_read.c
function ret_code_t (line 47) | static ret_code_t send_read_reply(nrf_ble_escs_t * p_escs, ble_gatts_rw_...
function ret_code_t (line 60) | static ret_code_t read_value(nrf_ble_escs_t * p_escs, uint8_t length, co...
function ret_code_t (line 74) | static ret_code_t read_from_gattdb(nrf_ble_escs_t * p_escs, uint16_t val...
function ret_code_t (line 93) | static ret_code_t read_adv_slot(nrf_ble_escs_t * p_escs, uint8_t active_...
function ret_code_t (line 142) | ret_code_t es_gatts_read_handle_locked_read(nrf_ble_escs_t * p_escs, uin...
function ret_code_t (line 164) | ret_code_t es_gatts_read_handle_unlock(nrf_ble_escs_t * p_escs)
function ret_code_t (line 180) | ret_code_t es_gatts_read_handle_unlocked_read(nrf_ble_escs_t * p_escs,
FILE: SDK/components/ble/ble_services/eddystone/es_gatts_write.c
function ret_code_t (line 48) | static ret_code_t send_write_reply(nrf_ble_escs_t * p_escs, ble_gatts_rw...
function length_is_valid (line 69) | static bool length_is_valid(uint8_t const * p_data, uint8_t length)
function ret_code_t (line 100) | ret_code_t es_gatts_write_handle_unlocked_write(nrf_ble_escs_t * p_escs,
function ret_code_t (line 222) | ret_code_t es_gatts_write_handle_unlock(nrf_ble_escs_t * p_escs,
FILE: SDK/components/ble/ble_services/eddystone/es_security.c
type es_security_timing_t (line 60) | typedef struct
type es_security_slot_t (line 67) | typedef struct
type ecdh_key_pair_t (line 77) | typedef struct
type es_security_ecdh_t (line 84) | typedef struct
function eid_generate (line 106) | static void eid_generate(uint8_t slot_no)
function temp_key_generate (line 148) | static void temp_key_generate(uint8_t slot_no)
function check_rollovers_and_update_eid (line 180) | static void check_rollovers_and_update_eid(uint8_t slot_no)
function lock_code_init (line 205) | static void lock_code_init(uint8_t * p_lock_buff)
function es_security_update_time (line 225) | void es_security_update_time(void)
function es_security_eid_slots_restore (line 259) | void es_security_eid_slots_restore(uint8_t slot_no,
function ret_code_t (line 273) | ret_code_t es_security_lock_code_update(uint8_t * p_ecrypted_key)
function es_security_unlock_prepare (line 296) | void es_security_unlock_prepare(uint8_t * p_challenge)
function es_security_unlock_verify (line 317) | void es_security_unlock_verify(uint8_t * p_unlock_token)
function ret_code_t (line 326) | ret_code_t es_security_random_challenge_generate(uint8_t * p_rand_chlg_b...
function es_security_shared_ik_receive (line 332) | void es_security_shared_ik_receive(uint8_t slot_no, uint8_t * p_encrypte...
function es_security_client_pub_ecdh_receive (line 359) | void es_security_client_pub_ecdh_receive(uint8_t slot_no, uint8_t * p_pu...
function es_security_pub_ecdh_get (line 443) | void es_security_pub_ecdh_get(uint8_t slot_no, uint8_t * p_edch_buffer)
function es_security_clock_get (line 456) | uint32_t es_security_clock_get(uint8_t slot_no)
function es_security_eid_slot_destroy (line 462) | void es_security_eid_slot_destroy(uint8_t slot_no)
function es_security_scaler_get (line 468) | uint8_t es_security_scaler_get(uint8_t slot_no)
function es_security_eid_get (line 474) | void es_security_eid_get(uint8_t slot_no, uint8_t * p_eid_buffer)
function es_security_encrypted_eid_id_key_get (line 480) | void es_security_encrypted_eid_id_key_get(uint8_t slot_no, uint8_t * p_k...
function es_security_plain_eid_id_key_get (line 503) | void es_security_plain_eid_id_key_get(uint8_t slot_no, uint8_t * p_key_b...
function es_security_tlm_to_etlm (line 509) | void es_security_tlm_to_etlm(uint8_t ik_slot_no, es_tlm_frame_t * p_tlm,...
function ret_code_t (line 579) | ret_code_t es_security_init(es_security_msg_cb_t security_callback)
FILE: SDK/components/ble/ble_services/eddystone/es_security.h
type es_security_msg_t (line 56) | typedef enum
type nrf_ble_escs_lock_state_read_t (line 84) | typedef nrf_ble_escs_lock_state_read_t es_security_lock_state_t;
FILE: SDK/components/ble/ble_services/eddystone/es_slot.c
function slot_boundary_check (line 59) | static void slot_boundary_check(uint8_t * p_slot)
function load_slot_from_flash (line 72) | static void load_slot_from_flash(uint8_t slot_no)
function set_ranging_data_for_slot (line 105) | static void set_ranging_data_for_slot(uint8_t slot_no, nrf_ble_escs_radi...
function configure_slot (line 166) | static void configure_slot(uint8_t slot_no, uint8_t length, uint8_t cons...
function configure_eid_slot (line 210) | static void configure_eid_slot(uint8_t slot_no, uint8_t length, uint8_t ...
function ret_code_t (line 245) | ret_code_t es_slot_write_to_flash(uint8_t slot_no)
function es_slot_radio_tx_pwr_set (line 266) | void es_slot_radio_tx_pwr_set(uint8_t slot_no, nrf_ble_escs_radio_tx_pwr...
function es_slot_set_adv_custom_tx_power (line 279) | void es_slot_set_adv_custom_tx_power(uint8_t slot_no, nrf_ble_escs_adv_t...
function es_slot_on_write (line 289) | void es_slot_on_write(uint8_t slot_no, uint8_t length, uint8_t const * p...
function es_slot_encrypted_eid_id_key_set (line 321) | void es_slot_encrypted_eid_id_key_set(uint8_t slot_no, nrf_ble_escs_eid_...
function es_slot_eid_ready (line 332) | void es_slot_eid_ready(uint8_t slot_no)
function slot_is_eid (line 353) | static bool slot_is_eid(uint8_t eid_slot_no)
function es_slot_tlm_update (line 367) | void es_slot_tlm_update(void)
function es_slot_etlm_update (line 376) | void es_slot_etlm_update(uint8_t eid_slot_no)
function es_slot_reg_t (line 396) | const es_slot_reg_t * es_slot_get_registry(void)
function es_slots_init (line 402) | void es_slots_init(const es_slot_t * p_default_slot)
FILE: SDK/components/ble/ble_services/eddystone/es_slot.h
type es_adv_frame_t (line 58) | typedef struct
type es_slot_t (line 73) | typedef struct
type es_slot_reg_t (line 88) | typedef struct
FILE: SDK/components/ble/ble_services/eddystone/es_slot_reg.c
function update_tlm_configured_on_clearing (line 50) | static void update_tlm_configured_on_clearing(es_slot_reg_t * p_reg, uin...
function configured_slots_on_clear_update (line 65) | static void configured_slots_on_clear_update(uint8_t * p_configured, uin...
function es_slot_reg_etlm_required (line 100) | bool es_slot_reg_etlm_required(const es_slot_reg_t * p_reg)
function es_slot_reg_clear_slot (line 106) | bool es_slot_reg_clear_slot(es_slot_reg_t * p_reg, uint8_t slot_no)
function es_slot_reg_update_slot_list_info_on_add (line 141) | void es_slot_reg_update_slot_list_info_on_add(es_slot_reg_t * p_reg,
function es_slot_reg_init (line 180) | void es_slot_reg_init(es_slot_reg_t * p_reg)
FILE: SDK/components/ble/ble_services/eddystone/es_stopwatch.c
function es_stopwatch_check (line 54) | uint32_t es_stopwatch_check(es_stopwatch_id_t id)
function ret_code_t (line 76) | ret_code_t es_stopwatch_create(es_stopwatch_id_t * p_sw_id, uint32_t tic...
function es_stopwatch_init (line 100) | void es_stopwatch_init(void)
FILE: SDK/components/ble/ble_services/eddystone/es_stopwatch.h
type es_stopwatch_id_t (line 52) | typedef uint8_t es_stopwatch_id_t;
FILE: SDK/components/ble/ble_services/eddystone/es_tlm.c
function update_time (line 57) | static void update_time(void)
function update_temp (line 71) | static void update_temp(void)
function update_vbatt (line 82) | static void update_vbatt(void)
function update_adv_cnt (line 91) | static void update_adv_cnt(void)
function es_tlm_tlm_get (line 98) | void es_tlm_tlm_get(es_tlm_frame_t * p_tlm_frame)
function es_tlm_adv_cnt_inc (line 114) | void es_tlm_adv_cnt_inc(void)
function es_tlm_init (line 120) | void es_tlm_init(void)
FILE: SDK/components/ble/ble_services/eddystone/nrf_ble_es.c
function handle_evt (line 65) | static void handle_evt(nrf_ble_es_evt_t evt)
function new_address_set (line 75) | static void new_address_set(void)
function check_and_update_mac_address (line 121) | static void check_and_update_mac_address(bool demand_new_mac)
function lock_beacon (line 147) | static void lock_beacon(void)
function on_ble_evt (line 157) | static void on_ble_evt(ble_evt_t const * p_ble_evt)
function nrf_ble_escs_security_cb (line 215) | static void nrf_ble_escs_security_cb(uint8_t slot_no, es_security_msg_t ...
function adv_evt_handler (line 281) | static void adv_evt_handler(es_adv_evt_t evt)
function ble_escs_init (line 305) | static void ble_escs_init(void)
function adv_init (line 345) | static void adv_init(void)
function adv_slots_init (line 372) | static void adv_slots_init(void)
function nrf_ble_es_on_ble_evt (line 389) | void nrf_ble_es_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function nrf_ble_es_on_start_connectable_advertising (line 403) | void nrf_ble_es_on_start_connectable_advertising(void)
function nrf_ble_es_init (line 409) | void nrf_ble_es_init(nrf_ble_es_evt_handler_t evt_handler)
FILE: SDK/components/ble/ble_services/eddystone/nrf_ble_es.h
type nrf_ble_es_evt_t (line 62) | typedef enum
FILE: SDK/components/ble/ble_services/experimental_ble_lns/ble_ln_cp.c
function gatt_error_handler (line 74) | static void gatt_error_handler(uint32_t nrf_error,
function ble_lncp_rsp_code_t (line 87) | static ble_lncp_rsp_code_t notify_app(ble_lncp_t const * p_lncp, ble_lnc...
function resp_send (line 100) | static void resp_send(ble_lncp_t * p_lncp)
function on_connect (line 138) | static void on_connect(ble_lncp_t * p_lncp, ble_evt_t const * p_ble_evt)
function on_disconnect (line 145) | static void on_disconnect(ble_lncp_t * p_lncp, ble_evt_t const * p_ble_evt)
function on_hvc_confirm (line 152) | static void on_hvc_confirm(ble_lncp_t * p_lncp, ble_evt_t const * p_ble_...
function on_lncp_cccd_write (line 176) | static void on_lncp_cccd_write(ble_lncp_t * p_lncp, ble_gatts_evt_write_...
function on_nav_cccd_write (line 191) | static void on_nav_cccd_write(ble_lncp_t * p_lncp, ble_gatts_evt_write_t...
function on_set_cumulative_value (line 206) | static void on_set_cumulative_value(ble_lncp_t * p_lncp, ble_gatts_evt_w...
function on_mask_loc_speed_content (line 241) | static void on_mask_loc_speed_content(ble_lncp_t * p_lncp, ble_gatts_evt...
function on_nav_control (line 281) | static void on_nav_control(ble_lncp_t * p_lncp, ble_gatts_evt_write_t co...
function on_req_num_routes (line 329) | static void on_req_num_routes(ble_lncp_t * p_lncp, ble_gatts_evt_write_t...
function on_req_name_of_route (line 355) | static void on_req_name_of_route(ble_lncp_t * p_lncp, ble_gatts_evt_writ...
function on_select_route (line 395) | static void on_select_route(ble_lncp_t * p_lncp, ble_gatts_evt_write_t c...
function on_set_fix_rate (line 436) | static void on_set_fix_rate(ble_lncp_t * p_lncp, ble_gatts_evt_write_t c...
function on_set_elevation (line 474) | static void on_set_elevation(ble_lncp_t * p_lncp, ble_gatts_evt_write_t ...
function on_ctrlpt_write (line 509) | static void on_ctrlpt_write(ble_lncp_t * p_lncp, ble_gatts_evt_write_t c...
function on_rw_authorize_req (line 625) | static void on_rw_authorize_req(ble_lncp_t * p_lncp, ble_evt_t const * p...
function on_write (line 653) | static void on_write(ble_lncp_t * p_lncp, ble_evt_t const * p_ble_evt)
function ble_lncp_on_ble_evt (line 668) | void ble_lncp_on_ble_evt(ble_lncp_t * p_lncp, ble_evt_t const * p_ble_evt)
function ble_lncp_total_distance_get (line 715) | uint32_t ble_lncp_total_distance_get(ble_lncp_t const * p_lncp)
function ble_lncp_elevation_get (line 726) | uint32_t ble_lncp_elevation_get(ble_lncp_t const * p_lncp)
function ble_lncp_mask_t (line 737) | ble_lncp_mask_t ble_lncp_mask_get(ble_lncp_t const * p_lncp)
function ble_lncp_is_navigation_running (line 749) | bool ble_lncp_is_navigation_running(ble_lncp_t const * p_lncp)
function ret_code_t (line 760) | ret_code_t ble_lncp_init(ble_lncp_t * p_lncp, ble_lncp_init_t const * p_...
FILE: SDK/components/ble/ble_services/experimental_ble_lns/ble_ln_cp.h
type ble_lncp_t (line 64) | typedef struct ble_lncp_s ble_lncp_t;
type ble_lncp_evt_type_t (line 67) | typedef enum
type ble_lncp_nav_cmd_t (line 79) | typedef enum
type ble_lncp_mask_t (line 102) | typedef union
type ble_lncp_evt_t (line 125) | typedef struct
type ble_lncp_rsp_code_t (line 141) | typedef enum
type ble_lncp_rsp_code_t (line 151) | typedef ble_lncp_rsp_code_t (*ble_lncp_evt_handler_t) (ble_lncp_t const ...
type ble_lncp_op_code_t (line 154) | typedef enum
type ble_lncp_rsp_t (line 170) | typedef struct
type ble_lncp_init_t (line 179) | typedef struct
type ble_lncp_s (line 201) | struct ble_lncp_s
FILE: SDK/components/ble/ble_services/experimental_ble_lns/ble_ln_db.c
type database_entry_t (line 43) | typedef struct
function ble_ln_db_init (line 53) | void ble_ln_db_init(void)
function ble_ln_db_num_records_get (line 67) | uint16_t ble_ln_db_num_records_get(void)
function ret_code_t (line 73) | ret_code_t ble_ln_db_record_get(uint8_t rec_ndx, ble_lns_route_t * p_rec)
function ret_code_t (line 87) | ret_code_t ble_ln_db_record_name_get(uint8_t rec_ndx, uint8_t ** p_buf)
function ret_code_t (line 101) | ret_code_t ble_ln_db_record_add(ble_lns_route_t * p_rec)
function ret_code_t (line 129) | ret_code_t ble_ln_db_record_delete(uint8_t rec_ndx)
FILE: SDK/components/ble/ble_services/experimental_ble_lns/ble_lns.c
function notification_buffer_process (line 85) | static void notification_buffer_process(ble_lns_t * p_lns)
function on_connect (line 138) | static void on_connect(ble_lns_t * p_lns, ble_evt_t const * p_ble_evt)
function on_disconnect (line 165) | static void on_disconnect(ble_lns_t * p_lns, ble_evt_t const * p_ble_evt)
function on_ctrl_pt_cccd_write (line 181) | static void on_ctrl_pt_cccd_write(ble_lns_t * p_lns, ble_gatts_evt_write...
function on_loc_speed_cccd_write (line 209) | static void on_loc_speed_cccd_write(ble_lns_t * p_lns,
function on_nav_cccd_write (line 240) | static void on_nav_cccd_write(ble_lns_t * p_lns,
function on_write (line 270) | static void on_write(ble_lns_t * p_lns, ble_evt_t const * p_ble_evt)
function on_tx_complete (line 302) | static void on_tx_complete(ble_lns_t * p_lns)
function pos_qual_encode (line 316) | static uint8_t pos_qual_encode(ble_lns_t const * p_lns,
function loc_speed_encode_packet1 (line 383) | static uint8_t loc_speed_encode_packet1(ble_lns_t const * p_lns,
function loc_speed_encode_packet2 (line 442) | static uint8_t loc_speed_encode_packet2(ble_lns_t const * p_lns,
function navigation_encode (line 509) | static uint8_t navigation_encode(ble_lns_t const * p_lns,
function ret_code_t (line 576) | static ret_code_t loc_and_nav_feature_char_add(ble_lns_t * p_lns, ble_ln...
function ret_code_t (line 606) | static ret_code_t loc_speed_char_add(ble_lns_t * p_lns, ble_lns_init_t c...
function ret_code_t (line 637) | static ret_code_t pos_quality_char_add(ble_lns_t * p_lns, ble_lns_init_t...
function ret_code_t (line 667) | static ret_code_t navigation_char_add(ble_lns_t * p_lns, ble_lns_init_t ...
function init_param_mismatch_present (line 696) | static bool init_param_mismatch_present(ble_lns_init_t const * p_lns_init)
function ble_lns_on_ble_evt (line 770) | void ble_lns_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ret_code_t (line 803) | ret_code_t ble_lns_init(ble_lns_t * p_lns, ble_lns_init_t const * p_lns_...
function ret_code_t (line 912) | ret_code_t ble_lns_loc_speed_send(ble_lns_t * p_lns)
function ret_code_t (line 965) | ret_code_t ble_lns_navigation_send(ble_lns_t * p_lns)
function ret_code_t (line 1004) | ret_code_t ble_lns_add_route(ble_lns_t * p_lns, ble_lns_route_t * p_route)
function ret_code_t (line 1018) | ret_code_t ble_lns_remove_route(ble_lns_t * p_lns, uint16_t route_id)
FILE: SDK/components/ble/ble_services/experimental_ble_lns/ble_lns.h
type ble_lns_evt_type_t (line 90) | typedef enum
type ble_lns_evt_t (line 101) | typedef struct
type ble_lns_init_t (line 107) | typedef struct ble_lns_init_s ble_lns_init_t;
type ble_lns_t (line 108) | typedef struct ble_lns_s ble_lns_t;
type ble_lns_loc_speed_t (line 109) | typedef struct ble_lns_loc_speed_s ble_lns_loc_speed_t;
type ble_lns_pos_quality_t (line 110) | typedef struct ble_lns_pos_quality_s ble_lns_pos_quality_t;
type ble_lns_navigation_t (line 111) | typedef struct ble_lns_navigation_s ble_lns_navigation_t;
type notification_t (line 114) | typedef struct
type ble_lns_init_s (line 130) | struct ble_lns_init_s
type ble_lns_route_t (line 156) | typedef struct
type ble_lns_s (line 163) | struct ble_lns_s
type ble_lns_pos_status_type_t (line 193) | typedef enum
type ble_lns_speed_distance_format_t (line 202) | typedef enum
type ble_lns_elevation_source_t (line 209) | typedef enum
type ble_lns_heading_source_t (line 218) | typedef enum
type ble_lns_loc_speed_s (line 225) | struct ble_lns_loc_speed_s
type ble_lns_pos_quality_s (line 249) | struct ble_lns_pos_quality_s
type ble_lns_nav_indicator_type_t (line 269) | typedef enum
type ble_lns_navigation_s (line 276) | struct ble_lns_navigation_s
FILE: SDK/components/ble/ble_services/experimental_ble_ots/ble_ots.c
function feature_char_add (line 81) | static uint32_t feature_char_add(ble_ots_t * const p_ots,
function on_connect (line 125) | static void on_connect(ble_ots_t * p_ots, ble_evt_t const * p_ble_evt)
function on_disconnect (line 146) | static void on_disconnect(ble_ots_t * p_ots, ble_evt_t const * p_ble_evt)
function ble_ots_init (line 151) | uint32_t ble_ots_init(ble_ots_t * p_ots, ble_ots_init_t * p_ots_init)
function ble_ots_on_ble_evt (line 222) | void ble_ots_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
FILE: SDK/components/ble/ble_services/experimental_ble_ots/ble_ots.h
type ble_ots_t (line 86) | typedef struct ble_ots_s ble_ots_t;
type ble_ots_oacp_t (line 87) | typedef struct ble_ots_oacp_s ble_ots_oacp_t;
type ble_ots_l2cap_t (line 88) | typedef struct ble_ots_l2cap_s ble_ots_l2cap_t;
type ble_ots_obj_properties_t (line 94) | typedef union
type ble_ots_obj_type_t (line 111) | typedef struct
type ble_ots_object_t (line 122) | typedef struct
type ble_ots_object_evt_t (line 135) | typedef struct
type ble_ots_object_chars_init_t (line 149) | typedef struct
type ble_ots_object_chars_t (line 161) | typedef struct
type ble_ots_l2cap_evt_type_t (line 174) | typedef enum
type ble_ots_l2cap_evt_t (line 183) | typedef struct
type ble_ots_l2cap_s (line 198) | struct ble_ots_l2cap_s
type ble_ots_l2cap_init_t (line 222) | typedef struct
type ble_ots_oacp_proc_type_t (line 234) | typedef enum
type ble_ots_oacp_res_code_t (line 247) | typedef enum
type ble_ots_oacp_proc_t (line 262) | typedef struct
type ble_ots_oacp_evt_t (line 297) | typedef struct
type ble_ots_oacp_init_t (line 319) | typedef struct
type ble_ots_oacp_s (line 329) | struct ble_ots_oacp_s
type ble_ots_evt_type_t (line 341) | typedef enum
type ble_ots_evt_t (line 351) | typedef struct
type ble_ots_init_t (line 366) | typedef struct
type ble_ots_s (line 379) | struct ble_ots_s
FILE: SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_l2cap.c
function ble_ots_l2cap_is_channel_available (line 62) | bool ble_ots_l2cap_is_channel_available(ble_ots_l2cap_t * p_ots_l2cap)
function ble_ots_l2cap_abort_transmission (line 67) | uint32_t ble_ots_l2cap_abort_transmission(ble_ots_l2cap_t * p_ots_l2cap)
function ble_ots_l2cap_init (line 76) | uint32_t ble_ots_l2cap_init(ble_ots_l2cap_t * p_ots_l2cap, ble_ots_l2cap...
function receive_resume (line 113) | static void receive_resume(ble_ots_l2cap_t * p_ots_l2cap)
function send_resume (line 140) | static void send_resume(ble_ots_l2cap_t * p_ots_l2cap)
function ble_ots_l2cap_obj_send (line 167) | uint32_t ble_ots_l2cap_obj_send(ble_ots_l2cap_t * p_ots_l2cap, uint8_t *...
function ble_ots_l2cap_start_recv (line 203) | uint32_t ble_ots_l2cap_start_recv(ble_ots_l2cap_t * p_ots_l2cap, uint16_...
function on_l2cap_ch_setup_request (line 237) | static inline void on_l2cap_ch_setup_request(ble_ots_l2cap_t * p_ots_l2c...
function on_l2cap_ch_setup (line 288) | static inline void on_l2cap_ch_setup(ble_ots_l2cap_t * p_ots_l2cap, ble_...
function on_l2cap_ch_released (line 308) | static inline void on_l2cap_ch_released(ble_ots_l2cap_t * p_ots_l2cap, b...
function on_l2cap_ch_tx (line 332) | static void on_l2cap_ch_tx(ble_ots_l2cap_t * p_ots_l2cap, ble_evt_t cons...
function on_l2cap_ch_rx (line 374) | static void on_l2cap_ch_rx(ble_ots_l2cap_t * p_ots_l2cap, ble_evt_t cons...
function ble_ots_l2cap_on_ble_evt (line 414) | void ble_ots_l2cap_on_ble_evt(ble_ots_l2cap_t * p_ots_l2cap, ble_evt_t c...
FILE: SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_oacp.c
function gatt_error_handler (line 65) | static void gatt_error_handler(uint32_t nrf_error,
function is_cccd_configured (line 82) | static bool is_cccd_configured(ble_ots_oacp_t * const p_ots_oacp)
function ots_l2cap_evt_handler (line 128) | static void ots_l2cap_evt_handler(ble_ots_l2cap_t * p_ots_l2cap, ble_ots...
function oacp_char_add (line 173) | static uint32_t oacp_char_add(ble_ots_oacp_t * const p_ots_oacp,
function ble_ots_oacp_res_code_t (line 206) | static inline ble_ots_oacp_res_code_t oacp_write_proc(ble_ots_oacp_t * p...
function ble_ots_oacp_res_code_t (line 273) | static inline ble_ots_oacp_res_code_t oacp_read_proc(ble_ots_oacp_t * p_...
function ble_ots_oacp_res_code_t (line 334) | static inline ble_ots_oacp_res_code_t oacp_abort_proc(ble_ots_oacp_t * p...
function ble_ots_oacp_response_send (line 366) | static uint32_t ble_ots_oacp_response_send(ble_ots_oacp_t * p_o...
function ble_ots_oacp_res_code_t (line 407) | static inline ble_ots_oacp_res_code_t decode_oacp_command(ble_gatts_evt_...
function on_disconnect (line 451) | static inline void on_disconnect(ble_ots_oacp_t * p_ots_oacp, ble_evt_t ...
function on_cccd_write (line 468) | static void on_cccd_write(ble_ots_oacp_t * p_ots_oacp, ble_gatts_evt_wri...
function on_oacp_write (line 492) | static void on_oacp_write(ble_ots_oacp_t * p_ots_oacp, ble_gatts_evt_wri...
function on_write (line 559) | static void on_write(ble_ots_oacp_t * p_ots_oacp, ble_evt_t const * p_bl...
function on_rw_authorize_request (line 570) | static void on_rw_authorize_request(ble_ots_oacp_t * p_ots_oacp, ble_gat...
function ble_ots_oacp_on_ble_evt (line 594) | void ble_ots_oacp_on_ble_evt(ble_ots_oacp_t * p_ots_oacp, ble_evt_t cons...
function ble_ots_oacp_init (line 622) | uint32_t ble_ots_oacp_init(ble_ots_oacp_t * p_ots_oacp, ble_ots_oacp_ini...
function ble_ots_oacp_res_code_t (line 654) | ble_ots_oacp_res_code_t ble_ots_oacp_do_proc(ble_ots_oacp_t * p_ots_oacp,
FILE: SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_object.c
function ble_ots_object_refresh_current (line 55) | uint32_t ble_ots_object_refresh_current(ble_ots_object_chars_t * p_ots_o...
function obj_name_char_add (line 149) | static uint32_t obj_name_char_add(ble_ots_object_chars_t * const p_ots_o...
function obj_type_char_add (line 180) | static uint32_t obj_type_char_add(ble_ots_object_chars_t * const p_ots_o...
function obj_size_char_add (line 209) | static uint32_t obj_size_char_add(ble_ots_object_chars_t * const p_ots_o...
function obj_prop_char_add (line 239) | static uint32_t obj_prop_char_add(ble_ots_object_chars_t * const p_ots...
function ble_ots_object_representation_init (line 264) | uint32_t ble_ots_object_representation_init(ble_ots_object_chars_t * p_o...
function ble_ots_object_set_name (line 311) | uint32_t ble_ots_object_set_name(ble_ots_object_chars_t * p_ots_object_c...
function ble_ots_object_set_type (line 347) | uint32_t ble_ots_object_set_type(ble_ots_object_chars_t * p_ots_object_c...
function ble_ots_object_set_current_size (line 399) | uint32_t ble_ots_object_set_current_size(ble_ots_object_chars_t * p_ots_...
function on_obj_properties_write (line 443) | static uint32_t on_obj_properties_write(ble_ots_object_chars_t * p_ots_o...
function ble_ots_object_set_properties (line 475) | uint32_t ble_ots_object_set_properties(ble_ots_object_chars_t * p_ots_ob...
function on_rw_auth_req (line 517) | static void on_rw_auth_req(ble_ots_object_chars_t * p_ots_object_chars, ...
function ble_ots_object_on_ble_evt (line 548) | void ble_ots_object_on_ble_evt(ble_ots_object_chars_t * p_ots_chars, ble...
FILE: SDK/components/ble/ble_services/experimental_gatts_c/nrf_ble_gatts_c.c
function gatt_error_handler (line 65) | static void gatt_error_handler(uint32_t nrf_error,
function on_hvx (line 86) | static void on_hvx(nrf_ble_gatts_c_t const * const p_gatts_c,
function ret_code_t (line 120) | ret_code_t nrf_ble_gatts_c_init(nrf_ble_gatts_c_t * p_gatts_c,
function gatts_gatt_handles_are_valid (line 151) | static bool gatts_gatt_handles_are_valid(nrf_ble_gatts_c_t const * const...
function ret_code_t (line 157) | ret_code_t nrf_ble_gatts_c_enable_indication(nrf_ble_gatts_c_t * const p...
function nrf_ble_gatts_c_on_db_disc_evt (line 190) | void nrf_ble_gatts_c_on_db_disc_evt(nrf_ble_gatts_c_t const * const p_ga...
function on_disconnect (line 245) | static void on_disconnect(nrf_ble_gatts_c_t * p_gatts_c, ble_evt_t const...
function nrf_ble_gatts_c_on_ble_evt (line 270) | void nrf_ble_gatts_c_on_ble_evt(ble_evt_t const * p_ble_evt,
function ret_code_t (line 296) | ret_code_t nrf_ble_gatts_c_handles_assign(nrf_ble_gatts_c_t * con...
FILE: SDK/components/ble/ble_services/experimental_gatts_c/nrf_ble_gatts_c.h
type nrf_ble_gatts_c_evt_type_t (line 101) | typedef enum
type nrf_ble_gatts_c_evt_t (line 111) | typedef struct
type nrf_ble_gatts_c_t (line 132) | typedef struct
type nrf_ble_gatts_c_init_t (line 144) | typedef struct
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_db.c
type database_entry_t (line 44) | typedef struct
function ret_code_t (line 55) | ret_code_t cgms_db_init(void)
function cgms_db_num_records_get (line 71) | uint16_t cgms_db_num_records_get(void)
function ret_code_t (line 77) | ret_code_t cgms_db_record_get(uint8_t record_num, ble_cgms_rec_t * p_rec)
function ret_code_t (line 90) | ret_code_t cgms_db_record_add(ble_cgms_rec_t * p_rec)
function ret_code_t (line 118) | ret_code_t cgms_db_record_delete(uint8_t record_num)
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_meas.c
function cgms_meas_encode (line 56) | static uint8_t cgms_meas_encode(nrf_ble_cgms_t * p_cgms,
function ret_code_t (line 117) | ret_code_t cgms_meas_char_add(nrf_ble_cgms_t * p_cgms)
function ret_code_t (line 154) | ret_code_t cgms_meas_send(nrf_ble_cgms_t * p_cgms, ble_cgms_rec_t * p_re...
function on_meas_cccd_write (line 207) | static void on_meas_cccd_write(nrf_ble_cgms_t * p_cgms, ble_gatts_evt_wr...
function cgms_meas_on_write (line 238) | void cgms_meas_on_write(nrf_ble_cgms_t * p_cgms, ble_gatts_evt_write_t c...
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_racp.c
function ret_code_t (line 61) | ret_code_t cgms_racp_char_add(nrf_ble_cgms_t * p_cgms)
function racp_send (line 89) | static void racp_send(nrf_ble_cgms_t * p_cgms, ble_racp_value_t * p_racp...
function racp_response_code_send (line 128) | static void racp_response_code_send(nrf_ble_cgms_t * p_cgms, uint8_t opc...
function racp_report_records_all (line 149) | static uint32_t racp_report_records_all(nrf_ble_cgms_t * p_cgms)
function racp_report_records_first_last (line 198) | static uint32_t racp_report_records_first_last(nrf_ble_cgms_t * p_cgms)
function ret_code_t (line 248) | static ret_code_t racp_report_records_less_equal(nrf_ble_cgms_t * p_cgms)
function ret_code_t (line 303) | static ret_code_t racp_report_records_greater_equal(nrf_ble_cgms_t * p_c...
function racp_report_records_completed (line 355) | static void racp_report_records_completed(nrf_ble_cgms_t * p_cgms)
function racp_report_records_procedure (line 376) | static void racp_report_records_procedure(nrf_ble_cgms_t * p_cgms)
function is_request_to_be_executed (line 457) | static bool is_request_to_be_executed(nrf_ble_cgms_t * p_cgms,
function ret_code_t (line 560) | static ret_code_t record_index_offset_less_or_equal_get(uint16_t offset,...
function ret_code_t (line 594) | static ret_code_t record_index_offset_greater_or_equal_get(uint16_t offs...
function report_records_request_execute (line 623) | static void report_records_request_execute(nrf_ble_cgms_t * p_cgms,
function report_num_records_request_execute (line 662) | static void report_num_records_request_execute(nrf_ble_cgms_t * p_cgms,
function on_racp_value_write (line 717) | static void on_racp_value_write(nrf_ble_cgms_t * p_cgms, ble_gatts_evt_w...
function cgms_racp_on_rw_auth_req (line 801) | void cgms_racp_on_rw_auth_req(nrf_ble_cgms_t ...
function cgms_racp_on_tx_complete (line 818) | void cgms_racp_on_tx_complete(nrf_ble_cgms_t * p_cgms)
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_socp.c
function ble_socp_decode (line 91) | static void ble_socp_decode(uint8_t data_len, uint8_t const * p_data, bl...
function ble_socp_encode (line 109) | uint8_t ble_socp_encode(const ble_socp_rsp_t * p_socp_rsp, uint8_t * p_d...
function ret_code_t (line 150) | ret_code_t cgms_socp_char_add(nrf_ble_cgms_t * p_cgms)
function socp_send (line 177) | static void socp_send(nrf_ble_cgms_t * p_cgms)
function encode_get_response (line 210) | void encode_get_response(uint8_t rsp_code, ble_socp_rsp_t * p_rsp, uint1...
function decode_set_opcode (line 218) | void decode_set_opcode(nrf_ble_cgms_t * p_cgms,
function is_feature_present (line 241) | static bool is_feature_present(nrf_ble_cgms_t * p_cgms, uint32_t feature)
function on_socp_value_write (line 252) | static void on_socp_value_write(nrf_ble_cgms_t * p_cgms, ble_gatts_evt_w...
function cgms_socp_on_rw_auth_req (line 385) | void cgms_socp_on_rw_auth_req(nrf_ble_cgms_t ...
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_socp.h
type ble_cgms_socp_value_t (line 67) | typedef struct
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_sst.c
function sst_decode (line 49) | void sst_decode(ble_cgms_sst_t * p_sst, const uint8_t * p_data, const ui...
function convert_ble_time_c_time (line 65) | void convert_ble_time_c_time(ble_cgms_sst_t * p_sst, struct tm * p_c_tim...
function calc_sst (line 79) | void calc_sst(uint16_t offset, struct tm * p_c_time_date)
function convert_c_time_ble_time (line 96) | static void convert_c_time_ble_time(ble_cgms_sst_t * p_sst, struct tm * ...
function sst_encode (line 107) | static uint8_t sst_encode(ble_cgms_sst_t * p_sst, uint8_t * p_encoded_sst)
function ret_code_t (line 120) | static ret_code_t cgm_update_sst(nrf_ble_cgms_t * p_cgms, ble_gatts_evt_...
function on_sst_value_write (line 141) | static void on_sst_value_write(nrf_ble_cgms_t * p_cgms, ble_gatts_evt_wr...
function ret_code_t (line 178) | ret_code_t cgms_sst_char_add(nrf_ble_cgms_t * p_cgms)
function ret_code_t (line 203) | ret_code_t cgms_sst_set(nrf_ble_cgms_t * p_cgms, ble_cgms_sst_t * p_sst)
function cgms_sst_on_rw_auth_req (line 223) | void cgms_sst_on_rw_auth_req(nrf_ble_cgms_t ...
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_sst.h
type ble_cgms_sst_t (line 71) | typedef struct
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/nrf_ble_cgms.c
function gatt_error_handler (line 64) | static void gatt_error_handler(uint32_t nrf_error,
function next_sequence_number_set (line 81) | static uint32_t next_sequence_number_set(void)
function encode_feature_location_type (line 101) | uint8_t encode_feature_location_type(uint8_t * p_out_buffer, nrf_ble_cgm...
function glucose_feature_char_add (line 119) | static uint32_t glucose_feature_char_add(nrf_ble_cgms_t * p_cgms)
function encode_status (line 143) | uint8_t encode_status(uint8_t * p_out_buffer, nrf_ble_cgms_t * p_cgms)
function status_char_add (line 163) | static uint32_t status_char_add(nrf_ble_cgms_t * p_cgms)
function srt_char_add (line 192) | static uint32_t srt_char_add(nrf_ble_cgms_t * p_cgms)
function ret_code_t (line 229) | ret_code_t nrf_ble_cgms_init(nrf_ble_cgms_t * p_cgms, const nrf_ble_cgms...
function on_write (line 344) | static void on_write(nrf_ble_cgms_t * p_cgms, ble_evt_t const * p_ble_evt)
function on_tx_complete (line 359) | static void on_tx_complete(nrf_ble_cgms_t * p_cgms, ble_evt_t const * p_...
function on_rw_authorize_request (line 365) | static void on_rw_authorize_request(nrf_ble_cgms_t * p_cgms, ble_gatts_e...
function nrf_ble_cgms_on_ble_evt (line 376) | void nrf_ble_cgms_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ret_code_t (line 409) | ret_code_t nrf_ble_cgms_meas_create(nrf_ble_cgms_t * p_cgms, ble_cgms_re...
function ret_code_t (line 427) | ret_code_t nrf_ble_cgms_update_status(nrf_ble_cgms_t * p_cgms, nrf_ble_c...
function ret_code_t (line 443) | ret_code_t nrf_ble_cgms_conn_handle_assign(nrf_ble_cgms_t * p_cgms, uint...
function ret_code_t (line 453) | ret_code_t nrf_ble_cgms_srt_set(nrf_ble_cgms_t * p_cgms, uint16_t run_time)
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_cgms/nrf_ble_cgms.h
type nrf_ble_cgms_evt_type_t (line 186) | typedef enum
type nrf_ble_cgms_evt_t (line 204) | typedef struct
type nrf_ble_cgms_t (line 217) | typedef struct ble_cgms_s nrf_ble_cgms_t;
type nrf_ble_cgms_sensor_annunc_t (line 231) | typedef struct
type nrf_ble_cgms_meas_t (line 240) | typedef struct
type ble_cgms_rec_t (line 252) | typedef struct
type nrf_ble_cgms_feature_t (line 259) | typedef struct
type nrf_ble_cgm_status_t (line 268) | typedef struct
type nrf_ble_cgms_init_t (line 277) | typedef struct
type ble_socp_rsp_t (line 289) | typedef struct
type nrf_ble_cgms_calib_t (line 300) | typedef struct
type nrf_ble_cgms_racp_t (line 307) | typedef struct
type nrf_ble_cgms_char_handler_t (line 321) | typedef struct
type ble_cgms_s (line 334) | struct ble_cgms_s
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c.c
function gatt_error_handler (line 83) | static void gatt_error_handler(uint32_t nrf_error,
function ret_code_t (line 98) | ret_code_t nrf_ble_ots_c_init(nrf_ble_ots_c_t * p_ots_c,
function ots_gatt_handles_are_valid (line 131) | static bool ots_gatt_handles_are_valid(const nrf_ble_ots_c_t * const p_o...
function ret_code_t (line 140) | ret_code_t nrf_ble_ots_c_feature_read(nrf_ble_ots_c_t * const p_ots_c)
function ret_code_t (line 158) | ret_code_t nrf_ble_ots_c_obj_size_read(nrf_ble_ots_c_t * const p_ots_c)
function ret_code_t (line 181) | ret_code_t nrf_ble_ots_c_obj_properties_read(nrf_ble_ots_c_t * const p_o...
function prop_read_rsp_decode (line 204) | static void prop_read_rsp_decode(nrf_ble_ots_c_t * p_ots_c, const ble_ev...
function on_read_rsp (line 227) | static void on_read_rsp(nrf_ble_ots_c_t * p_ots_c, const ble_evt_t * p_b...
function nrf_ble_ots_c_on_db_disc_evt (line 297) | void nrf_ble_ots_c_on_db_disc_evt(nrf_ble_ots_c_t const * const p_ots_c,
function on_disconnect (line 386) | static void on_disconnect(nrf_ble_ots_c_t * const p_ots_c, ble_evt_t con...
function nrf_ble_ots_c_on_ble_evt (line 407) | void nrf_ble_ots_c_on_ble_evt(ble_evt_t const * const p_ble_evt,
function ret_code_t (line 453) | ret_code_t nrf_ble_ots_c_handles_assign(nrf_ble_ots_c_t * ...
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c.h
type ble_ots_c_oacp_proc_type_t (line 91) | typedef enum
type ble_ots_c_oacp_res_code_t (line 104) | typedef enum
type nrf_ble_ots_c_evt_type_t (line 119) | typedef enum
type nrf_ble_ots_c_feature_t (line 134) | typedef struct
type nrf_ble_ots_c_obj_properties_t (line 154) | typedef union
type nrf_ble_ots_c_service_t (line 174) | typedef struct
type nrf_ble_ots_c_oacp_response_t (line 187) | typedef struct
type nrf_ble_ots_c_obj_size (line 194) | typedef struct
type nrf_ble_ots_c_evt_t (line 202) | typedef struct
type nrf_ble_ots_c_t (line 226) | typedef struct
type nrf_ble_ots_c_init_t (line 244) | typedef struct
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c_l2cap.c
function on_l2cap_ch_setup_complete (line 63) | static void on_l2cap_ch_setup_complete(nrf_ble_ots_c_t * const p_ots_c,
function send_resume (line 77) | static void send_resume(nrf_ble_ots_c_t * const p_ots_c)
function receive_resume (line 106) | static void receive_resume(nrf_ble_ots_c_t * const p_ots_c)
function on_l2cap_ch_tx (line 135) | static void on_l2cap_ch_tx(nrf_ble_ots_c_t * const p_ots_c, ble_evt_t co...
function on_l2cap_ch_rx (line 176) | static void on_l2cap_ch_rx(nrf_ble_ots_c_t * const p_ots_c,
function on_l2cap_ch_released (line 216) | static void on_l2cap_ch_released(nrf_ble_ots_c_t * const p_ots_c,
function ret_code_t (line 226) | ret_code_t nrf_ble_ots_c_l2cap_obj_send(nrf_ble_ots_c_t * const p_ots_c,...
function ret_code_t (line 247) | ret_code_t nrf_ble_ots_c_l2cap_obj_receive(nrf_ble_ots_c_t * const p_ots...
function ots_c_l2cap_on_ble_evt (line 260) | void ots_c_l2cap_on_ble_evt(nrf_ble_ots_c_t * const p_ots_c,
FILE: SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c_oacp.c
function oacp_response (line 58) | static void oacp_response(nrf_ble_ots_c_t const * const p_ots_c,
function on_hvx (line 78) | static void on_hvx(nrf_ble_ots_c_t const * const p_ots_c,
function ots_gatt_handles_are_valid (line 111) | static bool ots_gatt_handles_are_valid(const nrf_ble_ots_c_t * const p_o...
function ret_code_t (line 120) | ret_code_t nrf_ble_ots_c_indication_enable(nrf_ble_ots_c_t * const p_ots_c,
function ret_code_t (line 153) | ret_code_t nrf_ble_ots_c_oacp_write_object(nrf_ble_ots_c_t * const p_ots...
function ret_code_t (line 203) | ret_code_t nrf_ble_ots_c_oacp_read_object(nrf_ble_ots_c_t * const p_ots_...
function ots_c_oacp_on_ble_evt (line 245) | void ots_c_oacp_on_ble_evt(nrf_ble_ots_c_t * const p_ots_c,
FILE: SDK/components/ble/ble_services/nrf_ble_bms/nrf_ble_bms.c
function error_check (line 54) | static void error_check(ret_code_t err_code, ble_srv_error_handler_t err...
function ret_code_t (line 70) | static ret_code_t ctrlpt_char_add(nrf_ble_bms_t * p_bms, nrf_ble_bms_ini...
function ctrlpt_auth (line 97) | static void ctrlpt_auth(nrf_ble_bms_t * p_bms, nrf_ble_bms_ctrlpt_t * p_...
function ret_code_t (line 149) | static ret_code_t ctrlpt_decode(uint8_t const * p_rcvd_val,
function ctrlpt_execute (line 171) | static void ctrlpt_execute(nrf_ble_bms_t * p_bms, nrf_ble_bms_op_t op_code)
function ctrlpt_validate (line 204) | static bool ctrlpt_validate(nrf_ble_bms_ctrlpt_t * p_ctrlpt, nrf_ble_bms...
function ctrlpt_process (line 245) | static uint16_t ctrlpt_process(nrf_ble_bms_t * p_bms,
function feature_encode (line 286) | static uint8_t feature_encode(nrf_ble_bms_features_t const * p_feature, ...
function ret_code_t (line 326) | static ret_code_t feature_char_add(nrf_ble_bms_t * p_bms, nrf_ble_bms_in...
function on_ctrlpt_write (line 378) | static void on_ctrlpt_write(nrf_ble_bms_t * p_bms,
function on_rw_auth_req (line 412) | static void on_rw_auth_req(nrf_ble_bms_t * p_bms, ble_gatts_evt_t const ...
function on_qwr_auth_req (line 448) | uint16_t on_qwr_auth_req(nrf_ble_bms_t * p_bms, nrf_ble_qwr_t * p_qwr, n...
function on_qwr_exec_write (line 476) | uint16_t on_qwr_exec_write(nrf_ble_bms_t * p_bms, nrf_ble_qwr_t * p_qwr,...
function nrf_ble_bms_on_qwr_evt (line 514) | uint16_t nrf_ble_bms_on_qwr_evt(nrf_ble_bms_t * p_bms,
function nrf_ble_bms_on_ble_evt (line 540) | void nrf_ble_bms_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
function ret_code_t (line 560) | ret_code_t nrf_ble_bms_set_conn_handle(nrf_ble_bms_t * p_bms, uint16_t c...
function ret_code_t (line 569) | ret_code_t nrf_ble_bms_init(nrf_ble_bms_t * p_bms, nrf_ble_bms_init_t * ...
function ret_code_t (line 622) | ret_code_t nrf_ble_bms_auth_response(nrf_ble_bms_t * p_bms, bool authorize)
FILE: SDK/components/ble/ble_services/nrf_ble_bms/nrf_ble_bms.h
type nrf_ble_bms_features_t (line 139) | typedef struct
type nrf_ble_bms_op_t (line 150) | typedef enum
type nrf_ble_bms_auth_status_t (line 165) | typedef enum
type nrf_ble_bms_auth_code_t (line 173) | typedef struct
type nrf_ble_bms_evt_type_t (line 180) | typedef enum
type nrf_ble_bms_evt_t (line 186) | typedef struct
type nrf_ble_bms_ctrlpt_t (line 193) | typedef struct
type nrf_ble_bms_t (line 200) | typedef struct nrf_ble_bms_s nrf_ble_bms_t;
type nrf_ble_bms_bond_cbs_t (line 206) | typedef struct
type nrf_ble_bms_init_t (line 217) | typedef struct
type nrf_ble_bms_s (line 230) | struct nrf_ble_bms_s
FILE: SDK/components/ble/common/ble_advdata.c
function ret_code_t (line 59) | static ret_code_t ble_device_addr_encode(uint8_t * p_encoded_data,
function ret_code_t (line 97) | static ret_code_t name_encode(const ble_advdata_t * p_advdata,
function ret_code_t (line 177) | static ret_code_t appearance_encode(uint8_t * p_encoded_data,
function ret_code_t (line 204) | static ret_code_t flags_encode(int8_t flags,
function ret_code_t (line 226) | static ret_code_t tx_power_level_encode(int8_t tx_power_level,
function ret_code_t (line 250) | static ret_code_t uuid_list_sized_encode(const ble_advdata_uuid_list_t *...
function ret_code_t (line 315) | static ret_code_t uuid_list_encode(const ble_advdata_uuid_list_t * p_uui...
function ret_code_t (line 346) | static ret_code_t conn_int_check(const ble_advdata_conn_int_t *p_conn_int)
function ret_code_t (line 383) | static ret_code_t conn_int_encode(const ble_advdata_conn_int_t * p_conn_...
function ret_code_t (line 414) | static ret_code_t manuf_specific_data_encode(const ble_advdata_manuf_dat...
function ret_code_t (line 457) | static ret_code_t service_data_encode(const ble_advdata_t * p_advdata,
function ret_code_t (line 509) | ret_code_t ble_advdata_encode(ble_advdata_t const * const p_advdata,
function ble_advdata_search (line 619) | uint16_t ble_advdata_search(uint8_t const * p_encoded_data,
function ble_advdata_name_find (line 674) | bool ble_advdata_name_find(uint8_t const * p_encoded_data,
function ble_advdata_short_name_find (line 707) | bool ble_advdata_short_name_find(uint8_t const * p_encoded_data,
function ble_advdata_uuid_find (line 741) | bool ble_advdata_uuid_find(uint8_t const * p_encoded_data,
function ble_advdata_appearance_find (line 811) | bool ble_advdata_appearance_find(uint8_t const * p_encoded_data,
FILE: SDK/components/ble/common/ble_advdata.h
type ble_advdata_tk_value_t (line 91) | typedef struct
type ble_advdata_le_role_t (line 98) | typedef enum
type ble_advdata_name_type_t (line 109) | typedef enum
type ble_advdata_uuid_list_t (line 117) | typedef struct
type ble_advdata_conn_int_t (line 124) | typedef struct
type ble_advdata_manuf_data_t (line 131) | typedef struct
type ble_advdata_service_data_t (line 138) | typedef struct
type ble_advdata_t (line 146) | typedef struct
FILE: SDK/components/ble/common/ble_conn_params.c
type ble_conn_params_instance_t (line 63) | typedef struct
function ble_conn_params_instance_t (line 85) | static ble_conn_params_instance_t * instance_get(uint16_t conn_handle)
function __INLINE (line 105) | static __INLINE void instance_claim(ble_conn_params_instance_t * p_insta...
function __INLINE (line 117) | static __INLINE void instance_free(ble_conn_params_instance_t * p_instance)
function is_conn_params_ok (line 134) | static bool is_conn_params_ok(ble_gap_conn_params_t const * p_preferred_...
function send_error_evt (line 173) | static void send_error_evt(ret_code_t err_code)
function send_update_request (line 189) | static bool send_update_request(uint16_t conn_handle, ble_gap_conn_param...
function update_timeout_handler (line 207) | static void update_timeout_handler(void * p_context)
function ret_code_t (line 253) | ret_code_t ble_conn_params_init(const ble_conn_params_init_t * p_init)
function ret_code_t (line 304) | ret_code_t ble_conn_params_stop(void)
function conn_params_negotiation (line 341) | static void conn_params_negotiation(uint16_t conn_handle, ble_conn_param...
function on_connect (line 386) | static void on_connect(ble_evt_t const * p_ble_evt)
function on_disconnect (line 422) | static void on_disconnect(ble_evt_t const * p_ble_evt)
function on_write (line 448) | static void on_write(ble_evt_t const * p_ble_evt)
function on_conn_params_update (line 493) | static void on_conn_params_update(ble_evt_t const * p_ble_evt)
function ble_evt_handler (line 517) | static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
function ret_code_t (line 544) | ret_code_t ble_conn_params_change_conn_params(uint16_t co...
FILE: SDK/components/ble/common/ble_conn_params.h
type ble_conn_params_evt_type_t (line 61) | typedef enum
type ble_conn_params_evt_t (line 68) | typedef struct
type ble_conn_params_init_t (line 79) | typedef struct
FILE: SDK/components/ble/common/ble_conn_state.c
type ble_conn_state_flag_collections_t (line 58) | typedef struct
type ble_conn_state_t (line 74) | typedef struct
function bcs_internal_state_reset (line 92) | void bcs_internal_state_reset(void)
function ble_conn_state_conn_handle_list_t (line 98) | ble_conn_state_conn_handle_list_t conn_handle_list_get(nrf_atflags_t flags)
function active_flag_count (line 118) | uint32_t active_flag_count(nrf_atflags_t flags)
function record_activate (line 141) | static bool record_activate(uint16_t conn_handle)
function record_invalidate (line 157) | static void record_invalidate(uint16_t conn_handle)
function record_set_disconnected (line 170) | static void record_set_disconnected(uint16_t conn_handle)
function record_purge_disconnected (line 179) | static void record_purge_disconnected()
function user_flag_is_acquired (line 200) | static bool user_flag_is_acquired(ble_conn_state_user_flag_id_t flag_id)
function ble_conn_state_init (line 206) | void ble_conn_state_init(void)
function flag_toggle (line 211) | static void flag_toggle(nrf_atflags_t * p_flags, uint16_t conn_handle, b...
function ble_evt_handler (line 229) | static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
function ble_conn_state_valid (line 283) | bool ble_conn_state_valid(uint16_t conn_handle)
function ble_conn_state_role (line 293) | uint8_t ble_conn_state_role(uint16_t conn_handle)
function ble_conn_state_status_t (line 313) | ble_conn_state_status_t ble_conn_state_status(uint16_t conn_handle)
function ble_conn_state_encrypted (line 327) | bool ble_conn_state_encrypted(uint16_t conn_handle)
function ble_conn_state_mitm_protected (line 337) | bool ble_conn_state_mitm_protected(uint16_t conn_handle)
function ble_conn_state_lesc (line 346) | bool ble_conn_state_lesc(uint16_t conn_handle)
function ble_conn_state_conn_count (line 356) | uint32_t ble_conn_state_conn_count(void)
function ble_conn_state_central_conn_count (line 362) | uint32_t ble_conn_state_central_conn_count(void)
function ble_conn_state_peripheral_conn_count (line 371) | uint32_t ble_conn_state_peripheral_conn_count(void)
function ble_conn_state_conn_handle_list_t (line 380) | ble_conn_state_conn_handle_list_t ble_conn_state_conn_handles(void)
function ble_conn_state_conn_handle_list_t (line 386) | ble_conn_state_conn_handle_list_t ble_conn_state_central_handles(void)
function ble_conn_state_conn_handle_list_t (line 395) | ble_conn_state_conn_handle_list_t ble_conn_state_periph_handles(void)
function ble_conn_state_conn_idx (line 404) | uint16_t ble_conn_state_conn_idx(uint16_t conn_handle)
function ble_conn_state_user_flag_id_t (line 417) | ble_conn_state_user_flag_id_t ble_conn_state_user_flag_acquire(void)
function ble_conn_state_user_flag_get (line 430) | bool ble_conn_state_user_flag_get(uint16_t conn_handle, ble_conn_state_u...
function ble_conn_state_user_flag_set (line 443) | void ble_conn_state_user_flag_set(uint16_t conn_han...
function for_each_set_flag (line 454) | static uint32_t for_each_set_flag(nrf_atflags_t flags,
function ble_conn_state_for_each_connected (line 480) | uint32_t ble_conn_state_for_each_connected(ble_conn_state_user_function_...
function ble_conn_state_for_each_set_user_flag (line 487) | uint32_t ble_conn_state_for_each_set_user_flag(ble_conn_state_user_flag_...
FILE: SDK/components/ble/common/ble_conn_state.h
type ble_conn_state_status_t (line 78) | typedef enum
type ble_conn_state_conn_handle_list_t (line 91) | typedef struct
type ble_conn_state_user_flag_id_t (line 101) | typedef enum
FILE: SDK/components/ble/common/ble_date_time.h
type ble_date_time_t (line 67) | typedef struct
function __INLINE (line 77) | static __INLINE uint8_t ble_date_time_encode(const ble_date_time_t * p_d...
function __INLINE (line 91) | static __INLINE uint8_t ble_date_time_decode(ble_date_time_t * p_date_time,
FILE: SDK/components/ble/common/ble_gatt_db.h
type ble_gatt_db_char_t (line 65) | typedef struct
type ble_gatt_db_srv_t (line 77) | typedef struct
FILE: SDK/components/ble/common/ble_sensor_location.h
type ble_sensor_location_t (line 52) | typedef enum {
FILE: SDK/components/ble/common/ble_srv_common.c
function ble_srv_is_notification_enabled (line 51) | bool ble_srv_is_notification_enabled(uint8_t const * p_encoded_data)
function ble_srv_is_indication_enabled (line 57) | bool ble_srv_is_indication_enabled(uint8_t const * p_encoded_data)
function ble_srv_report_ref_encode (line 63) | uint8_t ble_srv_report_ref_encode(uint8_t * p_encoded...
function ble_srv_ascii_to_utf8 (line 76) | void ble_srv_ascii_to_utf8(ble_srv_utf8_str_t * p_utf8, char * p_ascii)
function set_security_req (line 90) | static inline void set_security_req(security_req_t level, ble_gap_conn_s...
function characteristic_add (line 120) | uint32_t characteristic_add(uint16_t service_handle,
function descriptor_add (line 202) | uint32_t descriptor_add(uint16_t char_handle,
FILE: SDK/components/ble/common/ble_srv_common.h
type ble_srv_report_ref_t (line 219) | typedef struct
type ble_srv_utf8_str_t (line 229) | typedef struct
type ble_srv_security_mode_t (line 240) | typedef struct
type ble_srv_cccd_security_mode_t (line 250) | typedef struct
type security_req_t (line 300) | typedef enum
type ble_add_char_user_desc_t (line 314) | typedef struct
type ble_add_char_params_t (line 332) | typedef struct
type ble_add_descr_params_t (line 356) | typedef struct
FILE: SDK/components/ble/nrf_ble_gatt/nrf_ble_gatt.c
function link_init (line 60) | static void link_init(nrf_ble_gatt_link_t * p_link)
function ret_code_t (line 74) | static ret_code_t data_length_update(uint16_t conn_handle, uint16_t data...
function on_connected_evt (line 122) | static void on_connected_evt(nrf_ble_gatt_t * p_gatt, ble_evt_t const * ...
function on_disconnected_evt (line 190) | static void on_disconnected_evt(nrf_ble_gatt_t * p_gatt, ble_evt_t const...
function on_exchange_mtu_rsp_evt (line 206) | static void on_exchange_mtu_rsp_evt(nrf_ble_gatt_t * p_gatt, ble_evt_t c...
function on_exchange_mtu_request_evt (line 245) | static void on_exchange_mtu_request_evt(nrf_ble_gatt_t * p_gatt, ble_evt...
function on_data_length_update_evt (line 301) | static void on_data_length_update_evt(nrf_ble_gatt_t * p_gatt, ble_evt_t...
function on_data_length_update_request_evt (line 353) | static void on_data_length_update_request_evt(nrf_ble_gatt_t * p_gatt, b...
function ret_code_t (line 372) | ret_code_t nrf_ble_gatt_init(nrf_ble_gatt_t * p_gatt, nrf_ble_gatt_evt_h...
function ret_code_t (line 390) | ret_code_t nrf_ble_gatt_att_mtu_periph_set(nrf_ble_gatt_t * p_gatt, uint...
function ret_code_t (line 404) | ret_code_t nrf_ble_gatt_att_mtu_central_set(nrf_ble_gatt_t * p_gatt, uin...
function nrf_ble_gatt_eff_mtu_get (line 418) | uint16_t nrf_ble_gatt_eff_mtu_get(nrf_ble_gatt_t const * p_gatt, uint16_...
function ret_code_t (line 429) | ret_code_t nrf_ble_gatt_data_length_set(nrf_ble_gatt_t * p_gatt,
function ret_code_t (line 464) | ret_code_t nrf_ble_gatt_data_length_get(nrf_ble_gatt_t const * p_gatt,
function nrf_ble_gatt_on_ble_evt (line 490) | void nrf_ble_gatt_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
FILE: SDK/components/ble/nrf_ble_gatt/nrf_ble_gatt.h
type nrf_ble_gatt_evt_id_t (line 82) | typedef enum
type nrf_ble_gatt_evt_t (line 89) | typedef struct
type nrf_ble_gatt_t (line 103) | typedef struct nrf_ble_gatt_s nrf_ble_gatt_t;
type nrf_ble_gatt_link_t (line 112) | typedef struct
type nrf_ble_gatt_s (line 126) | struct nrf_ble_gatt_s
FILE: SDK/components/ble/nrf_ble_qwr/nrf_ble_qwr.c
function ret_code_t (line 52) | ret_code_t nrf_ble_qwr_init(nrf_ble_qwr_t * p_qwr,
function ret_code_t (line 78) | ret_code_t nrf_ble_qwr_attr_register(nrf_ble_qwr_t * p_qwr, uint16_t att...
function ret_code_t (line 102) | ret_code_t nrf_ble_qwr_value_get(nrf_ble_qwr_t * p_qwr,
function ret_code_t (line 156) | ret_code_t nrf_ble_qwr_conn_handle_assign(nrf_ble_qwr_t * p_qwr,
function user_mem_reply (line 170) | static void user_mem_reply(nrf_ble_qwr_t * p_qwr)
function on_user_mem_request (line 201) | static void on_user_mem_request(nrf_ble_qwr_t * p_qwr,
function on_user_mem_release (line 218) | static void on_user_mem_release(nrf_ble_qwr_t * p_qwr,
function on_prepare_write (line 238) | static void on_prepare_write(nrf_ble_qwr_t * p_qwr,
function on_execute_write (line 290) | static void on_execute_write(nrf_ble_qwr_t * p_qwr,
function on_cancel_write (line 357) | static void on_cancel_write(nrf_ble_qwr_t * p_qwr,
function on_rw_authorize_request (line 382) | static void on_rw_authorize_request(nrf_ble_qwr_t * p_qwr,
function nrf_ble_qwr_on_ble_evt (line 445) | void nrf_ble_qwr_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_context)
FILE: SDK/components/ble/nrf_ble_qwr/nrf_ble_qwr.h
type nrf_ble_qwr_evt_type_t (line 98) | typedef enum
type nrf_ble_qwr_evt_t (line 105) | typedef struct
type nrf_ble_qwr_t (line 112) | struct nrf_ble_qwr_t
type nrf_ble_qwr_t (line 119) | struct nrf_ble_qwr_t
type nrf_ble_qwr_t (line 124) | typedef struct nrf_ble_qwr_t
type nrf_ble_qwr_init_t (line 143) | typedef struct
FILE: SDK/components/ble/nrf_ble_scan/nrf_ble_scan.c
function nrf_ble_scan_connect_with_target (line 71) | static void nrf_ble_scan_connect_with_target(nrf_ble_scan_t co...
function find_peer_addr (line 129) | static bool find_peer_addr(ble_gap_evt_adv_report_t const * const p_adv_...
function adv_addr_compare (line 151) | static bool adv_addr_compare(ble_gap_evt_adv_report_t const * const p_ad...
function ret_code_t (line 179) | static ret_code_t nrf_ble_scan_addr_filter_add(nrf_ble_scan_t * const p_...
function adv_name_compare (line 230) | static bool adv_name_compare(ble_gap_evt_adv_report_t const * p_adv_report,
function ret_code_t (line 266) | static ret_code_t nrf_ble_scan_name_filter_add(nrf_ble_scan_t * const p_...
function adv_short_name_compare (line 316) | static bool adv_short_name_compare(ble_gap_evt_adv_report_t const * cons...
function ret_code_t (line 353) | static ret_code_t nrf_ble_scan_short_name_filter_add(nrf_ble_scan_t ...
function adv_uuid_compare (line 409) | static bool adv_uuid_compare(ble_gap_evt_adv_report_t const * const p_ad...
function ret_code_t (line 466) | static ret_code_t nrf_ble_scan_uuid_filter_add(nrf_ble_scan_t * const p_...
function adv_appearance_compare (line 507) | static bool adv_appearance_compare(ble_gap_evt_adv_report_t const * cons...
function ret_code_t (line 542) | static ret_code_t nrf_ble_scan_appearance_filter_add(nrf_ble_scan_t * co...
function ret_code_t (line 574) | ret_code_t nrf_ble_scan_filter_set(nrf_ble_scan_t * const p_scan_ctx,
function ret_code_t (line 629) | ret_code_t nrf_ble_scan_all_filter_remove(nrf_ble_scan_t * const p_scan_...
function ret_code_t (line 667) | ret_code_t nrf_ble_scan_filters_enable(nrf_ble_scan_t * const p_scan_ctx,
function ret_code_t (line 734) | ret_code_t nrf_ble_scan_filters_disable(nrf_ble_scan_t * const p_scan_ctx)
function ret_code_t (line 764) | ret_code_t nrf_ble_scan_filter_get(nrf_ble_scan_t * const p_scan_ctx,
function nrf_ble_scan_on_adv_report (line 784) | static void nrf_ble_scan_on_adv_report(nrf_ble_scan_t const * ...
function is_whitelist_used (line 956) | bool is_whitelist_used(nrf_ble_scan_t const * const p_scan_ctx)
function nrf_ble_scan_default_param_set (line 972) | static void nrf_ble_scan_default_param_set(nrf_ble_scan_t * const p_scan...
function nrf_ble_scan_default_conn_param_set (line 993) | static void nrf_ble_scan_default_conn_param_set(nrf_ble_scan_t * const p...
function nrf_ble_scan_on_timeout (line 1011) | static void nrf_ble_scan_on_timeout(nrf_ble_scan_t const * const p_scan_...
function nrf_ble_scan_stop (line 1036) | void nrf_ble_scan_stop(void)
function ret_code_t (line 1044) | ret_code_t nrf_ble_scan_init(nrf_ble_scan_t * const p_scan_ctx,
function ret_code_t (line 1100) | ret_code_t nrf_ble_scan_start(nrf_ble_scan_t const * const p_scan_ctx)
function ret_code_t (line 1136) | ret_code_t nrf_ble_scan_params_set(nrf_ble_scan_t * const p...
function nrf_ble_scan_on_connected_evt (line 1165) | static void nrf_ble_scan_on_connected_evt(nrf_ble_scan_t const * const p...
function ret_code_t (line 1183) | ret_code_t nrf_ble_scan_copy_addr_to_sd_gap_addr(ble_gap_addr_t * p_gap_...
function nrf_ble_scan_on_ble_evt (line 1197) | void nrf_ble_scan_on_ble_evt(ble_evt_t const * p_ble_evt, void * p_contex)
FILE: SDK/components/ble/nrf_ble_scan/nrf_ble_scan.h
type nrf_ble_scan_evt_t (line 103) | typedef enum
type nrf_ble_scan_filter_type_t (line 117) | typedef enum
type nrf_ble_scan_short_name_t (line 127) | typedef struct
type nrf_ble_scan_init_t (line 135) | typedef struct
type nrf_ble_scan_filter_match (line 148) | typedef struct
type nrf_ble_scan_evt_filter_match_t (line 160) | typedef struct
type nrf_ble_scan_evt_connecting_err_t (line 169) | typedef struct
type nrf_ble_scan_evt_connected_t (line 177) | typedef struct
type scan_evt_t (line 188) | typedef struct
type nrf_ble_scan_name_filter_t (line 212) | typedef struct
type nrf_ble_scan_short_name_filter_t (line 221) | typedef struct
type nrf_ble_scan_addr_filter_t (line 234) | typedef struct
type nrf_ble_scan_uuid_filter_t (line 243) | typedef struct
type nrf_ble_scan_appearance_filter_t (line 252) | typedef struct
type nrf_ble_scan_filters_t (line 267) | typedef struct
type nrf_ble_scan_t (line 294) | typedef struct
FILE: SDK/components/ble/peer_manager/auth_status_tracker.c
type blacklisted_peer_t (line 70) | typedef struct
function blacklisted_peers_state_update (line 94) | static uint32_t blacklisted_peers_state_update(uint32_t ticks_passed)
function blacklisted_peers_state_transition_handle (line 169) | static void blacklisted_peers_state_transition_handle(void * context)
function ret_code_t (line 192) | ret_code_t ast_init(void)
function ast_auth_error_notify (line 202) | void ast_auth_error_notify(uint16_t conn_handle)
function ast_peer_blacklisted (line 307) | bool ast_peer_blacklisted(uint16_t conn_handle)
FILE: SDK/components/ble/peer_manager/gatt_cache_manager.c
function internal_state_reset (line 102) | static void internal_state_reset()
function evt_send (line 108) | static void evt_send(pm_evt_t * p_gcm_evt)
function cccd_written (line 126) | static bool cccd_written(ble_gatts_evt_write_t const * p_write_evt)
function send_unexpected_error (line 140) | static void send_unexpected_error(uint16_t conn_handle, ret_code_t err_c...
function local_db_apply_in_evt (line 166) | static void local_db_apply_in_evt(uint16_t conn_handle)
function __INLINE (line 227) | static __INLINE void local_db_update(uint16_t conn_handle, bool update)
function local_db_update_in_evt (line 241) | static bool local_db_update_in_evt(uint16_t conn_handle)
function ret_code_t (line 300) | static ret_code_t service_changed_cccd(uint16_t conn_handle, uint16_t * ...
function service_changed_send_in_evt (line 339) | static void service_changed_send_in_evt(uint16_t conn_handle)
function apply_pending_handle (line 414) | static void apply_pending_handle(uint16_t conn_handle, void * p_context)
function __INLINE (line 421) | static __INLINE void apply_pending_flags_check(void)
function db_update_pending_handle (line 429) | static void db_update_pending_handle(uint16_t conn_handle, void * p_cont...
function sc_send_pending_handle (line 448) | static void sc_send_pending_handle(uint16_t conn_handle, void * p_context)
function __INLINE (line 458) | static __INLINE void service_changed_pending_flags_check(void)
function service_changed_needed (line 466) | static void service_changed_needed(uint16_t conn_handle)
function car_update_pending_handle (line 476) | static void car_update_pending_handle(uint16_t conn_handle, void * p_con...
function car_update_needed (line 495) | static void car_update_needed(uint16_t conn_handle)
function __INLINE (line 508) | static __INLINE void update_pending_flags_check(void)
function gcm_im_evt_handler (line 528) | void gcm_im_evt_handler(pm_evt_t * p_event)
function gcm_pdb_evt_handler (line 551) | void gcm_pdb_evt_handler(pm_evt_t * p_event)
function ret_code_t (line 615) | ret_code_t gcm_init()
function store_car_value (line 651) | void store_car_value(uint16_t conn_handle, bool car_value)
function gcm_ble_evt_handler (line 677) | void gcm_ble_evt_handler(ble_evt_t const * p_ble_evt)
function ret_code_t (line 813) | ret_code_t gcm_local_db_cache_update(uint16_t conn_handle)
function gcm_local_database_has_changed (line 825) | void gcm_local_database_has_changed(void)
FILE: SDK/components/ble/peer_manager/gatts_cache_manager.c
function internal_state_reset (line 93) | static void internal_state_reset()
function evt_send (line 104) | static void evt_send(pm_evt_t * p_gscm_evt)
function service_changed_pending_set (line 121) | static void service_changed_pending_set(void)
function gscm_pdb_evt_handler (line 178) | void gscm_pdb_evt_handler(pm_evt_t * p_event)
function ret_code_t (line 188) | ret_code_t gscm_init()
function ret_code_t (line 199) | ret_code_t gscm_local_db_cache_update(uint16_t conn_handle)
function ret_code_t (line 306) | ret_code_t gscm_local_db_cache_apply(uint16_t conn_handle)
function gscm_local_database_has_changed (line 379) | void gscm_local_database_has_changed(void)
function gscm_service_changed_ind_needed (line 387) | bool gscm_service_changed_ind_needed(uint16_t conn_handle)
function ret_code_t (line 407) | ret_code_t gscm_service_changed_ind_send(uint16_t conn_handle)
function gscm_db_change_notification_done (line 435) | void gscm_db_change_notification_done(pm_peer_id_t peer_id)
FILE: SDK/components/ble/peer_manager/id_manager.c
type im_connection_t (line 87) | typedef struct
function evt_send (line 102) | static void evt_send(pm_evt_t * p_event)
function is_valid_irk (line 120) | bool is_valid_irk(ble_gap_irk_t const * p_irk)
function addr_compare (line 145) | bool addr_compare(ble_gap_addr_t const * p_addr1, ble_gap_addr_t const *...
function im_ble_evt_handler (line 164) | void im_ble_evt_handler(ble_evt_t const * ble_evt)
function im_is_duplicate_bonding_data (line 252) | bool im_is_duplicate_bonding_data(pm_peer_data_bonding_t const * p_bondi...
function pm_peer_id_t (line 278) | pm_peer_id_t im_find_duplicate_bonding_data(pm_peer_data_bonding_t const...
function pm_peer_id_t (line 301) | pm_peer_id_t im_peer_id_get_by_conn_handle(uint16_t conn_handle)
function ret_code_t (line 312) | ret_code_t im_ble_addr_get(uint16_t conn_handle, ble_gap_addr_t * p_ble_...
function im_master_ids_compare (line 326) | bool im_master_ids_compare(ble_gap_master_id_t const * p_master_id1,
function pm_peer_id_t (line 346) | pm_peer_id_t im_peer_id_get_by_master_id(ble_gap_master_id_t const * p_m...
function im_conn_handle_get (line 371) | uint16_t im_conn_handle_get(pm_peer_id_t peer_id)
function im_master_id_is_valid (line 389) | bool im_master_id_is_valid(ble_gap_master_id_t const * p_master_id)
function im_new_peer_id (line 407) | void im_new_peer_id(uint16_t conn_handle, pm_peer_id_t peer_id)
function ret_code_t (line 416) | ret_code_t im_peer_free(pm_peer_id_t peer_id)
function ret_code_t (line 434) | static ret_code_t peers_id_keys_get(pm_peer_id_t const * p_peers,
function ret_code_t (line 519) | ret_code_t im_device_identities_list_set(pm_peer_id_t const * p_peers,
function ret_code_t (line 584) | ret_code_t im_id_addr_set(ble_gap_addr_t const * p_addr)
function ret_code_t (line 590) | ret_code_t im_id_addr_get(ble_gap_addr_t * p_addr)
function ret_code_t (line 598) | ret_code_t im_privacy_set(pm_privacy_params_t const * p_privacy_params)
function ret_code_t (line 604) | ret_code_t im_privacy_get(pm_privacy_params_t * p_privacy_params)
function ret_code_t (line 613) | ret_code_t im_whitelist_get(ble_gap_addr_t * p_addrs,
function ret_code_t (line 643) | ret_code_t im_whitelist_set(pm_peer_id_t const * p_peers,
function ah (line 715) | void ah(uint8_t const * p_k, uint8_t const * p_r, uint8_t * p_local_hash)
function im_address_resolve (line 741) | bool im_address_resolve(ble_gap_addr_t const * p_addr, ble_gap_irk_t con...
FILE: SDK/components/ble/peer_manager/nrf_ble_lesc.c
type nrf_ble_lesc_peer_pub_key_t (line 52) | typedef struct
function ret_code_t (line 82) | ret_code_t nrf_ble_lesc_init(void)
function ret_code_t (line 132) | ret_code_t nrf_ble_lesc_keypair_generate(void)
function ret_code_t (line 190) | ret_code_t nrf_ble_lesc_own_oob_data_generate(void)
function ble_gap_lesc_p256_pk_t (line 211) | ble_gap_lesc_p256_pk_t * nrf_ble_lesc_public_key_get(void)
function ble_gap_lesc_oob_data_t (line 228) | ble_gap_lesc_oob_data_t * nrf_ble_lesc_own_oob_data_get(void)
function nrf_ble_lesc_peer_oob_data_handler_set (line 245) | void nrf_ble_lesc_peer_oob_data_handler_set(nrf_ble_lesc_peer_oob_data_h...
function ret_code_t (line 261) | static ret_code_t compute_and_give_dhkey(nrf_ble_lesc_peer_pub_key_t * p...
function ret_code_t (line 307) | ret_code_t nrf_ble_lesc_request_handler(void)
function ret_code_t (line 345) | static ret_code_t on_dhkey_request(uint16_t ...
function ret_code_t (line 434) | static ret_code_t lesc_oob_data_set(uint16_t conn_handle)
function nrf_ble_lesc_on_ble_evt (line 451) | void nrf_ble_lesc_on_ble_evt(ble_evt_t const * p_ble_evt)
FILE: SDK/components/ble/peer_manager/nrf_ble_lesc.h
type ble_gap_lesc_oob_data_t (line 61) | typedef ble_gap_lesc_oob_data_t * (* nrf_ble_lesc_peer_oob_data_handler)...
FILE: SDK/components/ble/peer_manager/peer_data_storage.c
function pds_evt_send (line 94) | static void pds_evt_send(pm_evt_t * p_event)
function peer_id_to_file_id (line 106) | static uint16_t peer_id_to_file_id(pm_peer_id_t peer_id)
function pm_peer_id_t (line 113) | static pm_peer_id_t file_id_to_peer_id(uint16_t file_id)
function peer_data_id_to_record_key (line 120) | static uint16_t peer_data_id_to_record_key(pm_peer_data_id_t peer_data_id)
function pm_peer_data_id_t (line 127) | static pm_peer_data_id_t record_key_to_peer_data_id(uint16_t record_key)
function file_id_within_pm_range (line 134) | static bool file_id_within_pm_range(uint16_t file_id)
function record_key_within_pm_range (line 142) | static bool record_key_within_pm_range(uint16_t record_key)
function peer_data_id_is_valid (line 149) | static bool peer_data_id_is_valid(pm_peer_data_id_t data_id)
function send_unexpected_error (line 166) | static void send_unexpected_error(pm_peer_id_t peer_id, ret_code_t err_c...
function peer_data_delete_process (line 186) | static void peer_data_delete_process()
function ret_code_t (line 227) | static ret_code_t peer_data_find(pm_peer_id_t peer_id,
function peer_ids_load (line 254) | static void peer_ids_load()
function fds_evt_handler (line 279) | static void fds_evt_handler(fds_evt_t const * const p_fds_evt)
function ret_code_t (line 363) | ret_code_t pds_init()
function ret_code_t (line 393) | ret_code_t pds_peer_data_read(pm_peer_id_t peer_id,
function pds_peer_data_iterate_prepare (line 455) | void pds_peer_data_iterate_prepare(void)
function pds_peer_data_iterate (line 461) | bool pds_peer_data_iterate(pm_peer_data_id_t data_id,
function ret_code_t (line 505) | ret_code_t pds_peer_data_store(pm_peer_id_t peer_id,
function ret_code_t (line 567) | ret_code_t pds_peer_data_delete(pm_peer_id_t peer_id, pm_peer_data_id_t ...
function pm_peer_id_t (line 605) | pm_peer_id_t pds_peer_id_allocate(void)
function ret_code_t (line 612) | ret_code_t pds_peer_id_free(pm_peer_id_t peer_id)
function pds_peer_id_is_allocated (line 624) | bool pds_peer_id_is_allocated(pm_peer_id_t peer_id)
function pds_peer_id_is_deleted (line 631) | bool pds_peer_id_is_deleted(pm_peer_id_t peer_id)
function pm_peer_id_t (line 638) | pm_peer_id_t pds_next_peer_id_get(pm_peer_id_t prev_peer_id)
function pm_peer_id_t (line 645) | pm_peer_id_t pds_next_deleted_peer_id_get(pm_peer_id_t prev_peer_id)
function pds_peer_count_get (line 652) | uint32_t pds_peer_count_get(void)
FILE: SDK/components/ble/peer_manager/peer_database.c
type pdb_buffer_record_t (line 106) | typedef struct
function write_buffer_record_invalidate (line 129) | static void write_buffer_record_invalidate(pdb_buffer_record_t * p_record)
function pdb_buffer_record_t (line 148) | static pdb_buffer_record_t * write_buffer_record_find_next(pm_peer_id_t ...
function pdb_buffer_record_t (line 169) | static pdb_buffer_record_t * write_buffer_record_find(pm_peer_id_t ...
function pdb_buffer_record_t (line 194) | static pdb_buffer_record_t * write_buffer_record_find_stored(pm_store_to...
function pdb_buffer_record_t (line 211) | static pdb_buffer_record_t * write_buffer_record_find_unused(void)
function write_buffer_record_release (line 225) | static void write_buffer_record_release(pdb_buffer_record_t * p_write_bu...
function write_buffer_record_acquire (line 242) | static void write_buffer_record_acquire(pdb_buffer_record_t ** pp_write_...
function pdb_evt_send (line 265) | static void pdb_evt_send(pm_evt_t * p_event)
function internal_state_reset (line 278) | static void internal_state_reset()
function peer_data_point_to_buffer (line 287) | static void peer_data_point_to_buffer(pm_peer_data_t * p_peer_data, pm_p...
function peer_data_const_point_to_buffer (line 297) | static void peer_data_const_point_to_buffer(pm_peer_data_const_t * p_pee...
function write_buf_length_words_set (line 303) | static void write_buf_length_words_set(pm_peer_data_const_t * p_peer_data)
function ret_code_t (line 340) | ret_code_t write_buf_store(pdb_buffer_record_t * p_write_buffer_record)
function write_buf_store_in_event (line 408) | static bool write_buf_store_in_event(pdb_buffer_record_t * p_write_buffe...
function reattempt_previous_operations (line 449) | static void reattempt_previous_operations(bool retry_flash_full)
function pdb_pds_evt_handler (line 482) | void pdb_pds_evt_handler(pm_evt_t * p_event)
function ret_code_t (line 531) | ret_code_t pdb_init()
function ret_code_t (line 553) | ret_code_t pdb_peer_free(pm_peer_id_t peer_id)
function ret_code_t (line 598) | ret_code_t pdb_peer_data_ptr_get(pm_peer_id_t peer_id,
function ret_code_t (line 611) | ret_code_t pdb_write_buf_get(pm_peer_id_t peer_id,
function ret_code_t (line 682) | ret_code_t pdb_write_buf_release(pm_peer_id_t peer_id, pm_peer_data_id_t...
function ret_code_t (line 700) | ret_code_t pdb_write_buf_store(pm_peer_id_t peer_id,
FILE: SDK/components/ble/peer_manager/peer_id.c
type pi_t (line 51) | typedef struct
function internal_state_reset (line 61) | static void internal_state_reset(pi_t * p_pi)
function peer_id_init (line 67) | void peer_id_init(void)
function pm_peer_id_t (line 73) | static pm_peer_id_t claim(pm_peer_id_t peer_id, nrf_atflags_t * p_peer_i...
function release (line 93) | static void release(pm_peer_id_t peer_id, nrf_atflags_t * p_peer_id_flags)
function pm_peer_id_t (line 102) | pm_peer_id_t peer_id_allocate(pm_peer_id_t peer_id)
function peer_id_delete (line 108) | bool peer_id_delete(pm_peer_id_t peer_id)
function peer_id_free (line 123) | void peer_id_free(pm_peer_id_t peer_id)
function peer_id_is_allocated (line 130) | bool peer_id_is_allocated(pm_peer_id_t peer_id)
function peer_id_is_deleted (line 140) | bool peer_id_is_deleted(pm_peer_id_t peer_id)
function pm_peer_id_t (line 150) | pm_peer_id_t next_id_get(pm_peer_id_t prev_peer_id, nrf_atflags_t * p_pe...
function pm_peer_id_t (line 165) | pm_peer_id_t peer_id_get_next_used(pm_peer_id_t peer_id)
function pm_peer_id_t (line 183) | pm_peer_id_t peer_id_get_next_deleted(pm_peer_id_t prev_peer_id)
function peer_id_n_ids (line 189) | uint32_t peer_id_n_ids(void)
FILE: SDK/components/ble/peer_manager/peer_manager.c
function evt_send (line 92) | static void evt_send(pm_evt_t const * p_pm_evt)
function rank_vars_update (line 104) | static void rank_vars_update(void)
function pm_pdb_evt_handler (line 127) | void pm_pdb_evt_handler(pm_evt_t * p_pdb_evt)
function pm_sm_evt_handler (line 255) | void pm_sm_evt_handler(pm_evt_t * p_sm_evt)
function pm_gcm_evt_handler (line 269) | void pm_gcm_evt_handler(pm_evt_t * p_gcm_evt)
function pm_gscm_evt_handler (line 281) | void pm_gscm_evt_handler(pm_evt_t * p_gscm_evt)
function pm_im_evt_handler (line 293) | void pm_im_evt_handler(pm_evt_t * p_im_evt)
function is_conn_handle_excluded (line 301) | static bool is_conn_handle_excluded(ble_evt_t const * p_ble_evt)
function ble_evt_handler (line 340) | static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
function internal_state_reset (line 361) | static void internal_state_reset()
function ret_code_t (line 368) | ret_code_t pm_init(void)
function ret_code_t (line 431) | ret_code_t pm_register(pm_evt_handler_t event_handler)
function ret_code_t (line 447) | ret_code_t pm_sec_params_set(ble_gap_sec_params_t * p_sec_params)
function ret_code_t (line 461) | ret_code_t pm_conn_secure(uint16_t conn_handle, bool force_repairing)
function ret_code_t (line 478) | ret_code_t pm_conn_exclude(uint16_t conn_handle, void const * p_context)
function pm_conn_sec_config_reply (line 490) | void pm_conn_sec_config_reply(uint16_t conn_handle, pm_conn_sec_config_t...
function ret_code_t (line 499) | ret_code_t pm_conn_sec_params_reply(uint16_t conn_handle,
function pm_local_database_has_changed (line 509) | void pm_local_database_has_changed(void)
function ret_code_t (line 519) | ret_code_t pm_id_addr_set(ble_gap_addr_t const * p_addr)
function ret_code_t (line 526) | ret_code_t pm_id_addr_get(ble_gap_addr_t * p_addr)
function ret_code_t (line 534) | ret_code_t pm_privacy_set(pm_privacy_params_t const * p_privacy_params)
function ret_code_t (line 542) | ret_code_t pm_privacy_get(pm_privacy_params_t * p_privacy_params)
function pm_address_resolve (line 551) | bool pm_address_resolve(ble_gap_addr_t const * p_addr, ble_gap_irk_t con...
function ret_code_t (line 566) | ret_code_t pm_whitelist_set(pm_peer_id_t const * p_peers,
function ret_code_t (line 574) | ret_code_t pm_whitelist_get(ble_gap_addr_t * p_addrs,
function ret_code_t (line 593) | ret_code_t pm_device_identities_list_set(pm_peer_id_t const * p_peers,
function ret_code_t (line 601) | ret_code_t pm_conn_sec_status_get(uint16_t conn_handle, pm_conn_sec_stat...
function pm_sec_is_sufficient (line 608) | bool pm_sec_is_sufficient(uint16_t conn_handle, pm_conn_sec_status_t * p...
function ret_code_t (line 615) | ret_code_t pm_lesc_public_key_set(ble_gap_lesc_p256_pk_t * p_public_key)
function ret_code_t (line 622) | ret_code_t pm_conn_handle_get(pm_peer_id_t peer_id, uint16_t * p_conn_ha...
function ret_code_t (line 631) | ret_code_t pm_peer_id_get(uint16_t conn_handle, pm_peer_id_t * p_peer_id)
function pm_peer_count (line 640) | uint32_t pm_peer_count(void)
function pm_peer_id_t (line 650) | pm_peer_id_t pm_next_peer_id_get(pm_peer_id_t prev_peer_id)
function peer_is_irk (line 672) | static bool peer_is_irk(ble_gap_irk_t const * const p_irk)
function ret_code_t (line 686) | ret_code_t pm_peer_id_list(pm_peer_id_t * p_peer_list,
function ret_code_t (line 817) | ret_code_t pm_peer_data_load(pm_peer_id_t peer_id,
function ret_code_t (line 834) | ret_code_t pm_peer_data_bonding_load(pm_peer_id_t peer_id,
function ret_code_t (line 845) | ret_code_t pm_peer_data_remote_db_load(pm_peer_id_t peer_id,
function ret_code_t (line 856) | ret_code_t pm_peer_data_app_data_load(pm_peer_id_t peer_id,
function ret_code_t (line 867) | ret_code_t pm_peer_data_store(pm_peer_id_t peer_id,
function ret_code_t (line 901) | ret_code_t pm_peer_data_bonding_store(pm_peer_id_t pee...
function ret_code_t (line 913) | ret_code_t pm_peer_data_remote_db_store(pm_peer_id_t peer_id,
function ret_code_t (line 926) | ret_code_t pm_peer_data_app_data_store(pm_peer_id_t peer_id,
function ret_code_t (line 939) | ret_code_t pm_peer_data_delete(pm_peer_id_t peer_id, pm_peer_data_id_t d...
function ret_code_t (line 952) | ret_code_t pm_peer_new(pm_peer_id_t * p_new_peer_id,
function ret_code_t (line 1020) | ret_code_t pm_peer_delete(pm_peer_id_t peer_id)
function ret_code_t (line 1028) | ret_code_t pm_peers_delete(void)
function ret_code_t (line 1069) | ret_code_t pm_peer_ranks_get(pm_peer_id_t * p_highest_ranked_peer,
function rank_init (line 1161) | static void rank_init(void)
function ret_code_t (line 1168) | ret_code_t pm_peer_rank_highest(pm_peer_id_t peer_id)
FILE: SDK/components/ble/peer_manager/peer_manager.h
type pm_peer_id_list_skip_t (line 77) | typedef enum
FILE: SDK/components/ble/peer_manager/peer_manager_handler.c
type sec_err_str_t (line 134) | typedef struct
function _conn_secure (line 168) | static void _conn_secure(uint16_t conn_handle, bool force)
type conn_secure_context_t (line 232) | typedef union
function delayed_conn_secure (line 246) | static void delayed_conn_secure(void * context)
function conn_secure (line 252) | static void conn_secure(uint16_t conn_handle, bool force)
function conn_secure (line 277) | static void conn_secure(uint16_t conn_handle, bool force)
function pm_handler_on_pm_evt (line 284) | void pm_handler_on_pm_evt(pm_evt_t const * p_pm_evt)
function pm_handler_flash_clean_on_return (line 300) | void pm_handler_flash_clean_on_return(void)
function rank_highest (line 308) | static void rank_highest(pm_peer_id_t peer_id)
function pm_handler_flash_clean (line 316) | void pm_handler_flash_clean(pm_evt_t const * p_pm_evt)
function pm_handler_pm_evt_log (line 487) | void pm_handler_pm_evt_log(pm_evt_t const * p_pm_evt)
function pm_handler_disconnect_on_sec_failure (line 622) | void pm_handler_disconnect_on_sec_failure(pm_evt_t const * p_pm_evt)
function pm_handler_disconnect_on_insufficient_sec (line 639) | void pm_handler_disconnect_on_insufficient_sec(pm_evt_t const * p_pm_evt,
function pm_handler_secure_on_connection (line 655) | void pm_handler_secure_on_connection(ble_evt_t const * p_ble_evt)
function pm_handler_secure_on_error (line 678) | void pm_handler_secure_on_error(ble_evt_t const * p_ble_evt)
FILE: SDK/components/ble/peer_manager/peer_manager_internal.h
type pm_peer_data_t (line 69) | typedef struct
type pm_peer_data_const_t (line 91) | typedef struct
type pm_peer_data_const_t (line 115) | typedef pm_peer_data_const_t pm_peer_data_flash_t;
FILE: SDK/components/ble/peer_manager/peer_manager_types.h
type pm_peer_id_t (line 68) | typedef uint16_t pm_peer_id_t;
type pm_store_token_t (line 72) | typedef uint32_t pm_store_token_t;
type pm_sec_error_code_t (line 78) | typedef uint16_t pm_sec_error_code_t;
type pm_peer_data_id_t (line 129) | typedef enum
type pm_conn_sec_procedure_t (line 146) | typedef enum
type pm_conn_sec_config_t (line 156) | typedef struct
type pm_peer_data_bonding_t (line 164) | typedef struct
type pm_peer_data_local_gatt_db_t (line 175) | typedef struct
type ble_gap_privacy_params_t (line 199) | typedef ble_gap_privacy_params_t pm_privacy_params_t;
type pm_conn_sec_status_t (line 204) | typedef struct
type pm_evt_id_t (line 217) | typedef enum
type pm_conn_config_req_evt_t (line 246) | typedef struct
type pm_conn_sec_start_evt_t (line 255) | typedef struct
type pm_conn_secured_evt_t (line 263) | typedef struct
type pm_conn_secure_failed_evt_t (line 272) | typedef struct
type pm_conn_sec_params_req_evt_t (line 282) | typedef struct
type pm_peer_data_op_t (line 291) | typedef enum
type pm_peer_data_update_succeeded_evt_t (line 300) | typedef struct
type pm_peer_data_update_failed_t (line 311) | typedef struct
type pm_failure_evt_t (line 322) | typedef struct
type pm_evt_t (line 332) | typedef struct
FILE: SDK/components/ble/peer_manager/pm_buffer.c
function mutex_lock (line 56) | static bool mutex_lock(nrf_atflags_t * p_mutex, uint32_t mutex_id)
function mutex_unlock (line 64) | static void mutex_unlock(nrf_atflags_t * p_mutex, uint32_t mutex_id)
function mutex_lock_status_get (line 71) | static bool mutex_lock_status_get(nrf_atflags_t * p_mutex, uint32_t mute...
function ret_code_t (line 78) | ret_code_t pm_buffer_init(pm_buffer_t * p_buffer,
function pm_buffer_block_acquire (line 106) | uint8_t pm_buffer_block_acquire(pm_buffer_t * p_buffer, uint32_t n_blocks)
function pm_buffer_release (line 161) | void pm_buffer_release(pm_buffer_t * p_buffer, uint8_t id)
FILE: SDK/components/ble/peer_manager/pm_buffer.h
type pm_buffer_t (line 86) | typedef struct
FILE: SDK/components/ble/peer_manager/security_dispatcher.c
function __INLINE (line 100) | static __INLINE bool sec_procedure(uint16_t conn_handle)
function __INLINE (line 105) | static __INLINE bool pairing(uint16_t conn_handle)
function __INLINE (line 110) | static __INLINE bool bonding(uint16_t conn_handle)
function __INLINE (line 115) | static __INLINE bool allow_repairing(uint16_t conn_handle)
function evt_send (line 125) | static void evt_send(pm_evt_t * p_event)
function sec_start_send (line 141) | static void sec_start_send(uint16_t conn_handle,
function send_unexpected_error (line 159) | static void send_unexpected_error(uint16_t conn_handle, ret_code_t err_c...
function send_storage_full_evt (line 181) | static void send_storage_full_evt(uint16_t conn_handle)
function conn_sec_failure (line 199) | static void conn_sec_failure(uint16_t conn_handle,
function pairing_failure (line 233) | static void pairing_failure(uint16_t conn_handle,
function __INLINE (line 263) | static __INLINE void encryption_failure(uint16_t conn_handle,
function link_secure_failure (line 279) | static void link_secure_failure(uint16_t conn_handle,
function sec_proc_start (line 303) | static void sec_proc_start(uint16_t conn_handle,
function sec_info_request_process (line 326) | static void sec_info_request_process(ble_gap_evt_t const * p_gap_evt)
function send_config_req (line 402) | static void send_config_req(uint16_t conn_handle)
function smd_conn_sec_config_reply (line 414) | void smd_conn_sec_config_reply(uint16_t conn_handle, pm_conn_sec_config_...
function disconnect_process (line 429) | static void disconnect_process(ble_gap_evt_t const * p_gap_evt)
function send_params_req (line 445) | static void send_params_req(uint16_t conn_handle, ble_gap_sec_params_t c...
function sec_params_request_process (line 468) | static void sec_params_request_process(ble_gap_evt_t const * p_gap_evt)
function pairing_success_evt_send (line 491) | static void pairing_success_evt_send(ble_gap_evt_t const * p_gap_evt, bo...
function auth_status_success_process (line 511) | static void auth_status_success_process(ble_gap_evt_t const * p_gap_evt)
function auth_status_failure_process (line 612) | static void auth_status_failure_process(ble_gap_evt_t const * p_gap_evt)
function auth_status_process (line 624) | static void auth_status_process(ble_gap_evt_t const * p_gap_evt)
function conn_sec_update_process (line 646) | static void conn_sec_update_process(ble_gap_evt_t const * p_gap_evt)
function flag_id_init (line 679) | static void flag_id_init(ble_conn_state_user_flag_id_t * p_flag_id)
function ret_code_t (line 688) | ret_code_t smd_init(void)
function ret_code_t (line 734) | static ret_code_t sec_keyset_fill(uint16_t conn_handle,
function ret_code_t (line 791) | ret_code_t smd_params_reply(uint16_t conn_handle,
function ret_code_t (line 879) | static ret_code_t link_secure_authenticate(uint16_t conn_h...
function ret_code_t (line 897) | static ret_code_t link_secure_central_encryption(uint16_t conn_handle,
function ret_code_t (line 958) | static ret_code_t link_secure_central(uint16_t conn_handle,
function sec_request_process (line 999) | static void sec_request_process(ble_gap_evt_t const * p_gap_evt)
function ret_code_t (line 1023) | static ret_code_t link_secure_peripheral(uint16_t conn_handle, ble_gap_s...
function ret_code_t (line 1037) | ret_code_t smd_link_secure(uint16_t conn_handle,
function smd_ble_evt_handler (line 1063) | void smd_ble_evt_handler(ble_evt_t const * p_ble_evt)
FILE: SDK/components/ble/peer_manager/security_manager.c
type sec_params_reply_context_t (line 85) | typedef struct
function evt_send (line 112) | static void evt_send(pm_evt_t * p_event)
function flags_set_from_err_code (line 129) | static void flags_set_from_err_code(uint16_t conn_handle, ret_code_t err...
function pm_evt_t (line 160) | static inline pm_evt_t new_evt(pm_evt_id_t evt_id, uint16_t conn_handle)
function send_unexpected_error (line 177) | static void send_unexpected_error(uint16_t conn_handle, ret_code_t err_c...
function key_is_lesc (line 191) | static bool key_is_lesc(pm_peer_id_t peer_id)
function events_send_from_err_code (line 211) | static void events_send_from_err_code(uint16_t conn_handle,
function params_req_send (line 251) | static void params_req_send(uint16_t conn_handle,
function sec_params_reply_context_t (line 267) | static sec_params_reply_context_t new_context_get(void)
function ret_code_t (line 287) | static ret_code_t link_secure(uint16_t conn_handle,
function smd_params_reply_perform (line 355) | static void smd_params_reply_perform(uint16_t conn_handle, ble_gap_sec_p...
function __INLINE (line 379) | static __INLINE void params_req_process(pm_evt_t const * p_event)
function ret_code_t (line 385) | ret_code_t sm_conn_sec_status_get(uint16_t conn_handle, pm_conn_sec_stat...
function sm_sec_is_sufficient (line 409) | bool sm_sec_is_sufficient(uint16_t conn_handle, pm_conn_sec_status_t * p...
function sec_req_process (line 427) | static void sec_req_process(pm_evt_t const * p_event)
function evt_forward (line 458) | static void evt_forward(pm_evt_t * p_event)
function sm_smd_evt_handler (line 469) | void sm_smd_evt_handler(pm_evt_t * p_event)
function params_reply_pending_handle (line 489) | static void params_reply_pending_handle(uint16_t conn_handle, void * p_c...
function link_secure_pending_handle (line 498) | static void link_secure_pending_handle(uint16_t conn_handle, void * p_co...
function sm_pdb_evt_handler (line 516) | void sm_pdb_evt_handler(pm_evt_t * p_event)
function flag_id_init (line 543) | static void flag_id_init(ble_conn_state_user_flag_id_t * p_flag_id)
function ret_code_t (line 552) | ret_code_t sm_init(void)
function sm_ble_evt_handler (line 582) | void sm_ble_evt_handler(ble_evt_t const * p_ble_evt)
function sec_params_verify (line 605) | static bool sec_params_verify(ble_gap_sec_params_t * p_sec_params)
function ret_code_t (line 684) | ret_code_t sm_sec_params_set(ble_gap_sec_params_t * p_sec_params)
function sm_conn_sec_config_reply (line 708) | void sm_conn_sec_config_reply(uint16_t conn_handle, pm_conn_sec_config_t...
function ret_code_t (line 717) | ret_code_t sm_sec_params_reply(uint16_t conn_handle,
function ret_code_t (line 746) | ret_code_t sm_lesc_public_key_set(ble_gap_lesc_p256_pk_t * p_public_key)
function ret_code_t (line 760) | ret_code_t sm_link_secure(uint16_t conn_handle, bool force_repairing)
FILE: SDK/components/boards/boards.c
function bsp_board_led_state_get (line 56) | bool bsp_board_led_state_get(uint32_t led_idx)
function bsp_board_led_on (line 63) | void bsp_board_led_on(uint32_t led_idx)
function bsp_board_led_off (line 69) | void bsp_board_led_off(uint32_t led_idx)
function bsp_board_leds_off (line 75) | void bsp_board_leds_off(void)
function bsp_board_leds_on (line 84) | void bsp_board_leds_on(void)
function bsp_board_led_invert (line 93) | void bsp_board_led_invert(uint32_t led_idx)
function gpio_output_voltage_setup (line 104) | static void gpio_output_voltage_setup(void)
function bsp_board_leds_init (line 125) | static void bsp_board_leds_init(void)
function bsp_board_led_idx_to_pin (line 147) | uint32_t bsp_board_led_idx_to_pin(uint32_t led_idx)
function bsp_board_pin_to_led_idx (line 153) | uint32_t bsp_board_pin_to_led_idx(uint32_t pin_number)
function bsp_board_button_state_get (line 170) | bool bsp_board_button_state_get(uint32_t button_idx)
function bsp_board_buttons_init (line 177) | static void bsp_board_buttons_init(void)
function bsp_board_pin_to_button_idx (line 186) | uint32_t bsp_board_pin_to_button_idx(uint32_t pin_number)
function bsp_board_button_idx_to_pin (line 201) | uint32_t bsp_board_button_idx_to_pin(uint32_t button_idx)
function bsp_board_init (line 209) | void bsp_board_init(uint32_t init_flags)
FILE: SDK/components/libraries/atomic/nrf_atomic.c
function nrf_atomic_u32_fetch_store (line 61) | uint32_t nrf_atomic_u32_fetch_store(nrf_atomic_u32_t * p_data, uint32_t ...
function nrf_atomic_u32_store (line 83) | uint32_t nrf_atomic_u32_store(nrf_atomic_u32_t * p_data, uint32_t value)
function nrf_atomic_u32_fetch_or (line 105) | uint32_t nrf_atomic_u32_fetch_or(nrf_atomic_u32_t * p_data, uint32_t value)
function nrf_atomic_u32_or (line 126) | uint32_t nrf_atomic_u32_or(nrf_atomic_u32_t * p_data, uint32_t value)
function nrf_atomic_u32_fetch_and (line 147) | uint32_t nrf_atomic_u32_fetch_and(nrf_atomic_u32_t * p_data, uint32_t va...
function nrf_atomic_u32_and (line 168) | uint32_t nrf_atomic_u32_and(nrf_atomic_u32_t * p_data, uint32_t value)
function nrf_atomic_u32_fetch_xor (line 189) | uint32_t nrf_atomic_u32_fetch_xor(nrf_atomic_u32_t * p_data, uint32_t va...
function nrf_atomic_u32_xor (line 210) | uint32_t nrf_atomic_u32_xor(nrf_atomic_u32_t * p_data, uint32_t value)
function nrf_atomic_u32_fetch_add (line 231) | uint32_t nrf_atomic_u32_fetch_add(nrf_atomic_u32_t * p_data, uint32_t va...
function nrf_atomic_u32_add (line 252) | uint32_t nrf_atomic_u32_add(nrf_atomic_u32_t * p_data, uint32_t value)
function nrf_atomic_u32_fetch_sub (line 273) | uint32_t nrf_atomic_u32_fetch_sub(nrf_atomic_u32_t * p_data, uint32_t va...
function nrf_atomic_u32_sub (line 294) | uint32_t nrf_atomic_u32_sub(nrf_atomic_u32_t * p_data, uint32_t value)
function nrf_atomic_u32_cmp_exch (line 315) | bool nrf_atomic_u32_cmp_exch(nrf_atomic_u32_t * p_data,
function nrf_atomic_u32_fetch_sub_hs (line 346) | uint32_t nrf_atomic_u32_fetch_sub_hs(nrf_atomic_u32_t * p_data, uint32_t...
function nrf_atomic_u32_sub_hs (line 388) | uint32_t nrf_atomic_u32_sub_hs(nrf_atomic_u32_t * p_data, uint32_t value)
function nrf_atomic_flag_set_fetch (line 430) | uint32_t nrf_atomic_flag_set_fetch(nrf_atomic_flag_t * p_data)
function nrf_atomic_flag_set (line 435) | uint32_t nrf_atomic_flag_set(nrf_atomic_flag_t * p_data)
function nrf_atomic_flag_clear_fetch (line 440) | uint32_t nrf_atomic_flag_clear_fetch(nrf_atomic_flag_t * p_data)
function nrf_atomic_flag_clear (line 445) | uint32_t nrf_atomic_flag_clear(nrf_atomic_flag_t * p_data)
FILE: SDK/components/libraries/atomic/nrf_atomic.h
type nrf_atomic_u32_t (line 59) | typedef volatile uint32_t nrf_atomic_u32_t;
type nrf_atomic_flag_t (line 64) | typedef volatile uint32_t nrf_atomic_flag_t;
FILE: SDK/components/libraries/atomic/nrf_atomic_internal.h
function __asm (line 65) | static __asm uint32_t nrf_atomic_internal_mov(nrf_atomic_u32_t * p_ptr,
function nrf_atomic_internal_cmp_exch (line 293) | static inline bool nrf_atomic_internal_cmp_exch(nrf_atomic_u32_t * p_data,
FILE: SDK/components/libraries/atomic/nrf_atomic_sanity_check.h
function nrf_atomic_sanity_check (line 52) | static inline void nrf_atomic_sanity_check(void)
FILE: SDK/components/libraries/atomic_fifo/nrf_atfifo.c
function ret_code_t (line 62) | ret_code_t nrf_atfifo_init(nrf_atfifo_t * const p_fifo, void * p_buf, ui...
function ret_code_t (line 86) | ret_code_t nrf_atfifo_clear(nrf_atfifo_t * const p_fifo)
function ret_code_t (line 94) | ret_code_t nrf_atfifo_alloc_put(nrf_atfifo_t * const p_fifo, void const ...
function nrf_atfifo_item_put (line 130) | bool nrf_atfifo_item_put(nrf_atfifo_t * const p_fifo, nrf_atfifo_item_pu...
function ret_code_t (line 143) | ret_code_t nrf_atfifo_get_free(nrf_atfifo_t * const p_fifo, void * const...
function nrf_atfifo_item_free (line 179) | bool nrf_atfifo_item_free(nrf_atfifo_t * const p_fifo, nrf_atfifo_item_g...
FILE: SDK/components/libraries/atomic_fifo/nrf_atfifo.h
type nrf_atfifo_postag_pos_t (line 112) | typedef struct nrf_atfifo_postag_pos_s
type nrf_atfifo_postag_t (line 125) | typedef union nrf_atfifo_postag_u
type nrf_atfifo_t (line 137) | typedef struct nrf_atfifo_s
type nrf_atfifo_item_put_t (line 153) | typedef struct nrf_atfifo_item_put_s
type nrf_atfifo_item_get_t (line 164) | typedef struct nrf_atfifo_rcontext_s
FILE: SDK/components/libraries/atomic_fifo/nrf_atfifo_internal.h
function __ASM (line 165) | __ASM bool nrf_atfifo_wspace_req(nrf_atfifo_t * const p_fifo, nrf_atfifo...
function nrf_atfifo_wspace_close (line 410) | void nrf_atfifo_wspace_close(nrf_atfifo_t * const p_fifo)
function nrf_atfifo_rspace_req (line 438) | bool nrf_atfifo_rspace_req(nrf_atfifo_t * const p_fifo, nrf_atfifo_posta...
function nrf_atfifo_rspace_close (line 496) | void nrf_atfifo_rspace_close(nrf_atfifo_t * const p_fifo)
function nrf_atfifo_space_clear (line 524) | bool nrf_atfifo_space_clear(nrf_atfifo_t * const p_fifo)
FILE: SDK/components/libraries/atomic_flags/nrf_atflags.c
function nrf_atflags_set (line 65) | void nrf_atflags_set(nrf_atflags_t * p_flags, uint32_t flag_index)
function nrf_atflags_fetch_set (line 72) | bool nrf_atflags_fetch_set(nrf_atflags_t * p_flags, uint32_t flag_index)
function nrf_atflags_clear (line 79) | void nrf_atflags_clear(nrf_atflags_t * p_flags, uint32_t flag_index)
function nrf_atflags_fetch_clear (line 86) | bool nrf_atflags_fetch_clear(nrf_atflags_t * p_flags, uint32_t flag_index)
function nrf_atflags_get (line 93) | bool nrf_atflags_get(nrf_atflags_t const * p_flags, uint32_t flag_index)
function nrf_atflags_init (line 99) | uint32_t nrf_atflags_init(nrf_atflags_t * p_flags, uint32_t flags_array_...
function nrf_atflags_find_and_set_flag (line 114) | uint32_t nrf_atflags_find_and_set_flag(nrf_atflags_t * p_flags, uint32_t...
function nrf_atflags_find_and_clear_flag (line 138) | uint32_t nrf_atflags_find_and_clear_flag(nrf_atflags_t * p_flags, uint32...
FILE: SDK/components/libraries/atomic_flags/nrf_atflags.h
type nrf_atflags_t (line 67) | typedef volatile uint32_t nrf_atflags_t;
FILE: SDK/components/libraries/balloc/nrf_balloc.c
function nrf_balloc_status (line 75) | static void nrf_balloc_status(nrf_cli_t const * p_cli, size_t argc, char...
function __STATIC_INLINE (line 132) | __STATIC_INLINE void * nrf_balloc_block_unwrap(nrf_balloc_t const * p_po...
function __STATIC_INLINE (line 177) | __STATIC_INLINE void * nrf_balloc_element_wrap(nrf_balloc_t const * p_po...
function nrf_balloc_block2idx (line 243) | static uint8_t nrf_balloc_block2idx(nrf_balloc_t const * p_pool, void co...
function ret_code_t (line 249) | ret_code_t nrf_balloc_init(nrf_balloc_t const * p_pool)
function nrf_balloc_free (line 325) | void nrf_balloc_free(nrf_balloc_t const * p_pool, void * p_element)
FILE: SDK/components/libraries/balloc/nrf_balloc.h
type nrf_balloc_cb_t (line 104) | typedef struct
type nrf_balloc_t (line 111) | typedef struct
function __STATIC_INLINE (line 323) | __STATIC_INLINE uint8_t nrf_balloc_max_utilization_get(nrf_balloc_t cons...
function __STATIC_INLINE (line 339) | __STATIC_INLINE uint8_t nrf_balloc_utilization_get(nrf_balloc_t const * ...
FILE: SDK/components/libraries/block_dev/empty/nrf_block_dev_empty.c
function ret_code_t (line 65) | static ret_code_t block_dev_empty_init(nrf_block_dev_t const * p_blk_dev,
function ret_code_t (line 98) | static ret_code_t block_dev_empty_uninit(nrf_block_dev_t const * p_blk_dev)
function ret_code_t (line 124) | static ret_code_t block_dev_empty_read_req(nrf_block_dev_t const * p_blk...
function ret_code_t (line 169) | static ret_code_t block_dev_empty_write_req(nrf_block_dev_t const * p_bl...
function ret_code_t (line 214) | static ret_code_t block_dev_empty_ioctl(nrf_block_dev_t const * p_blk_dev,
function nrf_block_dev_geometry_t (line 249) | static nrf_block_dev_geometry_t const * block_dev_empty_geometry(nrf_blo...
FILE: SDK/components/libraries/block_dev/empty/nrf_block_dev_empty.h
type nrf_block_dev_empty_work_t (line 70) | typedef struct {
type nrf_block_dev_empty_config_t (line 91) | typedef struct {
type nrf_block_dev_empty_t (line 99) | typedef struct {
function nrf_block_dev_t (line 140) | static inline nrf_block_dev_t const *
FILE: SDK/components/libraries/block_dev/nrf_block_dev.h
type nrf_block_req_t (line 65) | typedef struct {
type nrf_block_dev_event_type_t (line 92) | typedef enum {
type nrf_block_dev_result_t (line 99) | typedef enum {
type nrf_block_dev_event_t (line 108) | typedef struct {
type nrf_block_dev_s (line 115) | struct nrf_block_dev_s
type nrf_block_dev_s (line 123) | struct nrf_block_dev_s
type nrf_block_dev_geometry_t (line 129) | typedef struct {
type nrf_block_dev_info_strings_t (line 137) | typedef struct {
type nrf_block_dev_ioctl_req_t (line 165) | typedef enum {
type nrf_block_dev_t (line 182) | typedef struct nrf_block_dev_s {
type nrf_block_dev_ops_t (line 225) | typedef struct nrf_block_dev_ops_s nrf_block_dev_ops_t;
function ret_code_t (line 236) | static inline ret_code_t nrf_blk_dev_init(nrf_block_dev_t const * p_blk_...
function ret_code_t (line 251) | static inline ret_code_t nrf_blk_dev_uninit(nrf_block_dev_t const * p_bl...
function ret_code_t (line 271) | static inline ret_code_t nrf_blk_dev_read_req(nrf_block_dev_t const * p_...
function ret_code_t (line 299) | static inline ret_code_t nrf_blk_dev_write_req(nrf_block_dev_t const * p...
function ret_code_t (line 322) | static inline ret_code_t nrf_blk_dev_ioctl(nrf_block_dev_t const * p_blk...
function nrf_block_dev_geometry_t (line 337) | static inline nrf_block_dev_geometry_t const *
FILE: SDK/components/libraries/block_dev/qspi/nrf_block_dev_qspi.c
function block_dev_qspi_read_from_eunit (line 95) | static void block_dev_qspi_read_from_eunit(nrf_block_dev_qspi_t const * ...
function qspi_handler (line 166) | static void qspi_handler(nrf_drv_qspi_evt_t event, void * p_context)
function wait_for_idle (line 286) | static void wait_for_idle(nrf_block_dev_qspi_t const * p_qspi_dev)
function ret_code_t (line 295) | static ret_code_t block_dev_qspi_init(nrf_block_dev_t const * p_blk_dev,
function ret_code_t (line 425) | static ret_code_t block_dev_qspi_uninit(nrf_block_dev_t const * p_blk_dev)
function ret_code_t (line 468) | static ret_code_t block_dev_qspi_read_req(nrf_block_dev_t const * p_blk_...
function block_dev_qspi_update_eunit (line 540) | static bool block_dev_qspi_update_eunit(nrf_block_dev_qspi_t const * p_q...
function ret_code_t (line 575) | static ret_code_t block_dev_qspi_write_start(nrf_block_dev_qspi_t const ...
function ret_code_t (line 603) | static ret_code_t block_dev_qspi_eunit_write(nrf_block_dev_qspi_t const ...
function ret_code_t (line 659) | static ret_code_t block_dev_qspi_write_req(nrf_block_dev_t const * p_blk...
function ret_code_t (line 751) | static ret_code_t block_dev_qspi_ioctl(nrf_block_dev_t const * p_blk_dev,
function nrf_block_dev_geometry_t (line 811) | static nrf_block_dev_geometry_t const * block_dev_qspi_geometry(nrf_bloc...
FILE: SDK/components/libraries/block_dev/qspi/nrf_block_dev_qspi.h
type nrf_block_dev_qspi_state_t (line 72) | typedef enum {
type nrf_block_dev_qspi_work_t (line 84) | typedef struct {
type nrf_block_dev_qspi_flag_t (line 103) | typedef enum {
type nrf_block_dev_qspi_config_t (line 127) | typedef struct {
type nrf_block_dev_qspi_t (line 136) | typedef struct {
function nrf_block_dev_t (line 173) | static inline nrf_block_dev_t const *
FILE: SDK/components/libraries/block_dev/qspi/nrf_serial_flash_params.c
function nrf_serial_flash_params_t (line 52) | nrf_serial_flash_params_t const * nrf_serial_flash_params_get(const uint...
FILE: SDK/components/libraries/block_dev/qspi/nrf_serial_flash_params.h
type nrf_serial_flash_params_t (line 60) | typedef struct {
FILE: SDK/components/libraries/block_dev/ram/nrf_block_dev_ram.c
function ret_code_t (line 62) | static ret_code_t block_dev_ram_init(nrf_block_dev_t const * p_blk_dev,
function ret_code_t (line 94) | static ret_code_t block_dev_ram_uninit(nrf_block_dev_t const * p_blk_dev)
function ret_code_t (line 118) | static ret_code_t block_dev_ram_req(nrf_block_dev_t const * p_blk_dev,
function ret_code_t (line 177) | static ret_code_t block_dev_ram_read_req(nrf_block_dev_t const * p_blk_dev,
function ret_code_t (line 183) | static ret_code_t block_dev_ram_write_req(nrf_block_dev_t const * p_blk_...
function ret_code_t (line 189) | static ret_code_t block_dev_ram_ioctl(nrf_block_dev_t const * p_blk_dev,
function nrf_block_dev_geometry_t (line 225) | static nrf_block_dev_geometry_t const * block_dev_ram_geometry(nrf_block...
FILE: SDK/components/libraries/block_dev/ram/nrf_block_dev_ram.h
type nrf_block_dev_ram_work_t (line 68) | typedef struct {
type nrf_block_dev_ram_config_t (line 94) | typedef struct {
type nrf_block_dev_ram_t (line 103) | typedef struct {
function nrf_block_dev_t (line 140) | static inline nrf_block_dev_t const *
FILE: SDK/components/libraries/block_dev/sdc/nrf_block_dev_sdc.c
function wait_func (line 61) | static void wait_func(void)
function sdc_wait (line 65) | static void sdc_wait()
function sdc_handler (line 74) | static void sdc_handler(sdc_evt_t const * p_event)
function ret_code_t (line 142) | static ret_code_t block_dev_sdc_init(nrf_block_dev_t const * p_blk_dev,
function ret_code_t (line 200) | static ret_code_t block_dev_sdc_uninit(nrf_block_dev_t const * p_blk_dev)
function ret_code_t (line 243) | static ret_code_t block_dev_sdc_read_req(nrf_block_dev_t const * p_blk_dev,
function ret_code_t (line 293) | static ret_code_t block_dev_sdc_write_req(nrf_block_dev_t const * p_blk_...
function ret_code_t (line 343) | static ret_code_t block_dev_sdc_ioctl(nrf_block_dev_t const * p_blk_dev,
function nrf_block_dev_geometry_t (line 379) | static nrf_block_dev_geometry_t const * block_dev_sdc_geometry(nrf_block...
FILE: SDK/components/libraries/block_dev/sdc/nrf_block_dev_sdc.h
type nrf_block_dev_sdc_work_t (line 67) | typedef struct {
type nrf_block_dev_sdc_config_t (line 90) | typedef struct {
type nrf_block_dev_sdc_t (line 98) | typedef struct {
function nrf_block_dev_t (line 127) | static inline nrf_block_dev_t const *
FILE: SDK/components/libraries/bootloader/ant_dfu/nrf_dfu_ant.c
function release_rx_buff (line 204) | static void release_rx_buff(void)
function transmit_response (line 213) | static void transmit_response(void)
function update_bcast_data (line 249) | static void update_bcast_data(void)
function handle_write_complete (line 263) | static void handle_write_complete(void * p_buf)
function prepare_response (line 268) | static void prepare_response(nrf_dfu_response_t * p_res)
function handle_response (line 371) | static void handle_response(nrf_dfu_response_t * p_res, void * p_context)
function handle_request (line 402) | static uint32_t handle_request(void)
function handle_tx_transfer_complete (line 518) | static void handle_tx_transfer_complete(bool success)
function handle_rx_transfer_start (line 539) | static void handle_rx_transfer_start()
function handle_rx_transfer_complete (line 559) | static void handle_rx_transfer_complete(bool success)
function handle_rx_transfer_data (line 573) | static void handle_rx_transfer_data(uint8_t * data, size_t len)
function handle_data_mesg (line 592) | static void handle_data_mesg(ANT_MESSAGE * p_msg)
function ant_dfu_evt_handler (line 640) | static void ant_dfu_evt_handler(ant_evt_t * p_ant_evt, void * p_context)
function ant_dfu_init (line 676) | static uint32_t ant_dfu_init(nrf_dfu_observer_t observer)
function ant_dfu_close (line 740) | static uint32_t ant_dfu_close(nrf_dfu_transport_t const * p_exception)
FILE: SDK/components/libraries/bootloader/ble_dfu/nrf_dfu_ble.c
function advertising_init (line 142) | static uint32_t advertising_init(uint8_t adv_flags, ble_gap_adv_params_t...
function advertising_start (line 189) | static uint32_t advertising_start(void)
function is_cccd_configured (line 243) | static bool is_cccd_configured(ble_dfu_t * p_dfu)
function ret_code_t (line 263) | static ret_code_t response_send(uint8_t * p_buf, uint16_t len)
function service_changed_send (line 278) | static uint32_t service_changed_send(void)
function response_prepare (line 322) | static uint32_t response_prepare(uint8_t * p_buffer, uint8_t op_code, ui...
function response_select_obj_add (line 343) | static uint32_t response_select_obj_add(uint8_t * p_buffer,
function response_crc_add (line 365) | static uint32_t response_crc_add(uint8_t * p_buffer, uint32_t fw_offset,...
function response_ext_err_payload_add (line 381) | static uint32_t response_ext_err_payload_add(uint8_t * p_buffer, uint8_t...
function ble_dfu_req_handler_callback (line 389) | static void ble_dfu_req_handler_callback(nrf_dfu_response_t * p_res, voi...
function on_ctrl_pt_write (line 467) | static uint32_t on_ctrl_pt_write(ble_dfu_t * p_dfu, ble_gatts_evt_write_...
function on_rw_authorize_req (line 523) | static bool on_rw_authorize_req(ble_dfu_t * p_dfu, ble_evt_t const * p_b...
function on_flash_write (line 568) | static void on_flash_write(void * p_buf)
function on_write (line 580) | static void on_write(ble_dfu_t * p_dfu, ble_evt_t const * p_ble_evt)
function ble_evt_handler (line 636) | static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
function gap_address_change (line 898) | static uint32_t gap_address_change(void)
function gap_params_init (line 922) | static uint32_t gap_params_init(void)
function ble_stack_init (line 958) | static uint32_t ble_stack_init()
function dfu_pkt_char_add (line 999) | static uint32_t dfu_pkt_char_add(ble_dfu_t * const p_dfu)
function dfu_ctrl_pt_add (line 1047) | static uint32_t dfu_ctrl_pt_add(ble_dfu_t * const p_dfu)
function ble_dfu_init (line 1101) | uint32_t ble_dfu_init(ble_dfu_t * p_dfu)
function ble_dfu_transport_init (line 1138) | uint32_t ble_dfu_transport_init(nrf_dfu_observer_t observer)
function ble_dfu_transport_close (line 1204) | uint32_t ble_dfu_transport_close(nrf_dfu_transport_t const * p_exception)
function ble_dfu_transport_disconnect (line 1242) | uint32_t ble_dfu_transport_disconnect(void)
FILE: SDK/components/libraries/bootloader/ble_dfu/nrf_dfu_ble.h
type ble_dfu_t (line 78) | typedef struct
FILE: SDK/components/libraries/bootloader/dfu/dfu-cc.pb.h
type dfu_fw_type_t (line 57) | typedef enum
type dfu_hash_type_t (line 69) | typedef enum
type dfu_op_code_t (line 81) | typedef enum
type dfu_validation_type_t (line 89) | typedef enum
type dfu_signature_type_t (line 100) | typedef enum
type dfu_boot_validation_t (line 110) | typedef PB_BYTES_ARRAY_T(64) dfu_boot_validation_bytes_t;
type dfu_hash_t (line 117) | typedef PB_BYTES_ARRAY_T(32) dfu_hash_hash_t;
type dfu_init_command_t (line 124) | typedef struct {
type dfu_command_t (line 148) | typedef struct {
type dfu_signed_command_t (line 156) | typedef PB_BYTES_ARRAY_T(64) dfu_signed_command_signature_t;
type dfu_packet_t (line 164) | typedef struct {
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu.c
function dfu_observer (line 54) | static void dfu_observer(nrf_dfu_evt_type_t event)
function nrf_dfu_init (line 77) | uint32_t nrf_dfu_init(nrf_dfu_observer_t observer)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_flash.c
function dfu_fstorage_evt_handler (line 66) | void dfu_fstorage_evt_handler(nrf_fstorage_evt_t * p_evt)
function ret_code_t (line 95) | ret_code_t nrf_dfu_flash_init(bool sd_irq_initialized)
function ret_code_t (line 117) | ret_code_t nrf_dfu_flash_store(uint32_t dest,
function ret_code_t (line 144) | ret_code_t nrf_dfu_flash_erase(uint32_t page_addr,
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_handling_error.c
function nrf_dfu_result_t (line 48) | nrf_dfu_result_t ext_error_set(nrf_dfu_ext_error_code_t error_code)
function nrf_dfu_ext_error_code_t (line 55) | nrf_dfu_ext_error_code_t ext_error_get()
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_handling_error.h
type nrf_dfu_ext_error_code_t (line 69) | typedef enum
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_mbr.c
function nrf_dfu_mbr_copy_bl (line 48) | uint32_t nrf_dfu_mbr_copy_bl(uint32_t * p_src, uint32_t len)
function nrf_dfu_mbr_init_sd (line 66) | uint32_t nrf_dfu_mbr_init_sd(void)
function nrf_dfu_mbr_irq_forward_address_set (line 81) | uint32_t nrf_dfu_mbr_irq_forward_address_set(void)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_req_handler.c
function on_dfu_complete (line 82) | static void on_dfu_complete(nrf_fstorage_evt_t * p_evt)
function nrf_dfu_result_t (line 92) | static nrf_dfu_result_t ext_err_code_handle(nrf_dfu_result_t ret_val)
function on_protocol_version_request (line 108) | static void on_protocol_version_request(nrf_dfu_request_t const * p_req,...
function on_hw_version_request (line 125) | static void on_hw_version_request(nrf_dfu_request_t const * p_req, nrf_d...
function on_fw_version_request (line 139) | static void on_fw_version_request(nrf_dfu_request_t const * p_req, nrf_d...
function on_ping_request (line 204) | static void on_ping_request(nrf_dfu_request_t * p_req, nrf_dfu_response_...
function on_mtu_get_request (line 211) | static void on_mtu_get_request(nrf_dfu_request_t * p_req, nrf_dfu_respon...
function on_prn_set_request (line 219) | static void on_prn_set_request(nrf_dfu_request_t * p_req, nrf_dfu_respon...
function on_abort_request (line 227) | static void on_abort_request(nrf_dfu_request_t * p_req, nrf_dfu_response...
function cmd_response_offset_and_crc_set (line 238) | static void cmd_response_offset_and_crc_set(nrf_dfu_response_t * const p...
function on_cmd_obj_select_request (line 248) | static void on_cmd_obj_select_request(nrf_dfu_request_t const * p_req, n...
function on_cmd_obj_create_request (line 258) | static void on_cmd_obj_create_request(nrf_dfu_request_t * p_req, nrf_dfu...
function on_cmd_obj_write_request (line 272) | static void on_cmd_obj_write_request(nrf_dfu_request_t * p_req, nrf_dfu_...
function on_cmd_obj_execute_request (line 298) | static void on_cmd_obj_execute_request(nrf_dfu_request_t const * p_req, ...
function on_cmd_obj_crc_request (line 324) | static void on_cmd_obj_crc_request(nrf_dfu_request_t const * p_req, nrf_...
function nrf_dfu_command_req (line 342) | static void nrf_dfu_command_req(nrf_dfu_request_t * p_req, nrf_dfu_respo...
function on_data_obj_select_request (line 382) | static void on_data_obj_select_request(nrf_dfu_request_t * p_req, nrf_df...
function on_data_obj_create_request (line 398) | static void on_data_obj_create_request(nrf_dfu_request_t * p_req, nrf_df...
function on_data_obj_write_request (line 467) | static void on_data_obj_write_request(nrf_dfu_request_t * p_req, nrf_dfu...
function on_data_obj_crc_request (line 524) | static void on_data_obj_crc_request(nrf_dfu_request_t * p_req, nrf_dfu_r...
function on_data_obj_execute_request_sched (line 536) | static void on_data_obj_execute_request_sched(void * p_evt, uint16_t eve...
function on_data_obj_execute_request (line 596) | static bool on_data_obj_execute_request(nrf_dfu_request_t * p_req, nrf_d...
function nrf_dfu_data_req (line 627) | static bool nrf_dfu_data_req(nrf_dfu_request_t * p_req, nrf_dfu_response...
function nrf_dfu_obj_op (line 678) | static bool nrf_dfu_obj_op(nrf_dfu_request_t * p_req, nrf_dfu_response_t...
function nrf_dfu_req_handler_req_process (line 717) | static void nrf_dfu_req_handler_req_process(nrf_dfu_request_t * p_req)
function nrf_dfu_req_handler_req (line 800) | static void nrf_dfu_req_handler_req(void * p_evt, uint16_t event_length)
function ret_code_t (line 807) | ret_code_t nrf_dfu_req_handler_on_req(nrf_dfu_request_t * p_req)
function ret_code_t (line 826) | ret_code_t nrf_dfu_req_handler_init(nrf_dfu_observer_t observer)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_req_handler.h
type nrf_dfu_obj_type_t (line 66) | typedef enum
type nrf_dfu_op_t (line 76) | typedef enum
type nrf_dfu_result_t (line 97) | typedef enum
type nrf_dfu_firmware_type_t (line 111) | typedef enum
type nrf_dfu_response_protocol_t (line 122) | typedef struct
type nrf_dfu_response_hardware_t (line 130) | typedef struct
type nrf_dfu_response_firmware_t (line 145) | typedef struct
type nrf_dfu_response_select_t (line 156) | typedef struct
type nrf_dfu_response_create_t (line 166) | typedef struct
type nrf_dfu_response_write_t (line 175) | typedef struct
type nrf_dfu_response_crc_t (line 184) | typedef struct
type nrf_dfu_response_ping_t (line 193) | typedef struct
type nrf_dfu_response_mtu_t (line 201) | typedef struct
type nrf_dfu_response_t (line 209) | typedef struct
type nrf_dfu_request_firmware_t (line 230) | typedef struct
type nrf_dfu_request_select_t (line 238) | typedef struct
type nrf_dfu_request_create_t (line 246) | typedef struct
type nrf_dfu_request_write_t (line 255) | typedef struct
type nrf_dfu_request_ping_t (line 264) | typedef struct
type nrf_dfu_request_mtu_t (line 272) | typedef struct
type nrf_dfu_request_prn_t (line 280) | typedef struct
type nrf_dfu_request_t (line 291) | typedef struct
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_settings.c
function settings_crc_get (line 158) | static uint32_t settings_crc_get(nrf_dfu_settings_t const * p_settings)
function crc_ok (line 167) | static bool crc_ok(nrf_dfu_settings_t const * p_settings)
function boot_validation_crc (line 182) | static uint32_t boot_validation_crc(nrf_dfu_settings_t const * p_settings)
function boot_validation_crc_ok (line 190) | static bool boot_validation_crc_ok(nrf_dfu_settings_t const * p_settings)
function settings_crc_ok (line 196) | static bool settings_crc_ok(void)
function settings_backup_crc_ok (line 203) | static bool settings_backup_crc_ok(void)
function settings_forbidden_parts_copy_from_backup (line 215) | static void settings_forbidden_parts_copy_from_backup(uint8_t * p_dst_addr)
function nrf_dfu_settings_reinit (line 228) | void nrf_dfu_settings_reinit(void)
function ret_code_t (line 279) | ret_code_t nrf_dfu_settings_init(bool sd_irq_initialized)
function settings_forbidden_parts_equal_to_backup (line 304) | static bool settings_forbidden_parts_equal_to_backup(uint8_t * p_compare...
function ret_code_t (line 313) | static ret_code_t settings_write(void * p_dst,
function ret_code_t (line 367) | ret_code_t nrf_dfu_settings_write(nrf_dfu_flash_callback_t callback)
function settings_backup (line 379) | void settings_backup(nrf_dfu_flash_callback_t callback, void * p_src)
function nrf_dfu_settings_backup (line 400) | void nrf_dfu_settings_backup(nrf_dfu_flash_callback_t callback)
function ret_code_t (line 406) | ret_code_t nrf_dfu_settings_write_and_backup(nrf_dfu_flash_callback_t ca...
function __WEAK (line 421) | __WEAK ret_code_t nrf_dfu_settings_additional_erase(void)
function nrf_dfu_settings_progress_reset (line 428) | void nrf_dfu_settings_progress_reset(void)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_settings_svci.c
function ret_code_t (line 61) | ret_code_t nrf_dfu_settings_peer_data_write(nrf_dfu_peer_data_t * p_data)
function ret_code_t (line 91) | ret_code_t nrf_dfu_settings_peer_data_copy(nrf_dfu_peer_data_t * p_data)
function nrf_dfu_settings_peer_data_is_valid (line 101) | bool nrf_dfu_settings_peer_data_is_valid(void)
function ret_code_t (line 114) | ret_code_t nrf_dfu_settings_adv_name_write(nrf_dfu_adv_name_t * p_adv_name)
function ret_code_t (line 143) | ret_code_t nrf_dfu_settings_adv_name_copy(nrf_dfu_adv_name_t * p_adv_name)
function nrf_dfu_settings_adv_name_is_valid (line 152) | bool nrf_dfu_settings_adv_name_is_valid(void)
function ret_code_t (line 167) | ret_code_t nrf_dfu_settings_additional_erase(void)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_svci.c
function nrf_dfu_svci_vector_table_set (line 50) | uint32_t nrf_dfu_svci_vector_table_set(void)
function nrf_dfu_svci_vector_table_unset (line 73) | uint32_t nrf_dfu_svci_vector_table_unset(void)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_svci_handler.c
function nrf_dfu_set_peer_data_handler (line 59) | static uint32_t nrf_dfu_set_peer_data_handler(nrf_dfu_set_peer_data_svci...
function nrf_dfu_set_peer_data_on_call (line 71) | static uint32_t nrf_dfu_set_peer_data_on_call(nrf_dfu_peer_data_t ...
function nrf_dfu_set_peer_data_on_sys_evt (line 105) | static uint32_t nrf_dfu_set_peer_data_on_sys_evt(uint32_t sys_event, nrf...
function nrf_dfu_set_adv_name_handler (line 139) | static uint32_t nrf_dfu_set_adv_name_handler(nrf_dfu_set_adv_name_svci_a...
function nrf_dfu_set_adv_name_on_call (line 151) | static uint32_t nrf_dfu_set_adv_name_on_call(nrf_dfu_adv_name_t ...
function nrf_dfu_set_adv_name_on_sys_evt (line 185) | static uint32_t nrf_dfu_set_adv_name_on_sys_evt(uint32_t sys_event, nrf_...
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_transport.c
function nrf_dfu_transports_init (line 50) | uint32_t nrf_dfu_transports_init(nrf_dfu_observer_t observer)
function nrf_dfu_transports_close (line 72) | uint32_t nrf_dfu_transports_close(nrf_dfu_transport_t const * p_exception)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_transport.h
type nrf_dfu_transport_t (line 63) | typedef struct nrf_dfu_transport_s nrf_dfu_transport_t;
type nrf_dfu_transport_s (line 95) | struct nrf_dfu_transport_s
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_trigger_usb.c
function dfu_trigger_evt_handler (line 75) | static void dfu_trigger_evt_handler(app_usbd_class_inst_t const *...
function usbd_user_evt_handler (line 101) | static void usbd_user_evt_handler(app_usbd_event_type_t event)
function strings_create (line 136) | static void strings_create(void)
function usbd_evt_handler (line 170) | static void usbd_evt_handler(app_usbd_internal_evt_t const * const p_event)
function ret_code_t (line 176) | ret_code_t nrf_dfu_trigger_usb_init(void)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_types.h
type nrf_dfu_bank_t (line 175) | typedef struct
type dfu_progress_t (line 190) | typedef struct
type nrf_dfu_evt_type_t (line 214) | typedef enum
type nrf_dfu_peer_data_t (line 236) | typedef struct
type nrf_dfu_peer_data_state_t (line 244) | typedef enum
type nrf_dfu_adv_name_t (line 253) | typedef struct
type nrf_dfu_set_adv_name_state_t (line 260) | typedef enum
type nrf_dfu_peer_data_t (line 270) | typedef struct
type nrf_dfu_adv_name_t (line 275) | typedef struct
type boot_validation_type_t (line 288) | typedef enum
type boot_validation_t (line 296) | typedef struct
type nrf_dfu_settings_t (line 304) | typedef struct
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_utils.c
function nrf_dfu_bank_invalidate (line 48) | void nrf_dfu_bank_invalidate(nrf_dfu_bank_t * const p_bank)
function nrf_dfu_softdevice_invalidate (line 59) | void nrf_dfu_softdevice_invalidate(void)
function nrf_dfu_bank0_start_addr (line 87) | uint32_t nrf_dfu_bank0_start_addr(void)
function nrf_dfu_bank1_start_addr (line 100) | uint32_t nrf_dfu_bank1_start_addr(void)
function nrf_dfu_app_start_address (line 107) | uint32_t nrf_dfu_app_start_address(void)
function nrf_dfu_softdevice_start_address (line 113) | uint32_t nrf_dfu_softdevice_start_address(void)
function nrf_dfu_cache_prepare (line 119) | uint32_t nrf_dfu_cache_prepare(const uint32_t required_size, bool single...
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_validation.c
function pb_decoding_callback (line 112) | static void pb_decoding_callback(pb_istream_t *str,
function stored_init_cmd_decode (line 154) | static bool stored_init_cmd_decode(void)
function crypto_init (line 208) | static void crypto_init(void)
function nrf_dfu_validation_init (line 236) | void nrf_dfu_validation_init(void)
function nrf_dfu_result_t (line 251) | nrf_dfu_result_t nrf_dfu_validation_init_cmd_create(uint32_t size)
function nrf_dfu_result_t (line 277) | nrf_dfu_result_t nrf_dfu_validation_init_cmd_append(uint8_t const * p_da...
function nrf_dfu_validation_init_cmd_status_get (line 301) | void nrf_dfu_validation_init_cmd_status_get(uint32_t * p_offset,
function nrf_dfu_validation_init_cmd_present (line 311) | bool nrf_dfu_validation_init_cmd_present(void)
function signature_required (line 318) | static bool signature_required(dfu_fw_type_t fw_type_to_be_updated)
function nrf_dfu_result_t (line 334) | static nrf_dfu_result_t nrf_dfu_validation_signature_check(dfu_signature...
function nrf_dfu_result_t (line 413) | static nrf_dfu_result_t update_data_size_get(dfu_init_command_t const * ...
function use_single_bank (line 465) | static bool use_single_bank(dfu_fw_type_t new_fw_type)
function update_requires_softdevice (line 482) | static bool update_requires_softdevice(dfu_init_command_t const * p_init)
function keep_softdevice (line 489) | static bool keep_softdevice(dfu_init_command_t const * p_init)
function nrf_dfu_result_t (line 508) | static nrf_dfu_result_t update_data_addr_get(dfu_init_command_t const * ...
function nrf_dfu_result_t (line 531) | nrf_dfu_result_t nrf_dfu_validation_prevalidate(void)
function nrf_dfu_result_t (line 574) | nrf_dfu_result_t nrf_dfu_validation_init_cmd_execute(uint32_t * p_dst_da...
function nrf_dfu_validation_hash_ok (line 633) | static bool nrf_dfu_validation_hash_ok(uint8_t const * p_hash, uint32_t ...
function fw_hash_ok (line 686) | bool fw_hash_ok(dfu_init_command_t const * p_init, uint32_t fw_start_add...
function is_major_softdevice_update (line 695) | static bool is_major_softdevice_update(uint32_t new_sd_addr)
function softdevice_info_ok (line 723) | static bool softdevice_info_ok(uint32_t sd_start_addr, uint32_t sd_size)
function boot_validation_extract (line 749) | static bool boot_validation_extract(boot_validation_t * p_boot_validation,
function postvalidate_app (line 803) | static bool postvalidate_app(dfu_init_command_t const * p_init, uint32_t...
function postvalidate_sd_bl (line 853) | static bool postvalidate_sd_bl(dfu_init_command_t const * p_init,
function nrf_dfu_validation_boot_validate (line 948) | bool nrf_dfu_validation_boot_validate(boot_validation_t const * p_valida...
function nrf_dfu_result_t (line 991) | nrf_dfu_result_t postvalidate(uint32_t data_addr, uint32_t data_len, boo...
function nrf_dfu_result_t (line 1072) | nrf_dfu_result_t nrf_dfu_validation_post_data_execute(uint32_t data_addr...
function nrf_dfu_result_t (line 1078) | nrf_dfu_result_t nrf_dfu_validation_activation_prepare(uint32_t data_add...
function nrf_dfu_validation_valid_external_app (line 1084) | bool nrf_dfu_validation_valid_external_app(void)
FILE: SDK/components/libraries/bootloader/dfu/nrf_dfu_ver_validation.c
function sd_req_check (line 63) | static bool sd_req_check(uint32_t const * p_sd_req, uint8_t sd_req_cnt, ...
function sd_req_ok (line 81) | static bool sd_req_ok(dfu_init_command_t const * p_init)
function fw_hash_type_ok (line 161) | static bool fw_hash_type_ok(dfu_init_command_t const * p_init)
function fw_version_required (line 169) | static bool fw_version_required(dfu_fw_type_t new_fw_type)
function fw_type_ok (line 194) | static bool fw_type_ok(dfu_init_command_t const * p_init)
function fw_version_ok (line 217) | static bool fw_version_ok(dfu_init_command_t const * p_init)
function nrf_dfu_result_t (line 262) | nrf_dfu_result_t nrf_dfu_ver_validation_check(dfu_init_command_t const *...
FILE: SDK/components/libraries/bootloader/nrf_bootloader.c
function __WEAK (line 91) | __WEAK uint32_t nrf_dfu_init(nrf_dfu_observer_t observer)
function __WEAK (line 104) | __WEAK uint32_t nrf_dfu_init_user(void)
function flash_write_callback (line 111) | static void flash_write_callback(void * p_context)
function do_reset (line 118) | static void do_reset(void * p_context)
function bootloader_reset (line 130) | static void bootloader_reset(bool do_backup)
function inactivity_timeout (line 146) | static void inactivity_timeout(void)
function dfu_observer (line 155) | static void dfu_observer(nrf_dfu_evt_type_t evt_type)
function scheduler_init (line 186) | static void scheduler_init(void)
function wait_for_event (line 194) | static void wait_for_event(void)
function loop_forever (line 210) | static void loop_forever(void)
function dfu_enter_button_init (line 232) | static void dfu_enter_button_init(void)
function crc_on_valid_app_required (line 241) | static bool crc_on_valid_app_required(void)
function boot_validate (line 265) | static bool boot_validate(boot_validation_t const * p_validation, uint32...
function app_is_valid (line 287) | static bool app_is_valid(bool do_crc)
function dfu_enter_flags_clear (line 325) | static void dfu_enter_flags_clear(void)
function dfu_enter_check (line 353) | static bool dfu_enter_check(void)
function postvalidate (line 394) | static void postvalidate(void)
function ret_code_t (line 423) | ret_code_t nrf_bootloader_init(nrf_dfu_observer_t observer)
FILE: SDK/components/libraries/bootloader/nrf_bootloader_app_start.c
function nrf_bootloader_app_start (line 52) | void nrf_bootloader_app_start(void)
FILE: SDK/components/libraries/bootloader/nrf_bootloader_app_start_final.c
function jump_to_addr (line 66) | void jump_to_addr(uint32_t new_msp, uint32_t addr)
function __STATIC_INLINE (line 77) | __STATIC_INLINE void app_start(uint32_t vector_table_addr)
function ret_code_t (line 95) | ret_code_t nrf_bootloader_flash_protect(uint32_t address, uint32_t size)
function nrf_bootloader_app_start_final (line 156) | void nrf_bootloader_app_start_final(uint32_t vector_table_addr)
FILE: SDK/components/libraries/bootloader/nrf_bootloader_dfu_timers.c
type dfu_timer_t (line 55) | typedef struct
function timer_init (line 87) | static void timer_init(void)
function rtc_update (line 117) | static void rtc_update(uint32_t cc_channel, uint32_t cc_value)
function timer_activate (line 139) | static void timer_activate(dfu_timer_t * p_timer, uint32_t timeout_ticks)
function timer_stop (line 166) | static void timer_stop(dfu_timer_t * p_timer)
function timer_fire (line 182) | static void timer_fire(dfu_timer_t * p_timer)
function timer_start (line 214) | static void timer_start(dfu_timer_t * p_timer,
function RTC_IRQHandler (line 226) | void RTC_IRQHandler(void)
function nrf_bootloader_dfu_inactivity_timer_restart (line 246) | void nrf_bootloader_dfu_inactivity_timer_restart(uint32_t ...
function nrf_bootloader_wdt_feed_timer_start (line 257) | void nrf_bootloader_wdt_feed_timer_start(uint32_t ...
function nrf_bootloader_dfu_timer_counter_get (line 265) | uint32_t nrf_bootloader_dfu_timer_counter_get(void)
FILE: SDK/components/libraries/bootloader/nrf_bootloader_fw_activation.c
function image_copy (line 68) | static uint32_t image_copy(uint32_t dst_addr,
function app_activate (line 155) | static uint32_t app_activate(void)
function sd_activate (line 209) | static uint32_t sd_activate(void)
function bl_activate (line 268) | static uint32_t bl_activate(void)
function sd_bl_activate (line 344) | static uint32_t sd_bl_activate()
function flash_write_callback (line 368) | static void flash_write_callback(void * p_context)
function nrf_bootloader_fw_activation_result_t (line 375) | nrf_bootloade
Copy disabled (too large)
Download .json
Condensed preview — 2051 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (52,086K chars).
[
{
"path": ".dockerignore",
"chars": 100,
"preview": "**/_build/\n**/bin/\n**/obj/\ntmk/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0-tmk/\nKeymapDownloader/\n"
},
{
"path": ".gitattributes",
"chars": 2518,
"preview": "###############################################################################\n# Set default behavior to automatically "
},
{
"path": ".github/workflows/Build.yml",
"chars": 2192,
"preview": "name: Build ALL \n\non:\n workflow_dispatch:\n push:\n\njobs:\n build:\n name: Build all keyboard\n runs-on: ubuntu-late"
},
{
"path": ".github/workflows/Release.yml",
"chars": 2724,
"preview": "name: Release Glab3.0\n\non:\n workflow_dispatch:\n\njobs:\n build:\n name: Release Glab3.0 Firmware\n runs-on: ubuntu-l"
},
{
"path": ".gitignore",
"chars": 1094,
"preview": "/ble_app_hids_keyboard.eww\n/hex\n_build\n/release\nJLinkLog.txt\nJLinkSettings.ini\nEventRecorderStub.scvd\n\n# ignore virtuale"
},
{
"path": ".gitmodules",
"chars": 132,
"preview": "[submodule \"SDK/external/micro-ecc/micro-ecc\"]\n\tpath = SDK/external/micro-ecc/micro-ecc\n\turl = https://github.com/kmacka"
},
{
"path": ".travis.yml",
"chars": 2646,
"preview": "language: c\ncache: ccache\ndist: bionic\npython: 3.8\nbefore_install:\n - sudo apt-get update\n - sudo apt-get -y install p"
},
{
"path": ".vscode/launch.json",
"chars": 2518,
"preview": "{\n // 使用 IntelliSense 了解相关属性。 \n // 悬停以查看现有属性的描述。\n // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=83038"
},
{
"path": ".vscode/settings.json",
"chars": 9754,
"preview": "{\n \"files.associations\": {\n \"nrf_log.h\": \"c\",\n \"stdint.h\": \"c\",\n \"nordic_common.h\": \"c\",\n "
},
{
"path": ".vscode/tasks.json",
"chars": 2658,
"preview": "{\n // 有关 tasks.json 格式的文档,请参见\n // https://go.microsoft.com/fwlink/?LinkId=733558\n \"version\": \"2.0.0\",\n \"task"
},
{
"path": "Dockerfile",
"chars": 318,
"preview": "FROM python:3.7-slim-buster\nWORKDIR /work\n\nRUN apt-get update && apt-get install -y make git wget lbzip2 unzip && rm -rf"
},
{
"path": "KeymapDownloader/.gitignore",
"chars": 4978,
"preview": "\n# Created by https://www.gitignore.io/api/csharp\n\n### Csharp ###\n## Ignore Visual Studio temporary files, build results"
},
{
"path": "KeymapDownloader/KeymapDownloader/App.config",
"chars": 182,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n <startup> \n <supportedRuntime version=\"v4.0\" sku=\".N"
},
{
"path": "KeymapDownloader/KeymapDownloader/App.xaml",
"chars": 1282,
"preview": "<Application x:Class=\"KeymapDownloader.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentati"
},
{
"path": "KeymapDownloader/KeymapDownloader/App.xaml.cs",
"chars": 314,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Configuration;\nusing System.Data;\nusing System.Linq;\nusing"
},
{
"path": "KeymapDownloader/KeymapDownloader/CustomHID.cs",
"chars": 1445,
"preview": "using HidSharp;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Thre"
},
{
"path": "KeymapDownloader/KeymapDownloader/FodyWeavers.xml",
"chars": 176,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Weavers xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSc"
},
{
"path": "KeymapDownloader/KeymapDownloader/FodyWeavers.xsd",
"chars": 6616,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n <!-- This file was gen"
},
{
"path": "KeymapDownloader/KeymapDownloader/KeymapDownloader.csproj",
"chars": 7579,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "KeymapDownloader/KeymapDownloader/MainWindow.xaml",
"chars": 2738,
"preview": "<Controls:MetroWindow x:Class=\"KeymapDownloader.MainWindow\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml"
},
{
"path": "KeymapDownloader/KeymapDownloader/MainWindow.xaml.cs",
"chars": 8836,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "KeymapDownloader/KeymapDownloader/Properties/AssemblyInfo.cs",
"chars": 1625,
"preview": "using System.Reflection;\nusing System.Resources;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropSer"
},
{
"path": "KeymapDownloader/KeymapDownloader/Properties/Resources.Designer.cs",
"chars": 2444,
"preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n// 此代码由工具生成。\n/"
},
{
"path": "KeymapDownloader/KeymapDownloader/Properties/Resources.resx",
"chars": 5494,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "KeymapDownloader/KeymapDownloader/Properties/Settings.Designer.cs",
"chars": 1071,
"preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n// This code w"
},
{
"path": "KeymapDownloader/KeymapDownloader/Properties/Settings.settings",
"chars": 193,
"preview": "<?xml version='1.0' encoding='utf-8'?>\n<SettingsFile xmlns=\"uri:settings\" CurrentProfile=\"(Default)\">\n <Profiles>\n "
},
{
"path": "KeymapDownloader/KeymapDownloader/Resources/Entypo-license.txt",
"chars": 180,
"preview": "Entypo (http://www.entypo.com/) is created by Daniel Bruce and released under the Creative Commons, Share Alike/Attribut"
},
{
"path": "KeymapDownloader/KeymapDownloader/Resources/Icons.xaml",
"chars": 1480352,
"preview": "<ResourceDictionary xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"\n xmlns=\"http://schemas.mi"
},
{
"path": "KeymapDownloader/KeymapDownloader/Resources/IconsNonShared.xaml",
"chars": 1501806,
"preview": "<ResourceDictionary xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"\n xmlns=\"http://schemas.mi"
},
{
"path": "KeymapDownloader/KeymapDownloader/Resources/WindowsIcons-license.txt",
"chars": 1944,
"preview": "# License\n\nPlease carefully understand the license and download the latest icons at ModernUIIcons.com.\n\n## Understand Yo"
},
{
"path": "KeymapDownloader/KeymapDownloader/packages.config",
"chars": 612,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"ControlzEx\" version=\"3.0.2.4\" targetFramework=\"net452\""
},
{
"path": "KeymapDownloader/KeymapDownloader.sln",
"chars": 1120,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 15\nVisualStudioVersion = 15.0.27428.2043\nM"
},
{
"path": "README.md",
"chars": 5518,
"preview": "# nrf52-keyboard\n\n\n## Overview\n\nThis i"
},
{
"path": "SDK/components/ble/ble_advertising/ble_advertising.c",
"chars": 28011,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_advertising/ble_advertising.h",
"chars": 20334,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_link_ctx_manager/ble_link_ctx_manager.c",
"chars": 3131,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_link_ctx_manager/ble_link_ctx_manager.h",
"chars": 5863,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_racp/ble_racp.c",
"chars": 3123,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_racp/ble_racp.h",
"chars": 7647,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ancs_c/ancs_app_attr_get.c",
"chars": 16896,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ancs_c/ancs_app_attr_get.h",
"chars": 2938,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ancs_c/ancs_attr_parser.c",
"chars": 15227,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ancs_c/ancs_attr_parser.h",
"chars": 3706,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ancs_c/nrf_ble_ancs_c.c",
"chars": 25887,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ancs_c/nrf_ble_ancs_c.h",
"chars": 36745,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ans_c/ble_ans_c.c",
"chars": 19966,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ans_c/ble_ans_c.h",
"chars": 23358,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_bas/ble_bas.c",
"chars": 12367,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_bas/ble_bas.h",
"chars": 9745,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_bas_c/ble_bas_c.c",
"chars": 12328,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_bas_c/ble_bas_c.h",
"chars": 11815,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_bps/ble_bps.c",
"chars": 14546,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_bps/ble_bps.h",
"chars": 11830,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_cscs/ble_cscs.c",
"chars": 12798,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_cscs/ble_cscs.h",
"chars": 12283,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_cscs/ble_sc_ctrlpt.c",
"chars": 23005,
"preview": "/**\n * Copyright (c) 2013 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_cscs/ble_sc_ctrlpt.h",
"chars": 14390,
"preview": "/**\n * Copyright (c) 2013 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_cts_c/ble_cts_c.c",
"chars": 14336,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_cts_c/ble_cts_c.h",
"chars": 13775,
"preview": "/**\n * Copyright (c) 2014 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_dfu/ble_dfu.c",
"chars": 10703,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_dfu/ble_dfu.h",
"chars": 10347,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_dfu/ble_dfu_bonded.c",
"chars": 12288,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_dfu/ble_dfu_unbonded.c",
"chars": 9745,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_dis/ble_dis.c",
"chars": 10759,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_dis/ble_dis.h",
"chars": 6157,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_dis_c/ble_dis_c.c",
"chars": 19623,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_dis_c/ble_dis_c.h",
"chars": 15001,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_escs/escs_defs.h",
"chars": 6380,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_escs/nrf_ble_escs.c",
"chars": 20946,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_escs/nrf_ble_escs.h",
"chars": 12410,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_gls/ble_gls.c",
"chars": 36348,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_gls/ble_gls.h",
"chars": 17213,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_gls/ble_gls_db.c",
"chars": 4066,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_gls/ble_gls_db.h",
"chars": 4187,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_hids/ble_hids.c",
"chars": 57405,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_hids/ble_hids.h",
"chars": 25707,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_hrs/ble_hrs.c",
"chars": 13421,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_hrs/ble_hrs.h",
"chars": 12948,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_hrs_c/ble_hrs_c.c",
"chars": 12194,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_hrs_c/ble_hrs_c.h",
"chars": 12724,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_hts/ble_hts.c",
"chars": 13607,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_hts/ble_hts.h",
"chars": 11171,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ias/ble_ias.c",
"chars": 7222,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ias/ble_ias.h",
"chars": 8069,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ias_c/ble_ias_c.c",
"chars": 8980,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ias_c/ble_ias_c.h",
"chars": 11975,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ipsp/ble_ipsp.c",
"chars": 39256,
"preview": "/**\n * Copyright (c) 2014 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_ipsp/ble_ipsp.h",
"chars": 11033,
"preview": "/**\n * Copyright (c) 2014 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_lbs/ble_lbs.c",
"chars": 5584,
"preview": "/**\n * Copyright (c) 2013 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_lbs/ble_lbs.h",
"chars": 6895,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_lbs_c/ble_lbs_c.c",
"chars": 12161,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_lbs_c/ble_lbs_c.h",
"chars": 12413,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_lls/ble_lls.c",
"chars": 7239,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_lls/ble_lls.h",
"chars": 7650,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_nus/ble_nus.c",
"chars": 12755,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_nus/ble_nus.h",
"chars": 10133,
"preview": " /**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in s"
},
{
"path": "SDK/components/ble/ble_services/ble_nus_c/ble_nus_c.c",
"chars": 11149,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_nus_c/ble_nus_c.h",
"chars": 12830,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_rscs/ble_rscs.c",
"chars": 11499,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_rscs/ble_rscs.h",
"chars": 10321,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_rscs_c/ble_rscs_c.c",
"chars": 12571,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_rscs_c/ble_rscs_c.h",
"chars": 11752,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_tps/ble_tps.c",
"chars": 4731,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/ble_tps/ble_tps.h",
"chars": 5814,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es.h",
"chars": 9536,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_adv.c",
"chars": 12556,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_adv.h",
"chars": 5040,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_adv_frame.c",
"chars": 4891,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_adv_frame.h",
"chars": 3080,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_adv_timing.c",
"chars": 7910,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_adv_timing.h",
"chars": 3791,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_adv_timing_resolver.c",
"chars": 5875,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_adv_timing_resolver.h",
"chars": 4406,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_battery_voltage.h",
"chars": 2500,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_battery_voltage_saadc.c",
"chars": 4509,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_flash.c",
"chars": 12186,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_flash.h",
"chars": 7325,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_gatts.c",
"chars": 5761,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_gatts.h",
"chars": 4867,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_gatts_read.c",
"chars": 9015,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_gatts_read.h",
"chars": 2886,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_gatts_write.c",
"chars": 9195,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_gatts_write.h",
"chars": 3043,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_security.c",
"chars": 25178,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_security.h",
"chars": 9325,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_slot.c",
"chars": 14012,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_slot.h",
"chars": 7989,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_slot_reg.c",
"chars": 6932,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_slot_reg.h",
"chars": 3551,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_stopwatch.c",
"chars": 3556,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_stopwatch.h",
"chars": 2864,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_tlm.c",
"chars": 4867,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_tlm.h",
"chars": 2798,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/es_util.h",
"chars": 4128,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/nrf_ble_es.c",
"chars": 14877,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/eddystone/nrf_ble_es.h",
"chars": 3918,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_lns/ble_ln_common.h",
"chars": 6000,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_lns/ble_ln_cp.c",
"chars": 25700,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_lns/ble_ln_cp.h",
"chars": 11152,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_lns/ble_ln_db.c",
"chars": 4403,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_lns/ble_ln_db.h",
"chars": 4226,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_lns/ble_lns.c",
"chars": 37569,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_lns/ble_lns.h",
"chars": 22635,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_ots/ble_ots.c",
"chars": 8886,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_ots/ble_ots.h",
"chars": 19665,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_l2cap.c",
"chars": 14992,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_l2cap.h",
"chars": 5237,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_oacp.c",
"chars": 23591,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_oacp.h",
"chars": 3965,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_object.c",
"chars": 21683,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_ble_ots/ble_ots_object.h",
"chars": 4041,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_gatts_c/nrf_ble_gatts_c.c",
"chars": 12077,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_gatts_c/nrf_ble_gatts_c.h",
"chars": 11656,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_db.c",
"chars": 4085,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_db.h",
"chars": 4263,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_meas.c",
"chars": 8445,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_meas.h",
"chars": 3998,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_racp.c",
"chars": 28099,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_racp.h",
"chars": 3810,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_socp.c",
"chars": 16915,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_socp.h",
"chars": 3786,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_sst.c",
"chars": 7936,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/cgms_sst.h",
"chars": 4308,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/nrf_ble_cgms.c",
"chars": 15116,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_cgms/nrf_ble_cgms.h",
"chars": 24729,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c.c",
"chars": 18855,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c.h",
"chars": 18200,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c_l2cap.c",
"chars": 10393,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c_l2cap.h",
"chars": 4076,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c_oacp.c",
"chars": 9523,
"preview": "/**\n * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/experimental_nrf_ble_ots_c/nrf_ble_ots_c_oacp.h",
"chars": 5223,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/nrf_ble_bms/nrf_ble_bms.c",
"chars": 21721,
"preview": "/**\n * Copyright (c) 2016 - 2021, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/ble_services/nrf_ble_bms/nrf_ble_bms.h",
"chars": 18635,
"preview": "/**\n * Copyright (c) 2016 - 2021, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_advdata.c",
"chars": 28897,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_advdata.h",
"chars": 19925,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_conn_params.c",
"chars": 20429,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_conn_params.h",
"chars": 8536,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_conn_state.c",
"chars": 15863,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_conn_state.h",
"chars": 14139,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_date_time.h",
"chars": 3836,
"preview": "/**\n * Copyright (c) 2011 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_gatt_db.h",
"chars": 4313,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_sensor_location.h",
"chars": 3386,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_srv_common.c",
"chars": 9171,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/common/ble_srv_common.h",
"chars": 29368,
"preview": "/**\n * Copyright (c) 2012 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/nrf_ble_gatt/nrf_ble_gatt.c",
"chars": 20098,
"preview": "/**\n * Copyright (c) 2016 - 2021, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/nrf_ble_gatt/nrf_ble_gatt.h",
"chars": 10846,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/nrf_ble_qwr/nrf_ble_qwr.c",
"chars": 15791,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/nrf_ble_qwr/nrf_ble_qwr.h",
"chars": 11685,
"preview": "/**\n * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/nrf_ble_scan/nrf_ble_scan.c",
"chars": 40156,
"preview": "/**\n * Copyright (c) 2018 - 2021, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/nrf_ble_scan/nrf_ble_scan.h",
"chars": 24184,
"preview": "/**\n * Copyright (c) 2018 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/auth_status_tracker.c",
"chars": 13087,
"preview": "/**\n * Copyright (c) 2018 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/auth_status_tracker.h",
"chars": 3478,
"preview": "/**\n * Copyright (c) 2018 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/gatt_cache_manager.c",
"chars": 28740,
"preview": "/**\n * Copyright (c) 2015 - 2021, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/gatt_cache_manager.h",
"chars": 3943,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/gatts_cache_manager.c",
"chars": 15951,
"preview": "/**\n * Copyright (c) 2015 - 2021, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/gatts_cache_manager.h",
"chars": 7124,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/id_manager.c",
"chars": 25003,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/id_manager.h",
"chars": 13222,
"preview": "/**\n * Copyright (c) 2015 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/nrf_ble_lesc.c",
"chars": 19715,
"preview": "/**\n * Copyright (c) 2018 - 2021, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
},
{
"path": "SDK/components/ble/peer_manager/nrf_ble_lesc.h",
"chars": 6745,
"preview": "/**\n * Copyright (c) 2018 - 2020, Nordic Semiconductor ASA\n *\n * All rights reserved.\n *\n * Redistribution and use in so"
}
]
// ... and 1851 more files (download for full content)
About this extraction
This page contains the full source code of the genokolar/nrf52-keyboard GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2051 files (48.2 MB), approximately 12.8M tokens, and a symbol index with 13162 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.