Phidg​​etRFID芯片:如何检测标签

时间:2017-04-02 11:54:33

标签: java nfc

我有一个Phidg​​etRFID芯片(P / N:1023,版本205)。我正在尝试制作一个简单的程序,以便检测标签并显示其唯一的ID号。我从其制造商网站

中找到了以下源代码
import com.phidgets.*;
import com.phidgets.event.*;

public class RFIDExample
{
    public static final void main(String args[]) throws Exception {
        RFIDPhidget rfid;

        System.out.println(Phidget.getLibraryVersion());

        rfid = new RFIDPhidget();
        rfid.addAttachListener(new AttachListener() {
            public void attached(AttachEvent ae)
            {
                try
                {
                    ((RFIDPhidget)ae.getSource()).setAntennaOn(true);
                    ((RFIDPhidget)ae.getSource()).setLEDOn(true);
                }
                catch (PhidgetException ex) { }
                System.out.println("attachment of " + ae);
            }
        });
        rfid.addDetachListener(new DetachListener() {
            public void detached(DetachEvent ae) {
                System.out.println("detachment of " + ae);
            }
        });
        rfid.addErrorListener(new ErrorListener() {
            public void error(ErrorEvent ee) {
                System.out.println("error event for " + ee);
            }
        });
        rfid.addTagGainListener(new TagGainListener()
        {
            public void tagGained(TagGainEvent oe)
            {
                System.out.println("Tag Gained: " +oe.getValue() + " (Proto:"+ oe.getProtocol()+")");
            }
        });
        rfid.addTagLossListener(new TagLossListener()
        {
            public void tagLost(TagLossEvent oe)
            {
                System.out.println(oe);
            }
        });
        rfid.addOutputChangeListener(new OutputChangeListener()
        {
            public void outputChanged(OutputChangeEvent oe)
            {
                System.out.println(oe);
            }
        });

        rfid.openAny();
        System.out.println("waiting for RFID attachment...");
        rfid.waitForAttachment(30000);

        System.out.println("Serial: " + rfid.getSerialNumber());
        System.out.println("Outputs: " + rfid.getOutputCount());

        }
    }

但我收到以下错误:

Phidg​​et21 - 版本2.1.8 - 建于2016年2月22日11:45:54 等待RFID附件...... 线程“main”中的异常Phidg​​etException 13(已超出给定超时。)     at com.phidgets.Phidg​​et.waitForAttachment(Native Method)     在RFIDExample.main(RFIDExample.java:58)

我所尝试的是增加计时器,但问题没有解决。 我试图将制造商的应用程序用于我的RFID芯片并且它有效,它正确地分离了标签。但我需要使用源代码而不是现成的应用程序。

任何帮助都非常有用! 先感谢您! :)

BR, Loukas

1 个答案:

答案 0 :(得分:0)

最后,问题是我正在尝试执行代码,同时我打开了现成的应用程序。

现在它正常运作。

问题解决了。