RFID Phidg​​et Manager附加活动

时间:2014-06-05 07:16:02

标签: 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(时间)。我可以知道如何解决这个问题。先谢谢你了

1 个答案:

答案 0 :(得分:2)

它是Phidget,但不是RFIDPhidget。经理类中没有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);