HL.MCP.Service.Sick 2.0.9
HL.MCP.Service.Sick
MCP 框架的 Sick 条码扫描服务实现。
功能特性
- ✅ 串口通信支持
- ✅ Sick 扫码枪数据接收
- ✅ 自定义协议解析
- ✅ 十六进制和文本模式
- ✅ 自动重连机制
- ✅ 线程安全设计
快速开始
配置文件
<Configuration>
<PortName>COM1</PortName>
<BaudRate>9600</BaudRate>
<Parity>None</Parity>
<DataBits>8</DataBits>
<StopBits>One</StopBits>
<IsHex>false</IsHex>
<Separator>,</Separator>
<Type>HL.MCP.Service.Sick.BarcodeParse</Type>
</Configuration>
使用示例
using HL.MCP.Service.Sick;
// 创建服务实例
var sickService = new SickService
{
Name = "SickScanner",
HeadString = (char)0x02, // STX
TailString = (char)0x03 // ETX
};
// 初始化
sickService.Initialize("config.xml");
// 启动服务
sickService.Start();
// 监听扫码事件
// 通过 MCP 框架的状态分发机制接收条码数据
// 停止服务
sickService.Stop();
配置说明
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
PortName |
string | 串口名称 | COM1 |
BaudRate |
int | 波特率 | 9600 |
Parity |
Parity | 奇偶校验 | None |
DataBits |
int | 数据位 | 8 |
StopBits |
StopBits | 停止位 | One |
IsHex |
bool | 十六进制模式 | false |
Separator |
string | 分隔符 | , |
Type |
string | 协议解析器类型 | BarcodeParse |
协议解析
内置解析器
BarcodeParse:默认条码解析器
- 支持自定义分隔符
- 自动解析条码数据
- 可扩展协议格式
自定义解析器
实现 IProtocolParse 接口:
public interface IProtocolParse
{
Message Parse(string data);
}
示例:
public class CustomBarcodeParse : IProtocolParse
{
public Message Parse(string data)
{
// 自定义解析逻辑
var message = new Message(data);
// 设置命令和参数
message.Command = "BARCODE";
message.Parameters = new object[] { data };
message.Parsed = true;
return message;
}
}
工作原理
- 串口初始化:配置串口参数(波特率、数据位等)
- 数据接收:通过串口接收 Sick 扫码枪发送的数据
- 协议解析:使用指定的解析器解析接收到的数据
- 状态分发:通过 MCP 框架的
DispatchState方法分发解析后的数据 - 事件处理:应用程序通过 MCP 框架订阅并处理条码数据
特性说明
开始和结束字符
sickService.HeadString = (char)0x02; // STX (Start of Text)
sickService.TailString = (char)0x03; // ETX (End of Text)
十六进制模式
<IsHex>true</IsHex>
启用后,数据将以十六进制字符串形式读取(如 "01-02-03-04")。
连接状态
bool isConnected = sickService.IsConnected;
注意事项
- ⚠️ 确保串口未被其他程序占用
- ⚠️ 配置正确的串口参数以匹配扫码枪设置
- ⚠️
Read和Write方法未实现(此服务为单向接收) - ⚠️ 服务使用后台线程运行,确保正确调用
Stop方法
依赖项
- HL.MCP
- System.IO.Ports
- .NET Framework 4.6.2
许可证
参见 LICENSE.txt
相关链接
No packages depend on HL.MCP.Service.Sick.
.NET Framework 4.6.2
- HL.MCP (>= 2.0.9)
| Version | Downloads | Last updated |
|---|---|---|
| 2.0.9 | 0 | 08/19/2026 |