- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Node.js 和 http://www.acs.com.hk/en/products/342/acr1252u-usb-nfc-reader-iii-nfc-forum-certified-reader/ 与 ACR1252U NFC 读卡器 ( https://github.com/nonolith/node-usb ) 进行通信NPM 模块。
我创建了一个简单的脚本来获取读取器 USB 设备并监听事件。
当 NFC 卡与读卡器接触时,我会收到一个缓冲区:
<Buffer 50 03>
当 NFC 卡从读取中取出时,我收到一个缓冲区:
<Buffer 50 02>
这表明我至少能够与读者进行一些基本的沟通。
我现在的问题是,当 NFC 卡与读卡器接触时,我试图获取有关该卡的信息。我尝试向读取器发送数据,但无法获得一致的响应(有时我得到缓冲区响应,有时却没有,一遍又一遍地运行相同的命令)。
我决定简化我发送的命令,仅打开和关闭阅读器的内部蜂鸣器,因此我查看了 API 文档 ( http://www.acs.com.hk/download-manual/6402/API-ACR1252U-A1-1.07.pdf ),其中说明要激活您发送的蜂鸣器:
E0h 00h 00h 28h 01h + 1 byte to determine duration of buzzer activation
考虑到这一点,我创建了一个缓冲区:
var buf = new Buffer(6);
buf.write('e00000280108', 'hex');
然后使用USB模块的out端点发送数据:
outEndpoint.transfer(buf, function (err) {
console.log('out transfer', err);
});
控制台记录“输出传输”,没有错误,但没有从“输入”端点接收到任何内容。
如果我创建一个 64 字节缓冲区:
var buf = new Buffer(64);
buf.write('e00000280108', 'hex');
outEndpoint.transfer(buf, function (err) {
console.log('out transfer', err);
});
我收到来自“in”端点的响应:
<Buffer e0 00 00 00 00 01 00 42 ff 00>
这似乎与手册中的预期不符,并且根本不会激活蜂鸣器。
我对与此类 USB 设备直接通信还很陌生,我上次的此类体验是在当天向调制解调器发送 AT 命令:)
有人可以阐明我做错了什么吗?我认为发送 64 个字节而不是 6 个字节与 USB 标准需要设定长度或类似的东西有关?!?还有其他人有过使用 Node.js 与 NFC 读取器(非 HID)通信的经验吗?最终,我想做的就是能够将一些数据写入 NFC 标签,并在标 checkout 现时将其读回。
我以为这将是一个非常简单的过程,但我被难住了!也许我应该对数据进行不同的编码?也许我没有正确终止数据?我只是不知道!
我尝试将缓冲区大小增加 1 并通过以下方式向缓冲区添加\0 终止符:
buf.write('\0', 6, 'utf-8');
但这根本没有任何区别。
谢谢!
最佳答案
API 规范中描述的命令是通过 PC/SC 与阅读器交换的(伪)APDU 命令。当您直接通过 USB 访问读取器而不使用 PS/SC 抽象层(请参阅 http://www.pcscworkgroup.com/specifications/overview.php )时,您必须自己实现该抽象。因此,你必须自己实现USB CCID(芯片卡接口(interface)设备)类接口(interface)。本质上,这意味着您必须将 APDU 命令封装在 CCID 协议(protocol)中。您可以在此处找到规范:http://www.usb.org/developers/docs/devclass_docs/
关于node.js - 通过 Node.js 与 ACR1252U NFC 读卡器对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33551646/
场景:我在 ACR(azure 容器注册表)中有 4 个存储库,每个存储库中有多个图像。我想将所有存储库和其中的所有图像移动到不同的 ACR(azure 容器注册表)我所做的:我使用以下命令将 ACR
场景:我在 ACR(azure 容器注册表)中有 4 个存储库,每个存储库中有多个图像。我想将所有存储库和其中的所有图像移动到不同的 ACR(azure 容器注册表)我所做的:我使用以下命令将 ACR
每当我运行 az acr login -n 时,我都会收到以下消息: 来自守护程序的错误响应:获取“https://acrau*****.azurecr.io/v2/”:net/http:WAITIN
我们已经开始将产品从这一庞大的整体中剥离到 Azure 中。产品也可以称为微服务。 我们有一个问题 - 我们应该有一个 Azure 容器注册表 (ACR) 来服务所有不同的产品,还是每个产品都应该有自
我创建了一个仅具有 AcrPull 角色的私有(private)注册表,如下所示: 但是当我建立自己的形象并PUSH时,效果很好! (而不是拒绝我) 我想知道为什么? (因为它只有 AcrPull 而
应用程序使用 docker CLI 构建镜像,然后将镜像推送到 azure 容器注册表。过去使用 python 模块和 docker.sock 在 Kubernetes 上运行良好。但自从集群升级后,
我们有一个在 Azure 云上运行的 ACR,其中有多个 Repos,它最近被迁移。我们面临的挑战是我们希望在 ACR 上应用类似于 Nexus 的存储库访问控制,我们希望与 Azure Active
我有一个服务主体,它具有订阅的所有者访问权限,禁止进行一些网络操作。在同一个订阅中,我有一个资源组,我在其中创建了 ACR。我正在尝试使用我的服务主体登录 acr,但它抛出“访问被拒绝”错误。 由于
我正在尝试执行以下针对根文件夹中的 Dockerfile 的 Azure CLI 命令。 az acr build --registry --image myimage:latest . 我得到一个
我在 ACR 中托管了一些镜像,我想检查 ACR 中部署的镜像(存储库镜像)。 例如,我在“test123”ACR 中有一个“hello-world”图像。我想检查 ACR 图像并读取图像的 json
我正在尝试创建一个容器并将其推送到 Azure 容器注册表。我已经创建了一个容器组和服务原则,但我无法让 docker Push 工作。 > docker login azure --client-i
有一个关于 Azure 需要通过从 AZ 从 azure 容器注册表中提取镜像来部署 azure 容器应用程序的问题 步骤: 1- az login -successful 2- az acr log
我正在我的组织中试用 Bicep 和容器应用程序,我们已经在同一租户内但在不同的订阅中分离出了问题,如下所示: 开发 生产 管理 我希望能够使用 Bicep 脚本(每个订阅都有一个单独的脚本)部署每个
我正在尝试使用 cli 对 Azure 容器注册表进行身份验证。我使用主题名称和颁发者身份验证,并通过服务主体向 azure 进行身份验证。 这就是我登录 Azure 时所做的事情 az login
Azure 容器注册表 (ACR) SKU 之间有什么区别? CLI 将这些列为选项: -sku {Basic,Managed_Basic,Managed_Standard,Managed_Premi
我正在我的组织中试用 Bicep 和容器应用程序,我们已经在同一租户内但在不同的订阅中分离出了问题,如下所示: 开发 生产 管理 我希望能够使用 Bicep 脚本(每个订阅都有一个单独的脚本)部署每个
我正在尝试使用 cli 对 Azure 容器注册表进行身份验证。我使用主题名称和颁发者身份验证,并通过服务主体向 azure 进行身份验证。 这就是我登录 Azure 时所做的事情 az login
Azure 容器注册表 (ACR) SKU 之间有什么区别? CLI 将这些列为选项: -sku {Basic,Managed_Basic,Managed_Standard,Managed_Premi
我正在使用Azure CLI v2.0.62。 我在 Azure 中的单个帐户上有多个订阅 - S1、S2、S3、S4。 我正在执行以下脚本以将动态值插入存储库: az login az acr bu
我正在尝试使用 OCI 注册表 (ACR) 来存储我的 helm 图表。我找到了推送和拉取图表的方法,但我无法以 OCI native 方式登录注册表。 目前我可以通过以下方式登录: az acr l
我是一名优秀的程序员,十分优秀!