Java调用ZKAccess3.5的PULLSDKdll接口实现开门

Java调用ZKAccess3.5的PULLSDKdll接口实现开门

代码如下

		<dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
            <version>4.1.0</version>
        </dependency>
package zk.jni;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;

public class JavaToAdmsPullSDK1 {

    public interface Dll extends Library {
        Dll instance = (Dll)Native.loadLibrary("C://Windows//system32//plcommpro", Dll.class);
        int Connect(String str);
        int ControlDevice(int h, NativeLong OperationID, NativeLong Param1, NativeLong Param2, NativeLong Param3, NativeLong Param4, String Options);
        int PullLastError();
    }
package zk.jni;


import com.sun.jna.NativeLong;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("open")
public class JavaToAdmsPullSDK{

    @GetMapping("{ip}/{doorId}")
    public boolean OpenDoor(@PathVariable(value = "ip") String ip,
                           @PathVariable(value = "doorId") int doorId){
        int h = 0;
        String str="protocol=TCP,ipaddress="+ip+",port=4370,timeout=2000,passwd=";
        int ret = 0;
        //連接
        if (0 == h) {
            h = JavaToAdmsPullSDK1.Dll.instance.Connect(str);
            if (h != 0) {
                System.out.println("Connect device succeed!");
            } else {
                ret = JavaToAdmsPullSDK1.Dll.instance.PullLastError();
                System.out.println("Connect device Failed! The error id is: " + ret);
                return false;
            }
            //开门
            int res=0;
            NativeLong OperationID=new NativeLong(1);//operationID
            NativeLong Param1=new NativeLong(doorId);//DoorID
            NativeLong Param2=new NativeLong(1);//OutputAddress
            NativeLong Param3=new NativeLong(5);//DoorState(5秒)
            NativeLong Param4=new NativeLong(0);//預留
            res = JavaToAdmsPullSDK1.Dll.instance.ControlDevice(h, OperationID, Param1, Param2, Param3, Param4, "");
            if (res >= 0) {
                System.out.println("The operation succeed!");
            }else{
                ret = JavaToAdmsPullSDK1.Dll.instance.PullLastError();
                System.out.println("Connect device Failed! The error id is: " + ret);
                return false;
            }
        }else{
            ret = JavaToAdmsPullSDK1.Dll.instance.PullLastError();
            System.out.println("Connect device Failed! The error id is:" + ret);
            return false;
        }
        System.out.println("连接成功ipaddress="+ip+"  dorrId="+doorId);
        return true;
    }
}

注意事项

注:1.我是64位的系统用的32位的jre,64位的jre我试过貌似不能成功

发布了29 篇原创文章 · 获赞 8 · 访问量 914

猜你喜欢

转载自blog.csdn.net/qq_38650808/article/details/103122200