首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >蓝牙LE L2CAP CID与PSM

蓝牙LE L2CAP CID与PSM
EN

Stack Overflow用户
提问于 2016-12-12 18:01:54
回答 3查看 8.7K关注 0票数 8

我一直在教自己如何使用BlueZ API用C语言为BLE设备编写程序。然而,我似乎对sockaddr_l2结构的一个特定方面感到困惑。我所用的定义如下:

代码语言:javascript
运行
复制
struct sockaddr_l2 {
    sa_family_t l2_family;
    unsigned short  l2_psm;
    bdaddr_t    l2_bdaddr;
    unsigned short  l2_cid;
    uint8_t     l2_bdaddr_type;
};

现在我不明白: l2_psm和l2_cid有什么区别?到目前为止,我收集到的信息如下:

PSM代表“协议服务复用器”,是L2CAP连接的“端口”。来源:面向程序员的蓝牙,作者:阿尔伯特·黄

CID代表“通道标识符”,是表示设备上逻辑通道端点的本地名称。来源:http://ecee.colorado.edu/~ecen4242/marko/Bluetooth/Bluetooth/SPECIFICATION/L2CAP.html

现在我确信答案是在这些定义中,但我似乎无法理解CID的定义。有人能以更全面的方式向我解释PSM和CID之间的区别吗?

谢谢:)

EN

Stack Overflow用户

回答已采纳

发布于 2020-04-30 14:15:46

从2002年开始,在合成主题的蓝牙应用程序开发人员指南中发现了以下内容

问: L2CAP PSM值和L2CAP CID之间有什么区别? A:协议服务复用器(PSM)值标识用于在L2CAP信道上通信的协议。实际上,这定义了使用通道的更高层。同一高层的多个实例可能使用不同的L2CAP通道,但它们都将由相同的PSM值标识。每个单独的通道都通过其信道ID (CID)进行唯一标识。高层可以通过指定0x0003的PSM值来请求到远程RFCOMM实体的L2CAP连接。然后,本地和远程L2CAP层为该链接分配CID。CID用于实际识别RFCOMM层之间发送的通信量。

票数 4
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41106770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档