/// <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); } }
/// <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); } }
/// <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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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); } }
public unsafe static extern int xiProcSetParam(void *processing_handle, string prm, void *val, int size, PRM_TYPE type);
public unsafe static extern int xiSetParam(void *hDevice, string prm, void *val, int size, PRM_TYPE type);