示例#1
0
        public static int Load(IntPtr tuple, out HTupleInt32 data)
        {
            int length;

            HalconAPI.GetTupleLength(tuple, out length);
            int[] numArray = new int[length];
            int   iarr     = HalconAPI.GetIArr(tuple, numArray);

            data = new HTupleInt32(numArray, false);
            return(iarr);
        }
示例#2
0
        public static int Load(IntPtr tuple, out HTupleInt64 data)
        {
            int length;

            HalconAPI.GetTupleLength(tuple, out length);
            long[] numArray = new long[length];
            int    larr     = HalconAPI.GetLArr(tuple, numArray);

            data = new HTupleInt64(numArray, false);
            return(larr);
        }
示例#3
0
        public static int Load(IntPtr tuple, out HTupleDouble data)
        {
            int length;

            HalconAPI.GetTupleLength(tuple, out length);
            double[] numArray = new double[length];
            int      darr     = HalconAPI.GetDArr(tuple, numArray);

            data = new HTupleDouble(numArray, false);
            return(darr);
        }
示例#4
0
        public static int Load(IntPtr tuple, out HTupleMixed data)
        {
            int err = 2;
            int length;

            HalconAPI.GetTupleLength(tuple, out length);
            object[] o = new object[length];
            for (int index = 0; index < length; ++index)
            {
                if (!HalconAPI.IsFailure(err))
                {
                    HTupleType type;
                    HalconAPI.GetElementType(tuple, index, out type);
                    switch (type)
                    {
                    case HTupleType.INTEGER:
                        if (HalconAPI.isPlatform64)
                        {
                            long longValue;
                            err      = HalconAPI.GetL(tuple, index, out longValue);
                            o[index] = (object)longValue;
                            continue;
                        }
                        int intValue;
                        err      = HalconAPI.GetI(tuple, index, out intValue);
                        o[index] = (object)intValue;
                        continue;

                    case HTupleType.DOUBLE:
                        double doubleValue;
                        err      = HalconAPI.GetD(tuple, index, out doubleValue);
                        o[index] = (object)doubleValue;
                        continue;

                    case HTupleType.STRING:
                        string stringValue;
                        err      = HalconAPI.GetS(tuple, index, out stringValue);
                        o[index] = (object)stringValue;
                        continue;

                    default:
                        continue;
                    }
                }
            }
            data = new HTupleMixed(o, false);
            return(err);
        }
示例#5
0
        private static int HCkSingle(IntPtr tuple, HTupleType expectedType)
        {
            int length = 0;

            if (tuple != IntPtr.Zero)
            {
                HalconAPI.GetTupleLength(tuple, out length);
            }
            if (length <= 0)
            {
                return(7001);
            }
            HTupleType type;

            HalconAPI.GetElementType(tuple, 0, out type);
            return(type != expectedType ? 7002 : 2);
        }
示例#6
0
        public static int Load(IntPtr tuple, out HTupleString data)
        {
            int err = 2;
            int length;

            HalconAPI.GetTupleLength(tuple, out length);
            string[] s = new string[length];
            for (int index = 0; index < length; ++index)
            {
                if (!HalconAPI.IsFailure(err))
                {
                    err = HalconAPI.GetS(tuple, index, out s[index]);
                }
            }
            data = new HTupleString(s, false);
            return(err);
        }