java - RFID Phidg​​et Manager 附加事件

标签 java rfid

我正在尝试一个包含许多 phidget rfid 阅读器的程序。这个测试代码工作正常,我可以加载所有的阅读器并让它工作。

Vector phidgetList = manager.getPhidgets();
          Enumeration phidgetListEnum = phidgetList.elements();
          int count=phidgets.size();
          while(phidgetListEnum.hasMoreElements()) { 
                Phidget phidgetElement = (Phidget) phidgetListEnum
                        .nextElement();
                if (!phidgets.containsKey(phidgetElement.getSerialNumber())) {

                    RFIDTracking rfi = (RFIDTracking) ct.getTracking("rfid")
                            .clone();
                    rfi.setName("rfid clone " + count++);
                    rfi.detect();
                    rfi.setCode(phidgetElement.getSerialNumber());
                    phidgets.put(phidgetElement.getSerialNumber(), rfi);
                    Thread t = new Thread(rfi);
                    t.start();
              }
          }

问题是当我试图检测连接到系统或从系统分离的新阅读器时。我使用了这段代码

Manager manager;
      manager = new Manager();
      try {
          manager.addAttachListener(new AttachListener() {
                 public void attached(AttachEvent ae)
                 {
                    try
                    {
                       System.out.println("attached" + ((RFIDPhidget)ae.getSource()).getSerialNumber());
                    }
                    catch (PhidgetException ex) { }
                 }
              });
          manager.open();
      } catch (PhidgetException exception) {
          System.err.println(exception.getErrorNumber()+ exception.getDescription());
      }
      // Allow the Phidgets time to attach
      Thread.sleep(1000);

此代码无法检测到任何阅读器附件。我发现管理器中没有 waitForAttachment(time) 。我可以知道如何解决这个问题。先谢谢你

最佳答案

它是Phidg​​et,但不是RFIDPhidg​​et。管理器类中没有WaitForAttachment,因为它不是必需的。前面的代码工作正常,但等待时间必须稍微长一点,程序不会在附加内容之前终止。

Manager manager;
manager = new Manager();
try {
  manager.addAttachListener(new AttachListener() {
    public void attached(AttachEvent ae)
    {
      try
      {
        System.out.println("attached" + ((Phidget)ae.getSource()).getSerialNumber());
      } catch (PhidgetException ex) { }
    }
  });
  manager.open();
} catch (PhidgetException exception) {
  System.err.println(exception.getErrorNumber()+ exception.getDescription());
}
// Allow the Phidgets time to attach
Thread.sleep(1000);

关于java - RFID Phidg​​et Manager 附加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053944/

相关文章:

NFC 标准(NFC 论坛、ISO/IEC、ECMA

java - 将匿名类转换为 lambda 后代码表现不同

java - 从 EJB 计时器中删除大量行

java - 如何在 Java 中将非常大的字符串转换为数字

nfc - Apple Watch 是否被 RFID 读取器检测到?

android - 三星 Nexus Prime 和读取 RFID 员工 ID

java - 通过 ObjectOutputStream 发送相同但已修改的对象

java - 关于 JMS receive()/MessageListener 优先级的问题

c# - 与人机接口(interface)设备 (HID) 通信的 VBA 代码

nfc - Mifare ultraligtht 和 APDU 命令