Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从usb rfid读取器读取数据?

如何从usb rfid读取器读取数据?
EN

Stack Overflow用户
提问于 2014-03-19 19:58:41
回答 3查看 30.4K关注 0票数 5

我买了一个usb rfid阅读器。当用户将rfid标签放在设备前面时,我如何读取数据?

我的计算机将该设备识别为人机接口设备。如果它将其识别为com设备,则从带有serialPort对象的设备读取要容易得多,但我不知道如何读取usb设备。

有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-24 17:04:02

这就是当我遇到同样的问题时我所做的。

代码语言:javascript
运行
AI代码解释
复制
using System;
using System.Text;
using LibUsbDotNet;
using LibUsbDotNet.Main;

namespace Examples
{
internal class ReadPolling
{
    public static UsbDevice MyUsbDevice;

    #region SET YOUR USB Vendor and Product ID!

    public static UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(1234, 1);

    #endregion

    public static void Main(string[] args)
    {
        ErrorCode ec = ErrorCode.None;

        try
        {
            // Find and open the usb device.
            MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);

            // If the device is open and ready
            if (MyUsbDevice == null) throw new Exception("Device Not Found.");

            // If this is a "whole" usb device (libusb-win32, linux libusb-1.0)
            // it exposes an IUsbDevice interface. If not (WinUSB) the 
            // 'wholeUsbDevice' variable will be null indicating this is 
            // an interface of a device; it does not require or support 
            // configuration and interface selection.
            IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
            if (!ReferenceEquals(wholeUsbDevice, null))
            {
                // This is a "whole" USB device. Before it can be used, 
                // the desired configuration and interface must be selected.

                // Select config #1
                wholeUsbDevice.SetConfiguration(1);

                // Claim interface #0.
                wholeUsbDevice.ClaimInterface(0);
            }

            // open read endpoint 1.
            UsbEndpointReader reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep01);


            byte[] readBuffer = new byte[1024];
            while (ec == ErrorCode.None)
            {
                int bytesRead;

                // If the device hasn't sent data in the last 5 seconds,
                // a timeout error (ec = IoTimedOut) will occur. 
                ec = reader.Read(readBuffer, 5000, out bytesRead);

                if (bytesRead == 0) throw new Exception(string.Format("{0}:No more bytes!", ec));
                Console.WriteLine("{0} bytes read", bytesRead);

                // Write that output to the console.
                Console.Write(Encoding.Default.GetString(readBuffer, 0, bytesRead));
            }

            Console.WriteLine("\r\nDone!\r\n");
        }
        catch (Exception ex)
        {
            Console.WriteLine();
            Console.WriteLine((ec != ErrorCode.None ? ec + ":" : String.Empty) + ex.Message);
        }
        finally
        {
            if (MyUsbDevice != null)
            {
                if (MyUsbDevice.IsOpen)
                {
                    // If this is a "whole" usb device (libusb-win32, linux libusb-1.0)
                    // it exposes an IUsbDevice interface. If not (WinUSB) the 
                    // 'wholeUsbDevice' variable will be null indicating this is 
                    // an interface of a device; it does not require or support 
                    // configuration and interface selection.
                    IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
                    if (!ReferenceEquals(wholeUsbDevice, null))
                    {
                        // Release interface #0.
                        wholeUsbDevice.ReleaseInterface(0);
                    }

                    MyUsbDevice.Close();
                }
                MyUsbDevice = null;

                // Free usb resources
                UsbDevice.Exit();

            }

            // Wait for user input..
            Console.ReadKey();
        }
    }
  }
}

按供应商和产品id打开USB设备。

打开要读取的UsbEndpointReader类。

从Ep01读取并显示usb设备输出,直到5秒内没有接收到数据。

票数 5
EN

Stack Overflow用户

发布于 2014-03-19 20:03:41

请参阅:How do I read input from a USB HID device?

该设备可能枚举为通用HID,但行为可能类似于键盘。如果是这样,它应该只输入它读取的字符。如果不是,则必须从驱动程序中进行轮询。这个链接应该会有帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-08-02 11:55:39

如果他们为你的阅读器提供了SDK,那么就使用它。否则,您必须知道reader.Send命令的十六进制命令才能读取和获取响应

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22516812

