feat(ch934x): 添加GPIO方向控制和串口参数配置功能

- 添加Ch934xMode和GpioDirection枚举类定义
- 实现GPIO方向控制相关方法(setGpioDir/queryGpioDirFromCache)
- 添加GPIO使能控制(enableGpio)和数量/组数查询(getGpiocount/getGpiogroup)
- 实现串口参数配置(setSerialParameter)包括波特率/数据位/停止位/校验位/流控
- 添加Break信号控制(setBreak)功能
- 实现当前串口模式查询(getCurrentMode)
- 添加设备连接状态查询(isConnected)和已打开设备列表获取(getConnectedDevices)
- 更新文档说明GPIO方向控制和串口参数配置用法
- 在示例应用中添加相关功能按钮和操作逻辑
This commit is contained in:
Developer
2026-07-07 16:15:11 +08:00
parent 4813e79c80
commit 020904bd2a
8 changed files with 765 additions and 9 deletions
+76
View File
@@ -168,4 +168,80 @@ class Ch934xSerial {
await _platform.setExceptionCallback(controller.add);
return subscription;
}
// ---------------------------------------------------------------------------
// 新增接口(文档补充的完整 SDK API)
// ---------------------------------------------------------------------------
/// 设置 Break 信号。
Future<bool> setBreak(bool valid) => _platform.setBreak(valid);
/// 获取当前串口模式。
Future<int> getCurrentMode() => _platform.getCurrentMode();
/// 获取 GPIO 数量。
Future<int> getGpiocount(int deviceId) =>
_platform.getGpiocount(deviceId);
/// 获取 GPIO 组数。
Future<int> getGpiogroup(int deviceId) =>
_platform.getGpiogroup(deviceId);
/// 使能 GPIO。
Future<bool> enableGpio({
required int chipType,
required int gpioGroup,
required int enable,
}) =>
_platform.enableGpio(
chipType: chipType,
gpioGroup: gpioGroup,
enable: enable,
);
/// 设置 GPIO 方向。
Future<bool> setGpioDir({
required int gpioGroup,
required int gpioNumber,
required int dir,
}) =>
_platform.setGpioDir(
gpioGroup: gpioGroup,
gpioNumber: gpioNumber,
dir: dir,
);
/// 从缓存查询 GPIO 方向。
Future<int> queryGpioDirFromCache({
required int gpioGroup,
required int gpioNumber,
}) =>
_platform.queryGpioDirFromCache(
gpioGroup: gpioGroup,
gpioNumber: gpioNumber,
);
/// 查询设备是否已打开。
Future<bool> isConnected(int deviceId) =>
_platform.isConnected(deviceId);
/// 获取当前已打开的设备 ID 列表。
Future<List<int>> getConnectedDevices() =>
_platform.getConnectedDevices();
/// 配置当前活跃串口的参数。
Future<bool> setSerialParameter({
required int baud,
int dataBit = 8,
int stopBit = 1,
int parityBit = 0,
bool flow = false,
}) =>
_platform.setSerialParameter(
baud: baud,
dataBit: dataBit,
stopBit: stopBit,
parityBit: parityBit,
flow: flow,
);
}