# device.scan serial

## 功能

扫描系统串口并返回串口信息数组。

## 语法

```bt
device.scan('serial')
```

## 参数

| 参数 | 类型 | 必填 | 默认值 | 说明 |
| ------ | ------ | ------ | ------ | ------ |
| type | String | 否 | serial | 设备类型；当前仅支持 serial。 |

## 返回值

| 类型 | 说明 |
| ------ | ------ |
| Array | 返回串口信息对象数组。 |

## 串口信息字段

数组中每个串口信息对象的字段如下：

| 字段 | 类型 | 必定存在 | 说明 |
| ------ | ------ | ------ | ------ |
| type | String | 是 | 设备类型，固定为 `serial`。 |
| port | String | 是 | 系统串口名称。Windows 常见值如 `COM3`；Linux/macOS 常见值如 `/dev/ttyUSB0`、`/dev/tty.usbserial`。打开串口时传给 `device.open({port: ...})`。 |
| name | String | 是 | 设备友好名称。USB 串口优先使用产品名或厂商名；无法识别时等于 `port`。 |
| kind | String | 是 | 串口来源类型。常见值为 `usb`、`bluetooth`、`pci`、`unknown`。 |
| vid | Int | 否 | USB Vendor ID。只有 USB 串口能识别到厂商 ID 时存在。 |
| pid | Int | 否 | USB Product ID。只有 USB 串口能识别到产品 ID 时存在。 |
| serial_number | String | 是 | USB 设备序列号；系统未提供时为空字符串。 |
| manufacturer | String | 是 | USB 设备厂商名；系统未提供时为空字符串。 |
| product | String | 是 | USB 设备产品名；系统未提供时为空字符串。 |

## 示例

```bt
// 扫描系统串口，并取第一个串口的信息。
ports = device.scan('serial')
first = ports[0]

// 输出串口友好名称，方便用户确认是不是目标设备。
result = first.name
print result
```

## 注意事项

- `vid` 和 `pid` 只有 USB 串口识别到硬件 ID 时才存在。
- `serial_number`、`manufacturer`、`product` 字段必定存在，但系统未提供对应值时为空字符串。
