我有RFID阅读器ZK-RFID101,当我买它时,它带有一个SDK来开发和与读者沟通但是当我试图使用它它不会工作,我没有从阅读器收到任何信息< / p>
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");
}
}
这是读者附带的.DLL文件。
答案 0 :(得分:1)
您应该与设备制造商联系以获取支持。没有人可以通过查看提供的dll中的方法签名来回答您的问题。
答案 1 :(得分:0)
我有相同的RFID阅读器,我遇到了同样的问题,所以如果你到目前为止还没有解决问题,我想告诉你我做了很多事情,最后我通过包括&#34; Basic.dll&#34; - 他们与SDK一起发送的文件位于&#34; UHF_Reader18.dll&#34;存在,因为它们之间似乎存在依赖关系,但只加载&#34; UHF_Reader18.dll&#34;。
在我联系他们后,他们给我发了一个测试代码,但是在这里你应该创建一个包然后将它导入到一个新项目中,并且不要忘记将包(你也可以编译)放在里面新项目的src文件夹。
对于您创建包的项目,将包名称为UHF,并将其命名为Reader18,然后在此类中复制并粘贴Reader18.java的内容(它们是在没有任何添加的情况下发送的),然后将其编译为获取Reader18.class,然后将UHF_Reader18.dll和Basic.dll放入&#34; UHF&#34;在&#34; src&#34;之后这个项目。
在将包中的所有项目包含在&#34; src&#34;之后,使用代码-below-创建一个新项目。新项目,并了解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]);
}
}
}
希望这很有帮助。