| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import './uuid.mojom-webui.js'; |
| |
| /** |
| * Format in a user readable way service UUIDs. |
| * Note: UUID type is defined in uuid.mojom-webui.ts, however, pure types |
| * are elided by the TS compiler at runtime, so we don't import it here since |
| * this file is in JavaScript. The import can be restored when this file is |
| * migrated to TypeScript. |
| * @param ?Array<UUID> uuids |
| * @return {string} |
| */ |
| export function formatServiceUuids(serviceUuids) { |
| if (!serviceUuids) { |
| return ''; |
| } |
| return serviceUuids.map(service => service.uuid).join(', '); |
| } |
| |
| /** |
| * Format in a user readable way device manufacturer data map. Keys are |
| * Bluetooth company identifiers (unsigned short), values are bytes. |
| * @param {Map<string, array<number>>} manufacturerDataMap |
| * @return {string} |
| */ |
| export function formatManufacturerDataMap(manufacturerDataMap) { |
| return Object.entries(manufacturerDataMap) |
| .map(([key, value]) => { |
| const companyIdentifier = parseInt(key).toString(16).padStart(4, '0'); |
| const data = value.map(v => v.toString(16).padStart(2, '0')).join(''); |
| return `0x${companyIdentifier} 0x${data}`; |
| }) |
| .join(' | '); |
| } |