コード例 #1
0
ファイル: EngineAPI.cs プロジェクト: zshankang/OpenHalcon
        internal static int StoreTupleVector(HTupleVector inVector, IntPtr vectorHandle)
        {
            int dimension = inVector.Dimension;
            int length    = inVector.Length;

            if (dimension == 1)
            {
                for (int index = length - 1; index >= 0; --index)
                {
                    IntPtr tuple;
                    EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple));
                    HalconAPI.StoreTuple(tuple, inVector[index].T);
                    EngineAPI.HCkE(EngineAPI.SetTupleVectorTuple(vectorHandle, index, tuple));
                    EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple));
                }
            }
            else
            {
                for (int index = length - 1; index >= 0; --index)
                {
                    IntPtr vectorHandle1;
                    EngineAPI.HCkE(EngineAPI.CreateTupleVector(inVector[index], out vectorHandle1));
                    EngineAPI.HCkE(EngineAPI.SetTupleVectorVector(vectorHandle, index, vectorHandle1));
                    EngineAPI.HCkE(EngineAPI.DestroyTupleVector(vectorHandle1));
                }
            }
            GC.KeepAlive((object)inVector);
            return(2);
        }
コード例 #2
0
ファイル: EngineAPI.cs プロジェクト: zshankang/OpenHalcon
        internal static void GetProgramInfo(
            IntPtr program,
            out string name,
            out bool loaded,
            out HTuple varNamesIconic,
            out HTuple varNamesCtrl,
            out HTuple varDimsIconic,
            out HTuple varDimsCtrl)
        {
            IntPtr tuple1;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple1));
            IntPtr tuple2;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple2));
            IntPtr tuple3;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple3));
            IntPtr tuple4;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple4));
            IntPtr name1;

            EngineAPI.HCkE(EngineAPI.HCenGetProgramInfo(program, out name1, out loaded, tuple1, tuple2, tuple3, tuple4));
            name           = Marshal.PtrToStringAnsi(name1);
            varNamesIconic = HalconAPI.LoadTuple(tuple1);
            varNamesCtrl   = HalconAPI.LoadTuple(tuple2);
            varDimsIconic  = HalconAPI.LoadTuple(tuple3);
            varDimsCtrl    = HalconAPI.LoadTuple(tuple4);
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple1));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple2));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple3));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple4));
        }
コード例 #3
0
        /// <summary>Sets input control parameter for procedure call</summary>
        public void SetInputCtrlParamTuple(string name, HTuple tuple)
        {
            IntPtr tuple1;

            HDevProcedureCall.HCkE(HalconAPI.CreateTuple(out tuple1));
            HalconAPI.StoreTuple(tuple1, tuple);
            HDevProcedureCall.HCkE(EngineAPI.SetInputCtrlParamTuple(this.call, name, tuple1));
            GC.KeepAlive((object)this);
            HDevProcedureCall.HCkE(HalconAPI.DestroyTuple(tuple1));
        }
コード例 #4
0
ファイル: HDevEngine.cs プロジェクト: zshankang/OpenHalcon
        /// <summary>Sets the value of a global control variable</summary>
        public void SetGlobalCtrlVarTuple(string name, HTuple tuple)
        {
            IntPtr tuple1;

            HDevEngine.HCkE(HalconAPI.CreateTuple(out tuple1));
            HalconAPI.StoreTuple(tuple1, tuple);
            HDevEngine.HCkE(EngineAPI.SetGlobalCtrlVarTuple(this.engine, name, tuple1));
            GC.KeepAlive((object)this);
            HDevEngine.HCkE(HalconAPI.DestroyTuple(tuple1));
        }
コード例 #5
0
ファイル: HDevProcedure.cs プロジェクト: zshankang/OpenHalcon
        /// <summary>Returns all possible slots of the parameter docu</summary>
        public HTuple QueryParamInfo()
        {
            IntPtr tuple;

            HDevProcedure.HCkE(HalconAPI.CreateTuple(out tuple));
            HDevProcedure.HCkE(EngineAPI.QueryParamInfo(this.procedure, tuple));
            GC.KeepAlive((object)this);
            HTuple htuple = HalconAPI.LoadTuple(tuple);

            HDevProcedure.HCkE(HalconAPI.DestroyTuple(tuple));
            return(htuple);
        }
コード例 #6
0
ファイル: HDevProcedure.cs プロジェクト: zshankang/OpenHalcon
        /// <summary>Returns the info of the refered parameter docu slot</summary>
        public HTuple GetOutputCtrlParamInfo(int parIdx, string slot)
        {
            IntPtr tuple;

            HDevProcedure.HCkE(HalconAPI.CreateTuple(out tuple));
            HDevProcedure.HCkE(EngineAPI.GetOutputCtrlParamInfo(this.procedure, parIdx, slot, tuple));
            GC.KeepAlive((object)this);
            HTuple htuple = HalconAPI.LoadTuple(tuple);

            HDevProcedure.HCkE(HalconAPI.DestroyTuple(tuple));
            return(htuple);
        }