复制
相关文章
关于在angular2中引入第三方插件或者框架(jquery)
由于本人也是初入angular2不久,很多问题也许解决了,确不知其原由,也有一些问题,解决了后面又出来同样的错误,关于这些,请谅解. 关于这个问题,我自己也是想了很久,总算是能用上了, 想在angular2中引用jquery的话,高大上的一个方法是,在package.json中的dependencies中写入,执行cnpm i;安装; "dependencies": { "@angular/common": "^4.0.0", "@angular/compiler": "^4.0.0",
杭州前端工程师
2018/06/15
2.3K0
Sqoop在导入的时候导入多张表
当我们用Sqoop导入一张表的时候可以用 --table <table-name> 去指定要导入一个表,但是我们要导入多个表的话,用这个--table是不行的。 这时候我们可以用Sqoop的import-all-tables加--exclude-tables 进行组合使用,实现我们一次导入多个表的目的。
ZHANGHAO
2018/12/09
6.7K1
Sqoop在导入的时候导入多张表
spring导入第三方资源
配置数据库连接参数时,注入驱动类名是用driverClassName还是driver?
楠羽
2023/10/17
1620
spring导入第三方资源
在高PR值的网站中怎么获得导入连接
这几天忙着在给公司的年会做策划,真累呀,每年的沈阳·K友汇都是公司一个大项目,所以投入的精力还是比较大的,前几天谈论了一个站长要做到是持之以恒,坚持不懈得到了需要朋友的认可,很高兴,今天谈谈关于在高PR的网站上获得导入连接的几个方法;
李洋博客
2021/06/15
2.1K0
在高PR值的网站中怎么获得导入连接
在 Spark 数据导入中的一些实践细节
图谱业务随着时间的推移愈发的复杂化,逐渐体现出了性能上的瓶颈:单机不足以支持更大的图谱。然而,从性能上来看,Neo4j 的原生图存储有着不可替代的性能优势,这一点是之前调研的 JanusGraph、Dgraph 等都难以逾越的鸿沟。即使 JanusGraph 在 OLAP 上面非常出色,对 OLTP 也有一定的支持,但是 GraphFrame 等也足以支撑其 OLAP 需求,更何况在 Spark 3.0 会提供 Cypher 支持的情况下,图谱的 OLAP 需求相比 OLTP 有更多途径可以解决。这个时候,Nebula Graph 的“横空出世”无疑是对分布式 OLTP 效率低下现状的一种突破。
NebulaGraph
2020/11/25
1.6K0
在 Spark 数据导入中的一些实践细节
spring在ssh框架中的作用学习
spring在ssh框架中的作用学习 在SSH框假中spring充当了管理容器的角色。我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语 句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致是:Jsp页面—-Struts——Service(业务逻辑处理类)—Hibernate(左到右) struts负责控制Service(业务逻辑处理类),从而控制了Service的生命
用户1289394
2018/02/26
1.2K0
Java中的动态代理以及在框架中的应用
我们先假设现在有怎么一个需求,要求你在不改动原有代码的情况下在所有类的方法前后打印日志。我们很容易想到静态代理,具体做法如下:
烂猪皮
2021/06/09
1.3K0
Java中的动态代理以及在框架中的应用
Python怎么导入第三方依赖的Module
初步猜测是没有引入对应的module,因为没写过python代码,所以需要网上找找资料,网上资料说可以用pip install就可以,不过我python环境刚安装,这个命令在哪运行?通过搜索知道需要配置环境变量,这个和java也一样,都是要配环境变量,才能在cmd窗口使用sdk的命令
SmileNicky
2022/05/07
2140
Python怎么导入第三方依赖的Module
ABAQUS-Python第三方库的导入
Python语言上手容易,开源,大量的第三方库可供调用,因此近年来发展迅猛,常年盘踞各类机构推出的程序语言排行榜的前几位。ABAQUS/CAE的前处理基本是依赖于Python语言打造,因此采用Python进行二次开发很方便。
阿信老师CAE
2022/05/17
2K0
ABAQUS-Python第三方库的导入
Sqoop的安装与Mysql的数据导入到hdfs框架中
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
用户2603479
2018/09/19
1.1K0
android studio 导入第三方库的记录
http://blog.csdn.net/lxk_1993/article/details/50493582
103style
2022/12/19
3220
android studio 导入第三方库的记录
神经网络(TensorFlow)游乐场
TensorFlow游乐场是一个通过网页浏览器就可以训练的简单神经网络并实现了可视化训练过程的工具。可以去简单地模拟深度学习的过程。连线越粗表明权重越大。
里克贝斯
2021/05/21
1.5K0
神经网络(TensorFlow)游乐场
在vscode中安装python第三方库
以安装numpy为例,输入pip install numpy,点击回车,安装成功之后会显示如下信息:
全栈程序员站长
2022/11/10
2.3K0
在vscode中安装python第三方库
在Fabric ChainCode中导入第三方包(以状态机为例)
在企业级应用开发中,经常会涉及到流程和状态,而有限状态机(FSM)则是对应的一种简单实现,如果复杂化,就上升到Workflow和BPM了。我们在Fabric ChainCode的开发过程中,也很可能涉及到状态机,这里我们就举一个例子,用FSM实现一个二级审批的状态转移。
深蓝studyzy
2022/06/16
2700
在Fabric ChainCode中导入第三方包(以状态机为例)
Android Studio导入第三方类库的方法
Android Studio导入第三方类库的方法 本人也刚刚开始尝试做android app的开发,听说android studio是Google支持的android 应用开发工具,所以想应该肯定比Eclipse好用吧,反正以前没有java开发经验,索性就从android studio开始学,以前一直是做.net的开发,最近使用了Eclipse,Android Studio之后发现Visual studio.net正式太好用了,不得不说微软的开发工具做的比谁都好。下面是我在使用Android Studio应
阿新
2018/04/12
1.7K0
Android Studio导入第三方类库的方法
在python中实现基于ICE框架的cl
ICE (Internet Communication Engine) 是zeroc公司实现的通信中间件
py3study
2020/01/03
2.2K0
WebAssembly 在 MOSN 中的实践:基础框架篇
本文将介绍 WebAssembly 技术在 MOSN 中的实践,首先介绍了当前 MOSN 在扩展隔离方面所面临的痛点,并对 Wasm 技术的相关背景知识进行介绍。随后描述了 Wasm 扩展框架的整体架构,并介绍了我们在 Proxy-Wasm 社区规范中所做的贡献,最后描述了框架在性能、异常调试等方面的实践内容。 作为金融级服务网格中的流量代理组件,MOSN 在承载蚂蚁数十万服务容器之间流量的同时,也承载着诸多例如限流、鉴权、路由等中间件基础能力。这些能力以不同的扩展形式与 MOSN 运行于同一进程内。非隔离
深度学习与Python
2023/04/01
8220
WebAssembly 在 MOSN 中的实践:基础框架篇
时间轮原理及其在框架中的应用
1)心跳检测。在Dubbo中,需要有心跳机制来维持Consumer与Provider的长连接,默认的心跳间隔是60s。当Provider在3次心跳时间内没有收到心跳响应,会关闭连接通道。当Consumer在3次心跳时间内没有收到心跳响应,会进行重连。Provider侧和Consumer侧的心跳检测机制都是通过定时任务实现的,而且是本篇文章要分析的时间轮HashedWheelTimer处理的。
2020labs小助手
2022/03/28
2.4K0
WebAssembly 在 MOSN 中的实践 - 基础框架篇
作为金融级服务网格中的流量代理组件,MOSN 在承载蚂蚁数十万服务容器之间流量的同时,也承载着诸多例如限流、鉴权、路由等中间件基础能力。这些能力以不同的扩展形式与 MOSN 运行于同一进程内。非隔离的运行方式在保障性能的同时,却也给 MOSN 带来了不可预知的安全风险。
CNCF
2021/04/21
9770
点击加载更多

相似问题

Xcode游乐场框架导入

11

在游乐场中导入框架出错

52

如何将第三方框架导入Xcode游乐场?

49

将分析框架导入游乐场

10

如何在swift游乐场使用随迦太基导入的框架

45
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档