Bluetooth
Scan efter nærliggende Bluetooth Low Energy-enheder, inspicér signalstyrke og annonceringsdata, gennemse GATT-tjenester og karakteristika, og se live-data fra tilsluttede perifere enheder.
Oversigt
Bluetooth-værktøjet bruger Apples CoreBluetooth-framework til at fungere som en BLE (Bluetooth Low Energy) central og scanne efter nærliggende perifere enheder. Det viser alle opdagede enheder sammen med realtids signalstyrke (RSSI), annonceringsdata og forbindelsesstatus. Du kan oprette forbindelse til forbindelige enheder for at gennemse deres GATT-tjenester og karakteristika, læse værdier, abonnere på notifikationer og inspicere producentdata.
Indholdsfortegnelse
- Oversigtsskærm
- Enhedsdetaljer-skærm
- Tilladelser og krav
- Tekniske detaljer
- Noter og begrænsninger
- Fejlfinding
Oversigtsskærm
Oversigtsskærmen er hovedvisningen i Bluetooth-værktøjet. Den indeholder en søgelinje, et statuskort med scanningskontroller og en rulleliste over opdagede enheder.
Søgelinje
Et tekstfelt øverst på skærmen filtrerer enhedslisten efter navn. Når du skriver en forespørgsel, indsnævres listen øjeblikkeligt til enheder, hvis annoncerede eller perifere navn indeholder søgeteksten (uden skelnen mellem store og små bogstaver). En ryd-knap vises, når feltet ikke er tomt.
Bluetooth-statuskort
Statuskortet viser:
- Bluetooth-status-mærkat med den aktuelle radiotilstand, farvekodet:
- Tændt (grøn) — Bluetooth er aktiv og klar til scanning.
- Slukket (rød) — Bluetooth-radioen er slukket.
- Ikke godkendt (orange) — brugeren har nægtet Bluetooth-tilladelse til appen.
- Ikke understøttet (rød) — enhedens hardware understøtter ikke Bluetooth.
- Ukendt / Nulstiller (grå) — systemet fastlægger stadig Bluetooth-tilstanden.
- En scanningskontrolknap (kun synlig når Bluetooth er tændt):
- Stop scanning (rød) — stopper den aktive scanning.
- Start scanning (grøn) — starter scanning efter nærliggende enheder.
Scanning starter automatisk, når værktøjet åbnes, og Bluetooth er tændt.
Enhedsliste
Opdagede enheder vises i en rulleliste, sorteret efter RSSI (stærkeste signal først). Listen opdateres i realtid, efterhånden som nye enheder findes, eller eksisterende enheder opdaterer deres annonceringsdata.
Enhedsrække
Hver enhed vises som et kort, der indeholder:
- Et Bluetooth-ikon i et cirkulært mærke. En hvid bue overlejrer cirklen og fyldes proportionalt med enhedens signalstyrke (0–100%).
- Enhedsnavn — det annoncerede lokale navn eller perifere navn. Enheder uden navn vises som
[No Name]. - RSSI — den modtagne signalstyrke i dB (f.eks.
RSSI: -43 dB). - En statusindikator nederst til venstre, der viser én af:
- Forbundet (grøn) — enheden er aktuelt forbundet.
- Forbindelig (blå) — enheden annoncerer, at den accepterer forbindelser.
- Tjenester: N — antallet af GATT-tjenester, enheden annoncerer (vises, når tjenester er til stede, men enheden ikke er forbundet).
- (ingen mærkat) — enheden er ikke forbindelig og annoncerer ikke tjenester.
- En indikator til højre:
- Et grønt flueben-ikon, hvis enheden er forbundet.
- En chevron (
>) hvis enheden er forbindelig (tryk for at åbne detaljer). - Not Connectable-tekst, hvis enheden ikke accepterer forbindelser.
Tryk på en hvilken som helst enhedsrække for at gå til Enhedsdetaljer-skærmen.
Tomme tilstande
Oversigten viser kontekstafhængige tomme tilstande:
- Scanner — et forstørrelsesglas-ikon med en indlæsningsanimation, mens den indledende scanning er i gang, og der endnu ikke er fundet enheder.
- Bluetooth slukket / ikke understøttet — et Bluetooth-ikon med skråstreg, den aktuelle tilstand og en opfordring til at aktivere Bluetooth.
- Scanning stoppet — et Bluetooth-ikon med en Start scanning-knap, når Bluetooth er tændt, men scanning er stoppet manuelt, og listen er tom.
Enhedsdetaljer-skærm
Tryk på en enhedsrække åbner en dedikeret detaljeskærm. Skærmen er opdelt i et header-område, en signalstyrkemåler og tre indholdsfaner.
Header og forbindelse
Headeren indeholder:
- En tilbage-knap (
< Devices) for at vende tilbage til oversigten. - Enhedsnavnet vist fremtrædende.
- En forbindelsestilstandsindikator — en farvet prik ved siden af en mærkat:
- Forbundet (grøn)
- Forbinder (orange)
- Afbrudt (rød)
- Afbryder (orange)
- En Opret forbindelse / Afbryd forbindelse-knap (kun vist for forbindelige enheder):
- Opret forbindelse (blå) — starter en BLE-forbindelse. En indlæsningsindikator vises, mens forbindelsen oprettes.
- Forbinder... (blå, deaktiveret) — vises under forbindelsesforsøg.
- Afbryd forbindelse (rød) — afslutter den aktive forbindelse.
Når forbindelsen er oprettet, opdager værktøjet automatisk alle GATT-tjenester og deres karakteristika. Læselige karakteristika læses straks, og karakteristika med notifikationer abonneres der automatisk på.
Signalstyrkemåler
Signalstyrkesektionen giver et detaljeret, realtidsbillede af enhedens radiosignal:
-
Cirkulær måler — en bue, der fyldes fra 0% til 100% med en vinkelgradient (rød til orange til gul til grøn). Den aktuelle RSSI-værdi i dBm vises i midten.
-
Omtrentlig afstand — et læsbart estimat udledt af RSSI-værdien:
RSSI-interval Mærkat -30 til -50 dBm Meget tæt på -51 til -65 dBm Tæt på -66 til -80 dBm Mellem -81 til -90 dBm Langt væk Under -90 dBm Meget langt væk -
Signalbjælker — en 5-bjælke indikator, der fyldes baseret på signalstyrkeprocent.
-
Signalkvalitet — en tekstmærkat: Fremragende (>80%), God (>60%), Middel (>40%), Dårlig (>20%) eller Meget dårlig (<=20%).
-
RSSI — råværdien i dBm.
-
TX Power — sendestyrkeniveau i dBm, hvis enheden annoncerer det. Denne værdi repræsenterer signalstyrken 1 meter fra senderen og kan bruges til at estimere afstand.
-
Signalhistorik — et rullende søjlediagram over de seneste 20 RSSI-målinger, farvekodet (grøn >= -60, gul >= -75, rød < -75). Dette hjælper med at visualisere signalstabilitet over tid.
Info-fane
Info-fanen viser generelle oplysninger om enheden, organiseret som nøgle-værdi-rækker:
| Felt | Beskrivelse |
|---|---|
| Navn | Det annoncerede eller perifere navn (eller [No Name]). |
| Identifikator | Periferiets UUID tildelt af CoreBluetooth. Dette er en lokal identifikator og ikke enhedens faktiske MAC-adresse. |
| RSSI | Aktuel modtaget signalstyrke i dB. |
| TX Power | Sendestyrke i dBm (vises kun, hvis annonceret af enheden). |
| Forbindelig | Om enheden accepterer BLE-forbindelser (Ja / Nej). |
| Tilstand | Aktuel forbindelsestilstand (Forbundet, Forbinder, Afbrudt, Afbryder). |
| Opdaget | Tidsstempel for, hvornår enheden først blev set under denne scanningssession. |
| Sidst opdateret | Tidsstempel for seneste annoncering eller RSSI-opdatering. |
Under nøgle-værdi-rækkerne vises to ekstra sektioner, når enheden leverer de tilsvarende data:
- Annoncerede tjenester — en liste over GATT-tjeneste-UUID'er, som enheden inkluderer i sine annonceringspakker. Kendte standardtjenester vises med deres læsbare navn ved siden af UUID (f.eks.
180F (Battery Service),180A (Device Information)). Se Genkendte tjenester for den fulde liste. - Producentdata — de rå producent-specifikke data fra annonceringen, vist som en hex-streng. De første to bytes koder Bluetooth SIG-firmaidentifikatoren (little-endian).
Tjenester-fane
Tjenester-fanen er tilgængelig kun når enheden er forbundet. Den viser det fulde GATT-tjeneste- og karakteristiktræ, der blev opdaget under forbindelsen.
Hver tjeneste vises som en udvidelig række:
- Et farvet ikon der angiver tjenestekategori:
- Blå — Generiske tjenester (Generic Access
1800, Generic Attribute1801) - Grøn — Battery Service (
180F) - Orange — Device Information (
180A) - Lilla — Producent-specifikke tjenester (UUID'er der starter med
FE) - Grå — Andre / ukendte tjenester
- Blå — Generiske tjenester (Generic Access
- Tjenestenavn (opslået fra UUID for kendte tjenester) og den rå UUID-streng.
- Et mærke der viser antallet af karakteristika, der tilhører tjenesten.
- En chevron, der roterer, når tjenesten udvides.
Genkendte tjenester
| UUID | Tjenestenavn |
|---|---|
1800 | Generic Access |
1801 | Generic Attribute |
180A | Device Information |
180F | Battery Service |
1812 | HID (Human Interface Device) |
1813 | Scan Parameters |
1819 | Location and Navigation |
181C | User Data |
FE59 | Apple Notification Center |
Udvidelse af en tjeneste afslører dens karakteristika. Hver karakteristikrække viser:
- Et farvet ikon baseret på den primære egenskab (lilla for læs+skriv, blå for kun læs, grøn for kun skriv, orange for kun notifikation, grå ellers).
- Karakteristiknavn (opslået fra UUID for kendte GATT-karakteristika) og den rå UUID-streng.
- Egenskabsmærkater — små farvekodede mærkater for hver understøttet egenskab:
- Read (blå) — værdien kan læses efter behov.
- Write (grøn) — værdien kan skrives med kvittering.
- Write No Response (lysegrøn) — værdien kan skrives uden kvittering.
- Notify (orange) — karakteristikken kan sende opdateringer til centralen.
- Indicate (lys orange) — som Notify, men med kvittering.
- Auth (lilla) — karakteristikken kræver autentificerede signerede skrivninger.
- En øje-toggle-knap (vises, når karakteristikken har en værdi). Tryk for at vise karakteristikkens aktuelle værdi, vist i flere formater:
- Hex — den rå byte-sekvens.
- String — en UTF-8-fortolkning, hvis bytes danner gyldig tekst.
- Numerisk — automatisk fortolkning baseret på bytelængde:
- 1 byte: UInt8-værdi
- 2 bytes: UInt16-værdi
- 4 bytes: UInt32-værdi og Float-værdi
Genkendte karakteristika
| UUID | Karakteristiknavn |
|---|---|
2A00 | Device Name |
2A01 | Appearance |
2A04 | Peripheral Preferred Connection Parameters |
2A05 | Service Changed |
2A19 | Battery Level |
2A23 | System ID |
2A24 | Model Number String |
2A25 | Serial Number String |
2A26 | Firmware Revision String |
2A27 | Hardware Revision String |
2A28 | Software Revision String |
2A29 | Manufacturer Name String |
2A2A | IEEE 11073-20601 Regulatory Certification Data List |
2A50 | PnP ID |
Data-fane
Data-fanen viser live, fortolkede data fra den tilsluttede enhed. Hvis enheden ikke er forbundet, vises en opfordring med en Opret forbindelse-knap (for forbindelige enheder) eller en informationsbesked.
Når der er forbindelse, vises op til tre kort:
-
Producentdata — den producent-specifikke annoncerings-payload:
- Producent-ID — opslået fra de første to bytes (little-endian) af producentdataene. Kendte ID'er inkluderer Apple (
0x004C), Microsoft (0x0006), Samsung (0x0075), Xiaomi (0x038F) og Bosch (0x01D7). Ukendte ID'er vises i hex (f.eks.ID: 0x1234). - Rå data — den fulde hex-dump af producentdatabytes.
- Byte-visualisering — et vandret søjlediagram, hvor hver søjle repræsenterer én byte. Søjlehøjden er proportional med byteværdien (0–255), hvilket giver et hurtigt visuelt fingeraftryk af dataene.
- Producent-ID — opslået fra de første to bytes (little-endian) af producentdataene. Kendte ID'er inkluderer Apple (
-
Karakteristikværdier — en liste over alle karakteristika, der har en læsbar værdi. Hver post viser:
- Karakteristiknavn (eller UUID, hvis ukendt).
- Den fortolkede værdi (som byte, UInt16, UInt32/Float, UTF-8-streng eller hex afhængigt af datalængde).
- Et lille byte-søjlediagram for værdier op til 8 bytes, med søjler farvekodet efter størrelse (blå < 30%, grøn < 60%, gul < 80%, rød >= 80%).
- Værdier opdateres automatisk for karakteristika, der understøtter notifikationer.
-
Forbindelsesinfo — timing- og signalmetadata:
- Opdaget — tidspunktet, hvor enheden først blev set, med forløbet tid siden opdagelse.
- Sidste opdatering — tidspunktet for seneste dataopdatering, med TX Power hvis tilgængelig.
Tilladelser og krav
- Bluetooth-tilladelse — CoreBluetooth kræver, at brugeren giver adgang til Bluetooth. Hvis tilladelsen nægtes, viser Lirum en tilladelsesskærm med en knap til at åbne iOS-indstillinger, så brugeren kan genaktivere adgangen.
- Bluetooth-radio — hvis Bluetooth er slukket, forbliver værktøjet tilgængeligt, men scanningskontroller er deaktiveret, og en tom tilstand opfordrer brugeren til at tænde Bluetooth. Der vises ikke nogen tilladelsesbarriere i dette tilfælde.
- Bluetooth-tilladelse styres af systemet; der er ingen eksplicit "anmod om tilladelse"-knap. Systemprompten vises automatisk første gang CoreBluetooth initialiseres.
Tekniske detaljer
- Værktøjet fungerer som en BLE Central ved brug af
CBCentralManager. Det scanner efter alle nærliggende perifere enheder (scanForPeripherals(withServices: nil)), hvilket betyder, at det opdager enheder uanset hvilke tjenester de annoncerer. - RSSI (Received Signal Strength Indicator) værdier ligger typisk mellem -30 dBm (meget stærkt, enheden er meget tæt på) og -100 dBm (meget svagt, enheden er langt væk eller blokeret). Værktøjet normaliserer dette interval til en 0–100% skala med formlen:
(RSSI + 100) / 70. - For forbundne enheder polles RSSI hvert 2. sekund med
readRSSI(). Et støjfilter undertrykker opdateringer mindre end 2 dB for at reducere visuel flimmer. - Ved forbindelse kalder værktøjet
discoverServices(nil)for at finde alle GATT-tjenester, derefterdiscoverCharacteristics(nil, for:)på hver tjeneste. Læselige karakteristika læses automatisk viareadValue(for:), og karakteristika med notifikation abonneres der på viasetNotifyValue(true, for:). - TX Power (
CBAdvertisementDataTxPowerLevelKey) repræsenterer signalstyrken 1 meter fra senderen. Når både TX Power og RSSI er kendt, kan forskellen bruges til at estimere path loss og omtrentlig afstand. - Producentdata (
CBAdvertisementDataManufacturerDataKey) følger Bluetooth SIG-formatet: de første to bytes er firmaidentifikatoren i little-endian rækkefølge, efterfulgt af producent-specifikke payload-bytes. - Periferiets identifikator vist i Info-fanen er en UUID tildelt af CoreBluetooth på den lokale enhed. Den er stabil på tværs af app-genstarter for samme enhed, men er ikke den faktiske Bluetooth MAC-adresse (som iOS ikke viser).
Noter og begrænsninger
- Hvad du kan se, afhænger af, hvad hver perifer enhed annoncerer, og hvad iOS eksponerer via CoreBluetooth. Nogle enheder annoncerer minimale data.
- Mange enheder vises som
[No Name], fordi de ikke inkluderer et lokalt navn i deres annonceringspakker. - De omtrentlige afstandsestimater er grove retningslinjer baseret på RSSI-grænser. Faktiske afstande varierer betydeligt afhængigt af miljø, forhindringer, antenneorientering og sendestyrke.
- Ikke alle forbindelige enheder vil kunne forbindes. Nogle kræver forudgående parring via iOS-indstillinger, og nogle kan afvise forbindelser fra ukendte centrals.
- Klassiske Bluetooth-enheder (ikke-BLE) er ikke synlige via CoreBluetooth og vil ikke fremgå af scanningsresultaterne.
- RSSI-værdier kan svinge hurtigt på grund af multipath-interferens, kropsabsorption og andre miljøfaktorer. Signalhistorikdiagrammet hjælper med at udjævne disse variationer visuelt.
Fejlfinding
- Ingen enheder fundet — sørg for, at Bluetooth er tændt, bliv på Bluetooth-skærmen i et par sekunder, og tryk på Start scanning, hvis scanning er stoppet.
- Tilladelse nægtet — tryk på Åbn indstillinger-knappen på tilladelsesskærmen og genaktiver Bluetooth-adgang for Lirum i iOS' Privatlivsindstillinger.
- Forbindelse mislykkes — enheden kan kræve parring i iOS-indstillinger først, understøtter måske ikke forbindelser fra tredjepartsapps, eller er muligvis uden for rækkevidde.
- Tjenester-fanen er tom — nogle enheder eksponerer ingen tjenester eller forsinker tjenesteopdagelse. Vent et par sekunder efter forbindelse. Hvis ingen tjenester vises, understøtter enheden muligvis ikke standard GATT-profiler.
- Karakteristikværdier vises kun som hex — værktøjet forsøger at fortolke værdier som UTF-8 tekst og almindelige numeriske typer. Hvis ingen af disse fortolkninger er mulige, vises den rå hex-dump.