当我使用python的socket
库测试一些基本的HCI命令时,似乎为了获得使用AF_BLUETOOTH
和{
from socket import socket, AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI, SOL_HCI, HCI_FILTER
from struct import pack
PASS_ALL = pack("IIIh2x", 0xffffffff, 0xffffffff, 0xffffffff, 0)
def open_socket_with_hci(dev_id: int):
hci = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI)
hci.bind((dev_id,))
hci.setsockopt(SOL_HCI, HCI_FILTER, PASS_ALL)
return hci
我发现hci_filter结构定义为:
^{pr2}$操作码掩码足够直接。{cd4{I}源于}代码:
/* HCI data types */
#define HCI_COMMAND_PKT 0x01
#define HCI_ACLDATA_PKT 0x02
#define HCI_SCODATA_PKT 0x03
#define HCI_EVENT_PKT 0x04
#define HCI_DIAG_PKT 0xf0
#define HCI_VENDOR_PKT 0xff
但是有人能解释一下2x{
所以,我在看noblesource,发现了这个:
所以掩码被定义为蓝牙核心卷2第E部分第5节和第7节中定义的常量值左移的位。在
相关问题 更多 >
编程相关推荐