说明
基于浏览器 Web Serial 规范封装的串口通信组件:点击“连接串口”后由
常见能力:
- requestPort 弹出系统端口选择框,可按 USB 厂商 / 产品 ID 过滤
- 打开后即启动持续读循环,收到的字节实时上抛并记入带方向的日志
- 收发值同时给出十六进制与尽力而为的 UTF-8 文本预览
- 发送支持文本 / 十六进制两种模式,文本可勾选换行追加回车换行
- 连接中即时切换波特率(内部关闭后按新值重开)
- OnConnected / OnDisconnected / OnData / OnError 事件 + 公开方法双驱动
- 能力检测与安全上下文提示;不支持时给出明确原因
用法
<SerialPort Name="串口通信" BaudRate="115200" UsbVendorId="0x1A86"
OnConnected="OnConnected" OnData="OnData" OnError="OnError" />
@code {
// UsbVendorId / UsbProductId 用于收窄端口选择框;省略则列出全部可选串口。
void OnConnected(SerialPortInfo p) => Console.WriteLine($"已连接 {p.Display}");
void OnData(SerialData d) =>
Console.WriteLine($"{(d.IsTx ? "TX" : "RX")} {d.Hex} | {d.Text}");
void OnError(string m) => Console.WriteLine("错误:" + m);
}
@* 也可拿到实例编程式发送 / 改波特率 / 关闭 *@
<SerialPort @ref="_sp" />
<Button Text="发 HELLO" OnClick="@(() => _sp.WriteTextAsync("HELLO", true))" />
API 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
BaudRate |
int |
115200 |
初始波特率(默认 115200);面板内可即时改。 |
BufferSize |
int |
255 |
接收缓冲区字节数(默认 255)。 |
ConnectText |
string |
"连接串口" |
连接按钮文案(内部已本地化,作为翻译键)。 |
DataBits |
int |
8 |
数据位(默认 8)。 |
MaxLog |
int |
200 |
日志最多保留行数,超出丢弃最旧。 |
Name |
string |
"串口设备" |
面板标题。 |
OnConnected |
EventCallback<SerialPortInfo> |
— | 事件 连接成功(含端口标识信息)。 |
OnData |
EventCallback<SerialData> |
— | 事件 收到或被回显一段数据。 |
OnDisconnected |
EventCallback |
— | 事件 连接断开(主动关闭或拔线)。 |
OnError |
EventCallback<string> |
— | 事件 发生错误,参数为错误说明。 |
Parity |
string |
"none" |
校验位:none / even / odd(默认 none)。 |
ShowLog |
bool |
true |
是否显示收发日志。 |
StopBits |
int |
1 |
停止位(默认 1)。 |
UsbProductId |
int |
0 |
USB 产品 ID 过滤(配合 UsbVendorId;0 表示按厂商不限产品)。 |
UsbVendorId |
int |
0 |
USB 厂商 ID 过滤(0 表示不过滤,弹出全部可选串口)。 |
Visible |
bool |
true |
取得或设置组件是否可见,默认为false。 |
VisibleChanged |
EventCallback<bool> |
— | 事件 取得或设置组件可见性变化时的回调事件。 |
Class |
string |
null |
取得或设置组件的CSS类名,用于自定义样式。 |
Disabled |
bool |
false |
取得或设置组件是否禁用,默认为false。 |
Style |
string |
null |
取得或设置组件的内联样式,用于自定义样式。 |
所有组件均继承
BaseComponent,除上表参数外还支持Class、Style、Disabled、Visible。
扫码关注公众号
扫码加入 QQ 群