您好、 在定制板上的应用程序中有一个 SPP 服务器、我们希望允许两个 SPP 客户端同时连接。
从示例(Bluetopia 栈5.1.1)开始、我们已 针对单个连接成功实现了 SPP 服务器。
目前,我们 通过调用 OpenServer()两次(使用两个不同的服务器端口号)来打开两个服务器端口。 然后、第一个客户端正确连接并打开到 SPP 层的连接。 此后、第二个客户端似乎建立了连接、但 没有更多 SPP 端口可用。
我正在粘贴 一些堆栈日志:
---------------- 第一个客户端请求连接-------------------------------------------------------
atLinkKeyRequest:0x1237800CF82B
GAP_GAP() Authentication_Response 成功。
atPINCodeRequest:0x1237800CF82B
使用以下命令进行响应:PINCodeResponse
PIN 代码响应:000000000
atLinkKeyCreation:0x1237800CF82B
链接键:0x94DE7901CA9F44C75E9C130D7D7205B8
未存储链接密钥
SPP 开路指示、ID:0x0001、板:0x1237800CF82B。
SPP 端口状态指示:0x0001、状态:0x000B、中断状态:0x0000、长度:0x0000。
---------------- 第一个连接被接受并正常工作-------
---------------- 第二个客户端请求连接-------------------------------------------------------
atIOCapabilityResponse:0xC0B6F9F9B7DE
远程功能:显示是/否、MITM
atIOCapabilityRequest:0xC0B6F9F9B7DE
GAP_GAP() Authentication_Response 成功。
自动接受:514050
GAP_GAP() Authentication_Response 成功。
安全简单配对完成
atLinkKeyCreation:0xC0B6F9F9B7DE
链接密钥:0xFC49601DBE3A19BD4A1734D157CD9321
未存储链接密钥
-------- 第二个连接没有得到 SPP 打开指示-------
为多个客户端实施支持的正确方法是什么?
两次使用 OpenServer()是否正确? 或者服务器 为一个、而在 SPP 回调中、我们必须使用 bdaddr 或其他字段区分来自两个客户端的数据?
谢谢