Exemple #1
0
        /// <summary>
        /// This function returns parameters information (current value, minimum, maximum, info).
        /// </summary>
        /// <param name="prm">Parameter name string. Use class PRM to get parameters.</param>
        /// <param name="val">Float value to be returned.</param>
        public unsafe void GetParam(string prm, out float val)
        {
            int      num      = 0;
            PRM_TYPE pRM_TYPE = PRM_TYPE.TypeFloat;
            int      num2     = 4;

            val = 0f;
            try
            {
                try
                {
                    fixed(float *val2 = &val)
                    {
                        num = ximeaApi.xiGetParam((void *)handle, prm, val2, &num2, &pRM_TYPE);
                    }
                }
                finally
                {
                }
            }
            catch
            {
                num = 1;
            }
            if (num != 0)
            {
                throw new xiExc(num, "GetParam " + prm);
            }
        }
Exemple #2
0
        /// <summary>
        /// This function returns parameters information (current value, minimum, maximum, info).
        /// </summary>
        /// <param name="prm">Parameter name string. Use class PRM to get parameters.</param>
        /// <param name="val">Byte array value to be returned.</param>
        /// <param name="val_len">Byte array lenght to be returned.</param>
        public unsafe void GetParam(string prm, out byte[] val, out int val_len)
        {
            int      num      = 0;
            PRM_TYPE pRM_TYPE = PRM_TYPE.TypeString;
            int      num2     = 1;

            val_len = 0;
            val     = new byte[0];
            try
            {
                ximeaApi.xiGetParam((void *)handle, prm, null, &num2, &pRM_TYPE);
                byte[] array = new byte[num2];
                try
                {
                    byte[] array2 = array;
                    fixed(byte *val2 = array2)
                    {
                        num = ximeaApi.xiGetParam((void *)handle, prm, val2, &num2, &pRM_TYPE);
                        if (num == 0)
                        {
                            val     = array;
                            val_len = num2;
                        }
                        else
                        {
                            Array.Clear(val, 0, val.Length);
                        }
                    }
                }
                finally
                {
                }
            }
            catch
            {
                num = 1;
            }
            if (num != 0)
            {
                throw new xiExc(num, "GetParam " + prm);
            }
        }
Exemple #3
0
        /// <summary>
        /// Gets the selected parameter from processing.
        /// </summary>
        /// <param name="prm">Parameter name string. Use class PRM to get parameters.</param>
        /// <returns>Integer value to be returned.</returns>
        public unsafe float ProcGetParamFloat(string prm)
        {
            int      num      = 0;
            PRM_TYPE pRM_TYPE = PRM_TYPE.TypeFloat;
            int      num2     = 4;
            float    result   = 0f;

            try
            {
                num = ximeaApi.xiProcGetParam((void *)handle, prm, &result, &num2, &pRM_TYPE);
            }
            catch
            {
                num = 1;
            }
            if (num != 0)
            {
                throw new xiExc(num, "xiProcGetParamFloat " + prm);
            }
            return(result);
        }
Exemple #4
0
        /// <summary>
        /// Gets the selected parameter from processing.
        /// </summary>
        /// <param name="prm">Parameter name string. Use class PRM to get parameters.</param>
        /// <returns>Integer value to be returned.</returns>
        public unsafe int ProcGetParamInt(string prm)
        {
            PRM_TYPE pRM_TYPE = PRM_TYPE.TypeInteger;
            int      num      = 0;
            int      num2     = 4;
            int      result   = 0;

            try
            {
                num = ximeaApi.xiProcGetParam((void *)handle, prm, &result, &num2, &pRM_TYPE);
            }
            catch
            {
                num = 1;
            }
            if (num != 0)
            {
                throw new xiExc(num, "xiProcGetParamInt " + prm);
            }
            return(result);
        }
Exemple #5
0
        /// <summary>
        /// This function configures the device.
        /// </summary>
        /// <param name="prm">Parameter name string. Use class PRM to set parameters.</param>
        /// <param name="val">String value to be set.</param>
        public unsafe void SetParam(string prm, string val)
        {
            int      num  = 0;
            PRM_TYPE type = PRM_TYPE.TypeString;

            if (val.Length == 0)
            {
                throw new xiExc(101, "SetParam " + prm);
            }
            try
            {
                byte[] bytes  = Encoding.ASCII.GetBytes(val);
                IntPtr intPtr = Marshal.UnsafeAddrOfPinnedArrayElement(bytes, 0);
                num = ximeaApi.xiSetParam((void *)handle, prm, intPtr.ToPointer(), val.Length, type);
            }
            catch
            {
                num = 1;
            }
            if (num != 0)
            {
                throw new xiExc(num, "SetParam " + prm);
            }
        }
