Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用WebUSB API和acr122u外部NFC读卡器读取NFC标签UID_Javascript_Webusb - Fatal编程技术网

Javascript 使用WebUSB API和acr122u外部NFC读卡器读取NFC标签UID

Javascript 使用WebUSB API和acr122u外部NFC读卡器读取NFC标签UID,javascript,webusb,Javascript,Webusb,我试图通过使用外部和外部命令读取NFC标记UID 我能够授权USB设备,关闭/打开蜂鸣器,更改led颜色等。, 但无法读取标记UID var usbd={}; let装置; 设deviceEndpoint=0x02; 设powerUpDevice=new Uint8Array([0x62,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00])。缓冲区; 让getCardUID=newuint8array([0xff,0xca,0x00,0x00,0x04]

我试图通过使用外部和外部命令读取
NFC标记UID

我能够授权
USB设备
,关闭/打开蜂鸣器,更改led颜色等。, 但无法读取
标记UID

var usbd={};
let装置;
设deviceEndpoint=0x02;
设powerUpDevice=new Uint8Array([0x62,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00])。缓冲区;
让getCardUID=newuint8array([0xff,0xca,0x00,0x00,0x04]).buffer;
(功能(){
"严格使用",;
usbd.authorize=函数(){
requestDevice({filters:[{vendorId:0x072f}]})
。然后(选择设备=>{
设备=所选设备;
console.log(device.configuration.interfaces[0].interfaceEnumber);
控制台.log(设备.manufacturerName);
console.log(device.productName);
控制台日志(设备);
返回设备。打开()
.然后(()=>{
if(device.configuration==null){
返回设备。选择配置(1);
}
});
})
.然后(()=>device.claimiinterface(0))
.然后(()=>设备.传输(deviceEndpoint,powerUpDevice)
。然后(transferResult=>{
console.log(transferResult);
},错误=>{
console.log(错误);
设备。关闭();
})
.catch(错误=>{
console.log(错误);
})
);
};
usbd.getDevice=函数(){
返回navigator.usb.getDevices()。然后(devices=>{
返回devices.map(device=>newusbd.device(device));
});
};
usbd.device=功能(设备){
这个设备u=设备;
};
usbd.getTagUID=函数(){
device=this.getDevice();
装置
。然后(设备=>{
设备[0]。设备\打开()
.然后(()=>设备[0]。设备\请求接口(0))
.then(()=>设备[0]。设备\转出(设备端点,getCardUID)
。然后(transferResult=>{
console.log(transferResult);
},错误=>{
console.log(错误);
设备[0]。设备\关闭();
})
.catch(错误=>{
console.log(错误);
})
)
.然后(()=>设备[0]。设备\请求接口(0))
.then(()=>设备[0]。设备\传输(deviceEndpoint,16)
。然后(USBInTransferResult=>{
if(USBInTransferResult.data){
log(USBInTransferResult.data.getUint32(0));
}
},错误=>{
console.log(错误);
设备[0]。设备\关闭();
})
.catch(错误=>{
console.log(错误);
})
);
});
};
$(“#连接”)。单击(函数(){
usbd.authorize();
});
$(“#读卡”)。单击(函数(){
usbd.getTagUID();
});

})();看起来您已经成功地使用WebUSB发送了一些命令,所以这看起来像是一个关于这个RFID阅读器使用什么协议的问题。是否有制造商提供的文档,或者是否有一个开源驱动程序可以作为发送命令的参考?@ReillyGrant,是的,我确实有,但我被困在这一点上。@ReillyGrant,现在我正在使用,也在尝试。我不知道在哪里可以进一步查看。你找到解决方案了吗?我使用相同的ACR122U读卡器运行了您的代码,并给出了一个错误:“试图声明USB设备接口已被阻止,因为它实现了受保护的接口类”一个阻止访问这些设备的新Chrome安全警察。。。。天啊!!!!