コード例 #7
0
ファイル: HDevProcedure.cs プロジェクト: zshankang/OpenHalcon
        /// <summary>Returns the names of all refered procedures</summary>
        public HTuple GetUsedProcedureNames()
        {
            IntPtr tuple;

            HDevProcedure.HCkE(HalconAPI.CreateTuple(out tuple));
            HDevProcedure.HCkE(EngineAPI.GetUsedProcedureNamesForProcedure(this.procedure, tuple));
            GC.KeepAlive((object)this);
            HTuple htuple = HalconAPI.LoadTuple(tuple);

            HDevProcedure.HCkE(HalconAPI.DestroyTuple(tuple));
            return(htuple);
        }
コード例 #8
0
ファイル: HDevEngine.cs プロジェクト: zshankang/OpenHalcon
        /// <summary>Queries a global setting of the engine</summary>
        /// <param name="name">
        ///   The name of the attribute, e.g. "ignore_invalid_lines"
        ///   or "ignore_unresolved_lines"
        /// </param>
        /// <returns>The current value of the attribute</returns>
        public HTuple GetEngineAttribute(string name)
        {
            IntPtr tuple;

            HDevEngine.HCkE(HalconAPI.CreateTuple(out tuple));
            HDevEngine.HCkE(EngineAPI.GetEngineAttribute(this.engine, name, tuple));
            GC.KeepAlive((object)this);
            HTuple htuple = HalconAPI.LoadTuple(tuple);

            HDevEngine.HCkE(HalconAPI.DestroyTuple(tuple));
            return(htuple);
        }
コード例 #9
0
ファイル: HDevEngine.cs プロジェクト: zshankang/OpenHalcon
        /// <summary>Changes a global setting of the engine</summary>
        /// <param name="name">
        ///   The name of the attribute, e.g. "ignore_invalid_lines"
        ///   or "ignore_unresolved_lines"
        /// </param>
        /// <param name="attributeValue">The new value of the attribute</param>
        public void SetEngineAttribute(string name, HTuple attributeValue)
        {
            IntPtr tuple;

            HDevEngine.HCkE(HalconAPI.CreateTuple(out tuple));
            HalconAPI.StoreTuple(tuple, attributeValue);
            int err = EngineAPI.SetEngineAttribute(this.engine, name, tuple);

            GC.KeepAlive((object)this);
            HalconAPI.DestroyTuple(tuple);
            HDevEngine.HCkE(err);
        }
コード例 #10
0
ファイル: HDevEngine.cs プロジェクト: zshankang/OpenHalcon
        /// <summary>Returns the names of all global control variables</summary>
        public HTuple GetGlobalCtrlVarNames()
        {
            IntPtr tuple;

            HDevEngine.HCkE(HalconAPI.CreateTuple(out tuple));
            HDevEngine.HCkE(EngineAPI.GetGlobalCtrlVarNames(this.engine, tuple));
            GC.KeepAlive((object)this);
            HTuple htuple = HalconAPI.LoadTuple(tuple);

            HDevEngine.HCkE(HalconAPI.DestroyTuple(tuple));
            return(htuple);
        }
コード例 #11
0
ファイル: EngineAPI.cs プロジェクト: zshankang/OpenHalcon
        internal static void GetProcedureInfo(
            IntPtr procedure,
            out string name,
            out string shortDescription,
            out bool loaded,
            out HTuple parNamesIconicInput,
            out HTuple parNamesIconicOutput,
            out HTuple parNamesCtrlInput,
            out HTuple parNamesCtrlOutput,
            out HTuple parDimsIconicInput,
            out HTuple parDimsIconicOutput,
            out HTuple parDimsCtrlInput,
            out HTuple parDimsCtrlOutput)
        {
            IntPtr tuple1;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple1));
            IntPtr tuple2;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple2));
            IntPtr tuple3;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple3));
            IntPtr tuple4;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple4));
            IntPtr tuple5;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple5));
            IntPtr tuple6;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple6));
            IntPtr tuple7;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple7));
            IntPtr tuple8;

            EngineAPI.HCkE(HalconAPI.CreateTuple(out tuple8));
            IntPtr name1;
            IntPtr shortDescription1;

            EngineAPI.HCkE(EngineAPI.HCenGetProcedureInfo(procedure, out name1, out shortDescription1, out loaded, tuple1, tuple2, tuple3, tuple4, tuple5, tuple6, tuple7, tuple8));
            name                 = Marshal.PtrToStringAnsi(name1);
            shortDescription     = Marshal.PtrToStringAnsi(shortDescription1);
            parNamesIconicInput  = HalconAPI.LoadTuple(tuple1);
            parNamesIconicOutput = HalconAPI.LoadTuple(tuple2);
            parNamesCtrlInput    = HalconAPI.LoadTuple(tuple3);
            parNamesCtrlOutput   = HalconAPI.LoadTuple(tuple4);
            parDimsIconicInput   = HalconAPI.LoadTuple(tuple5);
            parDimsIconicOutput  = HalconAPI.LoadTuple(tuple6);
            parDimsCtrlInput     = HalconAPI.LoadTuple(tuple7);
            parDimsCtrlOutput    = HalconAPI.LoadTuple(tuple8);
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple1));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple2));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple3));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple4));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple5));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple6));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple7));
            EngineAPI.HCkE(HalconAPI.DestroyTuple(tuple8));
        }