Dll RFID阅读器通信

Dll RFID阅读器通信,dll,tags,communication,rfid,Dll,Tags,Communication,Rfid,我有RFID阅读器ZK-RFID101,当我购买它时,它附带了一个SDK来开发和与阅读器通信,但当我试图使用它时,它不起作用,我没有收到来自阅读器的任何信息 public class Reader18 { /** * @param arr * @return */ public native int[] OpenComPort(int[]arr); public native int[] AutoOpenComPort(int[]arr)

我有RFID阅读器ZK-RFID101,当我购买它时,它附带了一个SDK来开发和与阅读器通信,但当我试图使用它时,它不起作用,我没有收到来自阅读器的任何信息

public class Reader18 {

    /**
     * @param arr
     * @return 
     */
    public native int[] OpenComPort(int[]arr);
    public native int[] AutoOpenComPort(int[]arr);
    public native int CloseComPort();
    public native int[] OpenNetPort(int addr,int Port,String IPaddr);
    public native int CloseNetPort(int Port);
    public native int CloseSpecComPort(int Frmhandle);
    public native int[] GetReaderInformation(int[]arr);
    public native int SetWGParameter(int[]arr);
    public native int[] ReadActiveModeData(int[]arr);
    public native int SetWorkMode(int[]arr);
    public native int[] GetWorkModeParameter(int[]arr);
    public native int BuzzerAndLEDControl(int[] arr);
    public native int WriteComAdr(int[] arr);
    public native int SetPowerDbm(int[] arr);
    public native int Writedfre(int[] arr);
    public native int Writebaud(int[] arr);
    public native int WriteScanTime(int[] arr);
    public native int SetAccuracy(int[] arr);
    //EPC  G2
    public native int[] Inventory_G2(int[]arr);
    public native int[] ReadCard_G2(int[]arr);
    public native int[] WriteCard_G2(int[]arr);
    public native int[] EraseCard_G2(int[]arr);
    public native int[] SetCardProtect_G2(int[]arr);
    public native int[] DestroyCard_G2(int[]arr);
    public native int[] WriteEPC_G2(int[]arr);
    public native int[] SetReadProtect_G2(int[]arr);
    public native int[] SetMultiReadProtect_G2(int[]arr);
    public native int[] RemoveReadProtect_G2(int[]arr);
    public native int[] CheckReadProtected_G2(int[]arr);
    public native int[] SetEASAlarm_G2(int[]arr);
    public native int[] CheckEASAlarm_G2(int[]arr);
    public native int[] LockUserBlock_G2(int[]arr);
    //18000_6B
    public native int[] Inventory_6B(int[]arr);
    public native int[] inventory2_6B(int[]arr);
    public native int[] ReadCard_6B(int[]arr);
    public native int[] WriteCard_6B(int[]arr);
    public native int[] LockByte_6B(int[]arr);
    public native int[] CheckLock_6B(int[]arr);

    public static void main(String[] args) {
        Reader18 test = new Reader18();
        int[] a = new int[2];
        int[] b;



        a[0]=0xff;
        a[1]=0;




      b=test.AutoOpenComPort(a);

        ///for(int i=0; i <b.length; i++)
            System.out.println(b.length);








        System.out.println();



    }

    static {
         // we need to have the dll file in the same folder as Reader18.java
         // it is to be noted that the Reader18.class should be kept in UHF folder due to package statement.
         // but the dll file should be in the folder where UHF folder is present.
         // System.loadLibrary("UHF_Reader18"); 

         System.load("C:\\Users\\Abdulaziz\\Desktop\\UHF\\Libraryes\\UHF_Reader18.dll");
     }

}  
公共类读取器18{
/**
*@param-arr
*@返回
*/
公共本机int[]OpenComPort(int[]arr);
公共本机int[]AutoOpenComPort(int[]arr);
公共本机int CloseComPort();
公共本机int[]OpenNetPort(int addr、int Port、字符串IPaddr);
公共本机int CloseNetPort(int端口);
公共本地int CloseSpecComPort(int Frmhandle);
公共本机int[]GetReaderInformation(int[]arr);
公共本机int setwgparmeter(int[]arr);
公共本机int[]ReadActiveModeData(int[]arr);
公共本机int SetWorkMode(int[]arr);
公共本机int[]GetWorkModeParameter(int[]arr);
公共本机内部控制(内部[]arr);
公共本机int WriteComAdr(int[]arr);
公共本机int SetPowerDbm(int[]arr);
公共本机int Writedfre(int[]arr);
公共本机int-Writebaud(int[]arr);
公共本机int WriteScanTime(int[]arr);
公共本机int setaccurity(int[]arr);
//EPC G2
公共本机int[]清单2(int[]arr);
公共本机int[]读卡器2(int[]arr);
公共本机int[]WriteCard_G2(int[]arr);
公共本机int[]擦除卡2(int[]arr);
公共本机int[]SetCardProtect_G2(int[]arr);
公共本机int[]销毁卡2(int[]arr);
公共本机int[]writepc_G2(int[]arr);
公共本机int[]SetReadProtect_G2(int[]arr);
公共本机int[]SetMultiReadProtect_G2(int[]arr);
公共本机int[]arr\u G2(int[]arr);
公共本机int[]CheckReadProtected_G2(int[]arr);
公共本机int[]setEAAlarm_G2(int[]arr);
公共本机int[]CheckEASAlarm_G2(int[]arr);
公共本机int[]LockUserBlock_G2(int[]arr);
//180006b
公共本地int[]库存_6B(int[]arr);
公共本地int[]目录2_6B(int[]arr);
公共本机int[]读卡6B(int[]arr);
公共本地int[]书面卡6B(int[]arr);
公共本机int[]LockByte_6B(int[]arr);
公共本机int[]校验锁_6B(int[]arr);
公共静态void main(字符串[]args){
Reader18测试=新的Reader18();
int[]a=新的int[2];
int[]b;
a[0]=0xff;
a[1]=0;
b=测试自动打开组件(a);

///为了(int i=0;i您应该向设备制造商寻求支持。没有人可以通过查看提供的dll中的方法签名来回答您的问题。

我有相同的RFID阅读器,我面临相同的问题,因此,如果您到目前为止还没有解决问题,我想通知您,我尝试了许多方法,最终解决了问题只需将“Basic.dll”(随SDK一起发送)包含在“UHF_Reader18.dll”所在的同一文件夹中即可,因为它们之间似乎存在依赖关系,但只能加载“UHF_Reader18.dll”

在我联系他们之后,他们给我发送了一个代码进行测试,但是在这里,你应该创建一个包,然后将它导入到一个新项目中,不要忘记将包(你也会编译)放在新项目的src文件夹中

对于您在中创建包的项目,将包命名为UHF及其类Reader18,然后将Reader18.java(它们在未添加任何内容的情况下发送)的内容复制并粘贴到该类中,然后将其编译为Reader18.class,然后将UHF_Reader18.dll和Basic.dll放在该项目的“src”之后的“UHF”中

在新项目的“src”中包含该包的所有项目后,使用下面的代码创建一个新项目,并注意dll文件的路径

您可以使用以下代码测试函数,其中包括导入该软件包:

    import UHF.Reader18.*;
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    //    System.out.println(System.getProperty("java.library.path"));
     System.loadLibrary("UHF_Reader18");
       UHF.Reader18 tnt = new UHF.Reader18();
        int arr[];
        arr=new int[3];
        int arr1[]=new int[80];
       // arr1=new byte[8];
        arr[0]=1;//serial port

        arr[1]=1;//Read/write device address

        arr[2]=5;//Baud rate
        arr1=tnt.OpenComPort(arr);
      //   arr1=tnt.OpenNetPort(255, 6000, "192.168.3.11");
         for (int m=0;m<arr1.length;m++)
        {
           System.out.println(arr1[m]);
        }///
        arr[0]=1;//address

        arr[1]=1;//handle
        arr1=tnt.Inventory_G2(arr);
        for (int m=0;m<arr1.length;m++)
        {
           System.out.println(arr1[m]);
        }
    }

}  
导入UHF.Reader18.*;
公共班机{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
//System.out.println(System.getProperty(“java.library.path”);
系统加载库(“UHF_Reader18”);
UHF.Reader18 tnt=新的UHF.Reader18();
int-arr[];
arr=新整数[3];
int arr1[]=新int[80];
//arr1=新字节[8];
arr[0]=1;//串行端口
arr[1]=1;//读/写设备地址
arr[2]=5;//波特率
arr1=tnt.OpenComPort(arr);
//arr1=tnt.OpenNetPort(2556000,“192.168.3.11”);

对于(int m=0;mHi,我在使用相同的dll和天线时遇到了麻烦,我无法通过OpenNetPort方法完成连接,如果您对此有所了解,我将非常感谢您能与我联系。您能告诉我文件的完整结构吗?我真的很困惑,我现在被困了两天