搞一个c#接收UBS扫码枪的示例
之前一直使用串口接收扫码的数据,现在串口的扫码枪已经很少了,大多都是USB接口。
但是大多的扫码枪都支持USB虚拟串口,所以就一直使用串口接收扫码枪的数据。
今天突然想搞一个接收USB口的代码试试,闹的不太明白,大概的意思如下
public partial class Form1 : Form
{
private HidDevice selectedDevice;
public Form1()
{
InitializeComponent();
LoadUSBDevices(); // 加载 USB 设备
}
private void LoadUSBDevices()
{
HidDeviceLoader loader = new HidDeviceLoader();
HidDevice[] devices = loader.GetDevices().ToArray();
comboBox1.Items.AddRange(devices); // 将设备添加到下拉框中
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
selectedDevice = (HidDevice)comboBox1.SelectedItem; // 获取选择的设备
selectedDevice.OpenDevice(); // 打开设备
selectedDevice.Inserted += DeviceInsertedHandler; // 绑定设备插入事件处理程序
selectedDevice.Removed += DeviceRemovedHandler; // 绑定设备移除事件处理程序
selectedDevice.MonitorDeviceEvents = true; // 监听设备事件
selectedDevice.ReadReport(OnReport); // 读取报告数据
}
private void DeviceInsertedHandler()
{
// 处理设备插入事件
}
private void DeviceRemovedHandler()
{
// 处理设备移除事件
}
private void OnReport(HidReport report)
{
if (report?.Data != null)
{
// 处理接收到的报告数据
byte[] data = report.Data;
// ...
}
selectedDevice.ReadReport(OnReport); // 继续监听报告
}
}
我还没测试,大概就是这么个意思