ZHCACZ5 August 2023 CC2564C
连接设备的第一步是将 SPP LE 服务和特性添加到 LightBlue 中。要手动执行此操作,请在 LightBlue 中创建一个空白的虚拟外设,然后添加必要的服务和特性。另一个选项是在 SPPLEDemo 充当服务器的同时克隆 SPPLEDemo。要克隆 SPPLEDemo,首先如上所述连接 2 个设备。连接 2 个设备后,选择显示屏右上角的“Clone”选项。应用返回到设备列表,您将观察到 SPPLEDemo 列为虚拟外设,如下所示:
克隆后,SPP LE 服务现在可以与设备连接。接下来,重新启动 SPPLEDemo,并在出现提示时启动该应用作为客户端。下一步,使用 StartScanning 命令进行扫描以查找 iOS 设备。找到 iOS 设备后,使用 StopScanning 命令停止扫描。现在使用 ConnectLE 5c75524c733a 1 命令连接到 iOS 设备。之后,在 10 秒时间范围内运行 DiscoverSPPLE 5c75524c733a 命令。SPP LE 服务发现完成后,在 25 秒时间范围内运行 ConfigureSPPLE 5c75524c733a。如果命令未在这些时间范围内运行,iOS 设备将断开与 SPPLEDemo 的连接。配置 SPP LE 特性后,2 个应用保持连接,但请注意,如果 iOS 设备进入睡眠状态,则会关闭连接。运行刚刚介绍的命令后,在 SPPLEDemo 的终端中将观察到类似以下内容的输出:
OpenStack().
Bluetooth Stack ID: 1.
Device Chipset: 4.1.
BD_ADDR: 0xd03972cdab68
Command Options: Server, Client, Help
SPP+LE>Client
Command Options General: Help, GetLocalAddress, SetBaudRate
Quit,
Command Options BR/EDR: Inquiry, DisplayInquiryList, Pair,
EndPairing, PINCodeResponse,
PassKeyResponse,
UserConfirmationResponse,
SetDiscoverabilityMode,
SetConnectabilityMode,
SetPairabilityMode,
ChangeSimplePairingParameters,
GetLocalName, SetLocalName,
GetClassOfDevice, SetClassOfDevice,
GetRemoteName, SniffMode,
ExitSniffMode, Open, Close, Read,
Write, GetConfigParams,
SetConfigParams, GetQueueParams,
DisplayRawModeData, AutomaticReadMode,
SetQueueParams, Loopback,
CBSend.
Command Options GAPLE: SetDiscoverabilityMode,
SetConnectabilityMode,
SetPairabilityMode,
ChangePairingParameters,
AdvertiseLE, StartScanning,
StopScanning, ConnectLE,
DisconnectLE, PairLE,
LEPasskeyResponse,
QueryEncryptionMode, SetPasskey,
DiscoverGAPS, GetLocalName,
SetLocalName, GetLERemoteName,
SetLocalAppearance,
GetLocalAppearance,
GetRemoteAppearance,
Command Options SPPLE: DiscoverSPPLE, RegisterSPPLE, LESend,
ConfigureSPPLE, LERead, Loopback,
DisplayRawModeData, AutomaticReadMode
SPP+LE>StartScanning
Scan started successfully.
SPP+LE>
etLE_Advertising_Report with size 36.
1 Responses.
Advertising Type: rtConnectableUndirected.
Address Type: atRandom.
Address: 0x5c75524c733a.
RSSI: -71.
Data Length: 21.
AD Type: 0x01.
AD Length: 0x01.
AD Data: 0x1a
AD Type: 0x07.
AD Length: 0x10.
AD Data: 0x39 0x23 0xcf 0x40 0x73 0x16 0x42 0x9a 0x5c 0x41 0x7e 0x7d 0xc4 0x9a 0x83 0x14
SPP+LE>
etLE_Advertising_Report with size 36.
1 Responses.
Advertising Type: rtScanResponse.
Address Type: atRandom.
Address: 0x5c75524c733a.
RSSI: -71.
Data Length: 11.
AD Type: 0x09.
AD Length: 0x09.
AD Data: 0x53 0x50 0x50 0x4c 0x45 0x44 0x65 0x6d 0x6f
SPP+LE>StopScanning
Scan stopped successfully.
SPP+LE>ConnectLE 5c75524c733a 1
Connection Request successful.
SPP+LE>
etLE_Connection_Complete with size 16.
Status: 0x00.
Role: Master.
Address Type: Random.
BD_ADDR: 0x5c75524c733a.
SPP+LE>
etGATT_Connection_Device_Connection with size 16:
Connection ID: 1.
Connection Type: LE.
Remote Device: 0x5c75524c733a.
Connection MTU: 23.
SPP+LE>
Exchange MTU Response.
Connection ID: 1.
Transaction ID: 1.
Connection Type: LE.
BD_ADDR: 0x5c75524c733a.
MTU: 131.
SPP+LE>
SPP+LE>DiscoverSPPLE 5c75524c733a
GATT_Start_Service_Discovery success.
SPP+LE>
Service 0x000f - 0x001b, UUID: 14839ac47d7e415c9a42167340cf2339.
SPP+LE>
Service Discovery Operation Complete, Status 0x00.
SPP+LE>ConfigureSPPLE 5c75524c733a
SPPLE Service found on remote device, attempting to read Transmit Credits, and configured CCCDs.
SPP+LE>
Write Response.
Connection ID: 1.
Transaction ID: 15.
Connection Type: LE.
BD_ADDR: 0x5c75524c733a.
Bytes Written: 2.
SPP+LE>
Write Response.
Connection ID: 1.
Transaction ID: 16.
Connection Type: LE.
BD_ADDR: 0x5c75524c733a.
Bytes Written: 2.
现在,2 个设备已连接并配置完毕,设备可以在它们之间发送和接收数据。现在,选择 LightBlue 中的 SPPLEDemo 虚拟外设,以查看虚拟外设的特性。将在 iDevice 的显示屏上观察到以下内容或类似内容: