feat(ch934x_serial): 添加串口写入功能的端口索引参数
- write方法新增可选的serialPortIndex参数,支持直接写入指定端口 - 传入端口索引时不会改变当前活跃端口,保持原有活跃端口行为 - 添加对负数端口索引的验证处理,直接返回零避免异常 - 更新文档说明多端口并发客户端应使用显式端口写入方式 - 增加相关单元测试覆盖新参数的各种使用场景 - 同步更新Android原生层实现以支持端口索引传递
This commit is contained in:
@@ -161,11 +161,14 @@ await plugin.closePort();
|
||||
### 3.3 串口读写
|
||||
|
||||
```dart
|
||||
// 写入
|
||||
// 写入当前活跃端口(向后兼容)
|
||||
final bytes = Uint8List.fromList([0x01, 0x02, 0x03]);
|
||||
final written = await plugin.write(bytes);
|
||||
debugPrint('写入字节数: $written');
|
||||
|
||||
// 写入指定端口,不改变当前活跃端口;多端口客户端应使用此形式。
|
||||
final portWritten = await plugin.write(bytes, serialPortIndex: 2);
|
||||
|
||||
// 读取(单次)
|
||||
final recv = await plugin.read(1024);
|
||||
if (recv.isEmpty) debugPrint('暂无数据');
|
||||
@@ -182,13 +185,13 @@ await sub.cancel();
|
||||
- `length <= 0` 时**不会调用原生层**,直接返回空数组。
|
||||
- SDK 的 `readData` 会返回内部缓冲的所有数据,插件按
|
||||
`min(data.length, length)` 截断后回传。
|
||||
- `write(data)` 返回实际写入字节数,失败时为 0。
|
||||
- `write(data, serialPortIndex: n)` 返回实际写入字节数;传入端口时直接写入该端口且不改变当前活跃端口,失败时为 0。省略 `serialPortIndex` 时保持原有的当前活跃端口行为。
|
||||
- `dataStream` 默认 `chunkSize = 1024`、`interval = 20ms`,内部
|
||||
持续以 [interval] 为周期反复调用 `read`;当底层无数据时返回
|
||||
空缓冲区,消费者可据此判定。`chunkSize <= 0` 会抛
|
||||
`ArgumentError`。
|
||||
- 业务方在 widget dispose 时记得 `cancel` 订阅并 `closePort`。
|
||||
- `read`/`write` 都针对**当前活跃串口**;切换串口用 `setActivePort`。
|
||||
- `read` 默认针对当前活跃串口,也可传入显式端口;`write` 省略 `serialPortIndex` 时针对当前活跃串口,传入时直接写入指定端口。多端口并发客户端应使用显式端口写入,避免通过 `setActivePort` 共享切换端口。
|
||||
|
||||
### 3.4 GPIO 接口
|
||||
|
||||
|
||||
Reference in New Issue
Block a user