Exemple #6
0
        /// <summary>
        /// Gets the selected parameter from processing.
        /// </summary>
        /// <param name="prm">Parameter name string. Use class PRM to get parameters.</param>
        /// <returns>String value to be returned.</returns>
        public unsafe string ProcGetParam(string prm)
        {
            int      num      = 0;
            PRM_TYPE pRM_TYPE = PRM_TYPE.TypeString;
            int      num2     = 1;
            string   result   = string.Empty;

            try
            {
                ximeaApi.xiProcGetParam((void *)handle, prm, null, &num2, &pRM_TYPE);
                switch (pRM_TYPE)
                {
                case PRM_TYPE.TypeString:
                {
                    num2 += 10;
                    byte[] array = new byte[num2];
                    try
                    {
                        byte[] array2 = array;
                        fixed(byte *val = array2)
                        {
                            num    = ximeaApi.xiProcGetParam((void *)handle, prm, val, &num2, &pRM_TYPE);
                            result = ((num != 0) ? "" : Encoding.ASCII.GetString(array, 0, num2));
                        }
                    }
                    finally
                    {
                    }
                    break;
                }

                case PRM_TYPE.TypeFloat:
                {
                    float num4 = 0f;
                    num    = ximeaApi.xiProcGetParam((void *)handle, prm, &num4, &num2, &pRM_TYPE);
                    result = num4.ToString();
                    break;
                }

                case PRM_TYPE.TypeInteger:
                case PRM_TYPE.TypeBoolean:
                case PRM_TYPE.TypeCommand:
                {
                    int num3 = 0;
                    num    = ximeaApi.xiProcGetParam((void *)handle, prm, &num3, &num2, &pRM_TYPE);
                    result = num3.ToString();
                    break;
                }

                default:
                    num = 103;
                    break;
                }
            }
            catch
            {
                num = 1;
            }
            if (num != 0)
            {
                throw new xiExc(num, "xiProcGetParam " + prm);
            }
            return(result);
        }
Exemple #7
0
        /// <summary>
        /// This function returns parameters information (current value, minimum, maximum, info).
        /// </summary>
        /// <param name="prm">Parameter name string. Use class PRM to get parameters.</param>
        /// <param name="val">String value to be returned.</param>
        /// <param name="val_len">Buffer lenght to be returned.</param>
        public unsafe void GetParam(string prm, out string val, out int val_len)
        {
            int      num      = 0;
            PRM_TYPE pRM_TYPE = PRM_TYPE.TypeString;
            int      num2     = 1;

            val     = string.Empty;
            val_len = 0;
            try
            {
                switch (pRM_TYPE)
                {
                case PRM_TYPE.TypeString:
                {
                    num2 += 1046529;
                    byte[] array = new byte[num2];
                    try
                    {
                        byte[] array2 = array;
                        fixed(byte *val2 = array2)
                        {
                            num = ximeaApi.xiGetParam((void *)handle, prm, val2, &num2, &pRM_TYPE);
                            if (num == 0)
                            {
                                val     = Encoding.ASCII.GetString(array, 0, num2);
                                val_len = num2;
                            }
                            else
                            {
                                val = "";
                            }
                        }
                    }
                    finally
                    {
                    }
                    break;
                }

                case PRM_TYPE.TypeFloat:
                {
                    float num4 = 0f;
                    num     = ximeaApi.xiGetParam((void *)handle, prm, &num4, &num2, &pRM_TYPE);
                    val     = num4.ToString();
                    val_len = num2;
                    break;
                }

                case PRM_TYPE.TypeInteger:
                case PRM_TYPE.TypeBoolean:
                case PRM_TYPE.TypeCommand:
                {
                    int num3 = 0;
                    num     = ximeaApi.xiGetParam((void *)handle, prm, &num3, &num2, &pRM_TYPE);
                    val     = num3.ToString();
                    val_len = num2;
                    break;
                }

                default:
                    num = 103;
                    break;
                }
            }
            catch
            {
                num = 1;
            }
            if (num != 0)
            {
                throw new xiExc(num, "GetParam " + prm);
            }
        }
Exemple #8
0
 public unsafe static extern int xiProcSetParam(void *processing_handle, string prm, void *val, int size, PRM_TYPE type);
Exemple #9
0
 public unsafe static extern int xiSetParam(void *hDevice, string prm, void *val, int size, PRM_TYPE type);