RFID、键盘楔和Java

RFID、键盘楔和Java,java,keyboard,rfid,wedge,Java,Keyboard,Rfid,Wedge,com端口上有大量RFID教程,但usb端口上没有。 有关于C#与键盘楔块的描述,但不适用于java 我有一个键盘楔子,“认为这是一个c#术语”,它基本上以击键的形式给出id。我需要验证键盘输入是否来自rfid标签 我从易趣买的阅读器,没有配置工具,也没有sdk或api。但它会自动工作,就像是通过键盘打字一样 我在c#答案中发现的一个建议是 目前,我正在通过附加到KeyPress事件并寻找一系列包含刷卡哨兵字符的快速按键来处理这个问题 看起来很有希望,但不确定如何做到这一点我用JavaScrip

com端口上有大量RFID教程,但usb端口上没有。 有关于C#与键盘楔块的描述,但不适用于java

我有一个键盘楔子,“认为这是一个c#术语”,它基本上以击键的形式给出id。我需要验证键盘输入是否来自rfid标签

我从易趣买的阅读器,没有配置工具,也没有sdk或api。但它会自动工作,就像是通过键盘打字一样

我在c#答案中发现的一个建议是

目前,我正在通过附加到KeyPress事件并寻找一系列包含刷卡哨兵字符的快速按键来处理这个问题


看起来很有希望,但不确定如何做到这一点

我用JavaScript做了类似的工作来读取磁卡刷卡。您需要测量按键事件之间的时间间隔。如果时间低于某个阈值(您可能需要通过实验来确定),那么它就是楔形读取器,因此将按下的键附加到输入字符串中。否则,它是一个人,所以重置状态

这是一个粗略的示例,说明了如何实现这一点:

private String input = "";
private long lastPress = 0;

public void onKeyPress(Event event) {
   if(lastPress - System.currentTimeInMillis() < THRESHOLD) {
     lastPress = System.currentTimeInMillis();
     input += event.getKey();
   } else {
     lastPress = 0;
     input = "";
   }
}
私有字符串输入=”;
私有长lastPress=0;
公开作废onKeyPress(事件){
if(lastPress-System.currentTimeInMillis()<阈值){
lastPress=System.currentTimeInMillis();
输入+=event.getKey();
}否则{
lastPress=0;
输入=”;
}
}
这只是一个起点。您的特定应用程序可能需要额外的条件,如检查哨兵和什么不帮助确定您是否处于楔形读取