# @abandonware/bluetooth-hci-socket 中文文档

规范地址：https://npmcn.com/package/%40abandonware/bluetooth-hci-socket/

版本：0\.5\.3-12
npm 元数据更新时间：2024-04-12T20:30:04.525Z
中文译文更新时间：2026-11-05T19:19:10.182Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40abandonware/bluetooth-hci-socket
原文对照：https://npmcn.com/package/%40abandonware/bluetooth-hci-socket/?lang=original
项目主页：https://github.com/abandonware/node-bluetooth-hci-socket
源码仓库：https://github.com/abandonware/node-bluetooth-hci-socket

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：196 kB，30 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=10\.0\.0
- 运行依赖：4 个
- 首次发布：2018-12-18T16:48:11.735Z
- 最新版本发布：2024-04-12T20:30:04.181Z
- 近 30 天下载量：40358（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 0 个）

## 中文简介

蓝牙 HCI 套接字装入节点.js

## 安装

```sh
npm install @abandonware/bluetooth-hci-socket
```

也可以使用：`pnpm add @abandonware/bluetooth-hci-socket`、`yarn add @abandonware/bluetooth-hci-socket`、`bun add @abandonware/bluetooth-hci-socket`

## README

# 节点-蓝牙-hci-socket

[![GitHub forks](https://img.shields.io/github/forks/abandonware/node-bluetooth-hci-socket.svg?style=social&label=Fork&maxAge=2592000)](https://github.com/abandonware/node-bluetooth-hci-socket/network/) [![license](https://img.shields.io/badge/license-MIT-0.svg)](https://npmcn.com/package/%40abandonware/bluetooth-hci-socket/MIT) [![NPM](https://img.shields.io/npm/v/@abandonware/bluetooth-hci-socket.svg)](https://www.npmjs.com/package/@abandonware/bluetooth-hci-socket) [![Fediverse](https://img.shields.io/mastodon/follow/279303?domain=https%3A%2F%2Fmastodon.social&style=social#rzr)](https://mastodon.social/@rzr/103886495590566533#bluetooth-hci-socket) [![IRC Channel](https://img.shields.io/badge/chat-on%20libera-brightgreen.svg)](https://kiwiirc.com/client/irc.libera.chat/#iot)

蓝牙 HCI 套接字装入节点.js

**注:** 目前仅支持 **链接**, (中文(简体) ), **免费BSD** 财务报告和审定财务报表 **窗口**。 。 。 .

## 先决条件

-   [节点-gyp要求](https://github.com/TooTallNate/node-gyp#installation)

**注:** `node-gyp` 只有在 npm 无法为您的 OS 版本找到二进制时才需要, 否则将预建二进制 .

### 链接

-   蓝牙 4. 0 适应器

**说明:** 页:1 [节点-usb](https://github.com/nonolith/node-usb) 依赖性可能安装失败, 这是好的, 因为它是一个可选的依赖性 。 安装 `libudev-dev` 通过您的 Linux 发行软件包管理器可以解决问题 .

### 窗口

这个库需要原始的USB访问蓝牙 4.0 USB适配器,因为它需要绕过Windows蓝牙堆栈.

A 类 [温USB](https://msdn.microsoft.com/en-ca/library/windows/hardware/ff540196\(v=vs.85\).aspx) 需要驱动程序, 使用 [Zadig 工具](http://zadig.akeo.ie/) 用于替换适配器的驱动程序.

**警报:** 这将使得适配器在 Windows 蓝牙设置中无法使用 ! 滚回原司机那里去: `Device Manager -> Open Device -> Update Driver` 说明:

-   如果 Zadig 生成的系统休眠点失败, 如果想要使用恢复系统休眠点作为选项, 则应该按照 Zadig 指令选择“ 删除此设备的驱动软件 ” .

#### 相容蓝牙 4.0 USB 适应者

| 名称 | USB 维德 | USB 密码 |
| :-- | :-- | :-- |
| BCM920702 蓝牙 4.0 | 0x0a5c (中文(简体) ) | 0x21e8 (英语) |
| BCM920702 蓝牙 4.0 | 0x0a5c (中文(简体) ) | 0x21f1 (英语) |
| BCM20702A0 蓝牙 4.0 | 0x19ff (英语) | 0x0239 (英语) |
| BCM20702A0 蓝牙 4.0 | 0x0489 (英语) | 0xe07a (韩语) |
| BCM20702A0 蓝牙 4.0 | 0x413c (英语) | 0x8143 (英语) |
| CSR8510 A10 (中文(简体) ) | 0x0a12 (英语) | 0x0001 (英语) |
| 阿苏斯 BT-400 | 0x0b05 (英语) | 0x17 cb (中文(简体) ) |
| 无线蓝牙6235 | 0x8087 (英语) | 0x07da (英语) |
| 无线蓝牙 7260 | 0x8087 (英语) | 0x07dc (英语) |
| 无线蓝牙 7265 | 0x8087 (英语) | 0x0a2a (中文(简体) ) |
| 无线蓝牙 8265 | 0x8087 (英语) | 0x0a2b (英语) |
| 贝尔金BCM20702A0 | 0x050D (英语) | 0x065A (英语) |
| 戴尔精度5530 | 0x8087 (英语) | 0x0025 (英语) |

#### 相容蓝牙 4.1 USB 适应者

| 名称 | USB 维德 | USB 密码 |
| :-- | :-- | :-- |
| BCM2045A0 蓝牙 4.1 | 0x0a5c (中文(简体) ) | 0x6412 (英语) |
| 马维尔·阿瓦斯塔 | 0x1286 (英语) | 0x204C (英语) |

## 安装

```sh
npm install @abandonware/bluetooth-hci-socket
```

## 使用量

```javascript
var BluetoothHciSocket = require('@abandonware/bluetooth-hci-socket');
```

### 行动

#### 创建

```javascript
var bluetoothHciSocket = new BluetoothHciSocket();
```

#### 设置过滤器

```javascript
var filter = Buffer.alloc(14);

// ...

bluetoothHciSocket.setFilter(filter);
```

**说明:** `setFilter` 如果 `bindRaw` 已使用.

#### 捆绑

##### 原始频道

```javascript
bluetoothHciSocket.bindRaw([deviceId]); // optional deviceId (integer)
```

##### 用户频道

```javascript
bluetoothHciSocket.bindUser([deviceId]); // optional deviceId (integer)
```

要求设备处于电源下状态(`sudo hciconfig hciX down`) (中文(简体) ).

##### 控制频道

```javascript
bluetoothHciSocket.bindControl();
```

#### 是设备向上

查询设备状态.

```
var isDevUp = bluetoothHciSocket.isDevUp(); // returns: true or false
```

**说明:** 必须在后面调用 `bindRaw`。 。 。 .

#### 开始/停止

开始或停止事件处理 :

```javascript
bluetoothHciSocket.start();

// ...

bluetoothHciSocket.stop();
```

**说明:** 必须在后面调用 `bindRaw` 或者说 `bindControl`。 。 。 .

#### 写入

```javascript
var data = Buffer.from(/* ... */);

// ...


bluetoothHciSocket.write(data);
```

**说明:** 必须在后面调用 `bindRaw` 或者说 `bindControl`。 。 。 .

### 活动

#### 数据

```javascript
bluetoothHciSocket.on('data', function(data) {
  // data is a Buffer

  // ...
});
```

#### 错误

```javascript
bluetoothHciSocket.on('error', function(error) {
  // error is a Error

  // ...
});
```

## 实例

见 [示例文件夹](https://github.com/abandonware/node-bluetooth-hci-socket/blob/master/examples) 代码示例.

## 平台说明

### 链接

#### 强制 Raw USB 模式

卸载 `btusb` 内核模块 :

```sh
sudo rmmod btusb
```

设定 `BLUETOOTH_HCI_SOCKET_FORCE_USB` 环境变量 :

```sh
sudo BLUETOOTH_HCI_SOCKET_FORCE_USB=1 node <file>.js
```

### 免费BSD

禁用默认蓝牙堆栈的自动加载 [无怀疑.conf](https://gist.github.com/myfreeweb/44f4f3e791a057bc4f3619a166a03b87) 输入 `/usr/local/etc/devd/no-ubt.conf` 并重新启动devd(`sudo service devd restart`) (中文(简体) ).

卸载 `ng_ubt` 如果已装入内核模块 :

```sh
sudo kldunload ng_ubt
```

### 操作系统X

#### 禁用 CSR USB 驱动程序

```sh
sudo kextunload -b com.apple.iokit.CSRBluetoothHostControllerUSBTransport
```

#### 禁用 Broadcom USB 驱动程序

```sh
sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
```

### 窗口

#### 强制适配器 USB VID 和 PID

设定 `BLUETOOTH_HCI_SOCKET_USB_VID` 财务报告和审定财务报表 `BLUETOOTH_HCI_SOCKET_USB_PID` 环境变量.

USB设备的示例 id: 050d:065a:

```sh
set BLUETOOTH_HCI_SOCKET_USB_VID=0x050d
set BLUETOOTH_HCI_SOCKET_USB_PID=0x065a

node <file>.js
```

## 常见问题

### @abandonware/bluetooth-hci-socket 是什么？

蓝牙 HCI 套接字装入节点\.js

### 如何安装 @abandonware/bluetooth-hci-socket？

在项目目录运行 npm install @abandonware/bluetooth-hci-socket，或使用 pnpm add / yarn add / bun add。

### @abandonware/bluetooth-hci-socket 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @abandonware/bluetooth-hci-socket 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @abandonware/bluetooth-hci-socket 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=10\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @abandonware/bluetooth-hci-socket 可以商用吗？

@abandonware/bluetooth-hci-socket 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @abandonware/bluetooth-hci-socket 的下载量有多少？

根据 npm 官方下载统计，@abandonware/bluetooth-hci-socket 在 2026/10/05 – 2026/11/03 这 30 天内被下载 40,358 次，日均约 1,345 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @abandonware/bluetooth-hci-socket 还在维护吗？

最新版本 0\.5\.3-12 发布于 2024/04/13（2 年前）；至今共发布 12 个版本，其中过去 12 个月发布了 0 个；首次发布于 2018/12/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

