函数说明

解决方案 »

  1.   

    接口代码
    public interface Fwlib extends Library{
    public static class Focas1 extends Structure{
    public short dummy;
    public short type;
    public long[] data=new long[3];
    public static class ByReference extends Focas1 implements Structure.ByReference { }
    public static class ByValue extends Focas1 implements Structure.ByValue{ } 
    protected List getFieldOrder() {  
                return Arrays.asList(new String[]{"dummy", "type", "data"});
    }

    }
    String v=System.getProperty("sun.arch.data.model");
    Fwlib Instance=(Fwlib)Native.loadLibrary
       (v.equals("64")?"fwlib64":"fwlib32",Fwlib.class);
    Fwlib INSTANCES=(Fwlib)Native.loadLibrary
            (v.equals("64")?"fwlib0iD64":"fwlib0iD32",Fwlib.class);
    public short cnc_allclibhndl3(String ip,int port,int timeout,IntByReference FlibHndl);
    public short cnc_rdposition(IntByReference FlibHndl,int type,IntByReference data_num,IntByReference position);
    public short cnc_absolute(IntByReference FlibHndl,int axis,int length,Focas1.ByReference as);
    public short cnc_freelibhndl(IntByReference FlibHndl);
    }
      

  2.   

    调用代码
    public class Fanuc0i {
    public static void main(String[] args) {
    Fwlib.Focas1.ByReference data_num=new Fwlib.Focas1.ByReference();//连接指针
         IntByReference con=new IntByReference();
         short oo=Fwlib.Instance.cnc_allclibhndl3("192.168.1.2",8193,5,con);
         short ax=Fwlib.INSTANCES.cnc_absolute(con,2,16,data_num);
         //short fl=Fwlib.Instance.cnc_freelibhndl(con);
         System.out.println(ax);
         //System.out.println(kk.type);
    }}