我正在尝试一个包含许多 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) 。我可以知道如何解决这个问题。先谢谢你
最佳答案
它是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);
关于java - RFID Phidget Manager 附加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053944/