/// <summary>Open and configure I/O channels.</summary> /// <param name="IODeviceHandle">Handle of the opened I/O device.</param> /// <param name="IOChannelName">HALCON I/O channel names of the specified device.</param> /// <param name="genParamName">Parameter names. Default: []</param> /// <param name="genParamValue">Parameter values. Default: []</param> /// <returns>Handles of the opened I/O channel.</returns> public static HIOChannel[] OpenIoChannel( HIODevice IODeviceHandle, HTuple IOChannelName, HTuple genParamName, HTuple genParamValue) { IntPtr proc = HalconAPI.PreCall(2016); HalconAPI.Store(proc, 0, (HTool)IODeviceHandle); HalconAPI.Store(proc, 1, IOChannelName); HalconAPI.Store(proc, 2, genParamName); HalconAPI.Store(proc, 3, genParamValue); HalconAPI.InitOCT(proc, 0); int err = HalconAPI.CallProcedure(proc); HalconAPI.UnpinTuple(IOChannelName); HalconAPI.UnpinTuple(genParamName); HalconAPI.UnpinTuple(genParamValue); HIOChannel[] hioChannelArray; int procResult = HIOChannel.LoadNew(proc, 0, err, out hioChannelArray); HalconAPI.PostCall(proc, procResult); GC.KeepAlive((object)IODeviceHandle); return(hioChannelArray); }
internal static int LoadNew(IntPtr proc, int parIndex, int err, out HIODevice[] obj) { HTuple tuple; err = HTuple.LoadNew(proc, parIndex, err, out tuple); obj = new HIODevice[tuple.Length]; for (int index = 0; index < tuple.Length; ++index) { obj[index] = new HIODevice(tuple[index].IP); } return(err); }
/// <summary> /// Open and configure I/O channels. /// Modified instance represents: Handles of the opened I/O channel. /// </summary> /// <param name="IODeviceHandle">Handle of the opened I/O device.</param> /// <param name="IOChannelName">HALCON I/O channel names of the specified device.</param> /// <param name="genParamName">Parameter names. Default: []</param> /// <param name="genParamValue">Parameter values. Default: []</param> public HIOChannel( HIODevice IODeviceHandle, string IOChannelName, HTuple genParamName, HTuple genParamValue) { IntPtr proc = HalconAPI.PreCall(2016); HalconAPI.Store(proc, 0, (HTool)IODeviceHandle); HalconAPI.StoreS(proc, 1, IOChannelName); HalconAPI.Store(proc, 2, genParamName); HalconAPI.Store(proc, 3, genParamValue); HalconAPI.InitOCT(proc, 0); int err = HalconAPI.CallProcedure(proc); HalconAPI.UnpinTuple(genParamName); HalconAPI.UnpinTuple(genParamValue); int procResult = this.Load(proc, 0, err); HalconAPI.PostCall(proc, procResult); GC.KeepAlive((object)this); GC.KeepAlive((object)IODeviceHandle); }
internal static int LoadNew(IntPtr proc, int parIndex, int err, out HIODevice obj) { obj = new HIODevice(HTool.UNDEF); return(obj.Load(proc, parIndex, err)); }