Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #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));
        }
Example #4
0
        /// <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));
        }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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);
        }
Example #7
0
        /// <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);
        }
Example #8
0
        /// <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);
        }
Example #9
0
        /// <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);
        }
Example #10
0
        /// <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);
        }
Example #11
0
        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));
        }