60 var parameters =
new Backend.Types.peak_icv_calibration_parameters();
62 DllHelper.ExecuteAndMapReturnCodes(() =>
63 CInterface.peak_icv_CalibrationParameters_CreateFromFile(
65 (nuint) Marshal.SizeOf<Backend.Types.peak_icv_calibration_parameters>(),
66 Utils.ToUtf8(filePath)));
103 DllHelper.ExecuteAndMapReturnCodes(() =>
104 CInterface.peak_icv_ValidateBinary(data, (nuint) data.Length, out isValid));
111 var calibrationParameters =
new Backend.Types.peak_icv_calibration_parameters();
112 DllHelper.ExecuteAndMapReturnCodes(() =>
113 CInterface.peak_icv_CalibrationParameters_CreateFromBinary(data,
115 out calibrationParameters,
116 (nuint) Marshal.SizeOf<Backend.Types.peak_icv_calibration_parameters>()));
130 internal CalibrationParameters(Backend.Types.peak_icv_calibration_parameters calibrationParameters) : this(
152 public static IEqualityComparer<CalibrationParameters>
Comparer {
get; } =
153 new CalibrationParametersEqualityComparer();
164 Backend.Types.peak_icv_calibration_parameters parameters = ToCType();
166 nuint binarySize = 0;
167 DllHelper.ExecuteAndMapReturnCodes(() =>
168 CInterface.peak_icv_CalibrationParameters_ToBinaryGetSizeInBytes(
169 (nuint) Marshal.SizeOf<Backend.Types.peak_icv_calibration_parameters>(), out binarySize));
171 var binary =
new byte[(int) binarySize];
172 DllHelper.ExecuteAndMapReturnCodes(() =>
173 CInterface.peak_icv_CalibrationParameters_ToBinary(
175 (nuint) Marshal.SizeOf<Backend.Types.peak_icv_calibration_parameters>(),
188 return $
"IntrinsicParameters: ({IntrinsicParameters}), ExtrinsicParameters: ({ExtrinsicParameters})";
204 internal Backend.Types.peak_icv_calibration_parameters ToCType()
206 return new Backend.Types.peak_icv_calibration_parameters
213 private sealed class CalibrationParametersEqualityComparer : IEqualityComparer<CalibrationParameters>
217 if (ReferenceEquals(x, y))
222 if (ReferenceEquals(x,
null))
227 if (ReferenceEquals(y,
null))
243 private static class CInterface
245 [DllImport(Global.LibraryName, CallingConvention = Global.CallingConvention)]
246 public static extern Backend.Types.peak_icv_status peak_icv_CalibrationParameters_CreateFromFile(
247 out Backend.Types.peak_icv_calibration_parameters calibrationParameters,
248 nuint calibrationParametersSize,
251 [DllImport(Global.LibraryName, CallingConvention = Global.CallingConvention)]
252 public static extern Backend.Types.peak_icv_status peak_icv_CalibrationParameters_ToBinaryGetSizeInBytes(
253 nuint calibrationParametersSize,
254 out nuint binarySize);
256 [DllImport(Global.LibraryName, CallingConvention = Global.CallingConvention)]
257 public static extern Backend.Types.peak_icv_status peak_icv_CalibrationParameters_ToBinary(
258 Backend.Types.peak_icv_calibration_parameters calibrationParameters,
259 nuint calibrationParametersSize,
260 [Out]
byte[] binaryParameters,
261 nuint binaryParametersSize);
263 [DllImport(Global.LibraryName, CallingConvention = Global.CallingConvention)]
264 public static extern Backend.Types.peak_icv_status peak_icv_ValidateBinary(
267 [MarshalAs(UnmanagedType.I1)] out
bool isValid);
269 [DllImport(Global.LibraryName, CallingConvention = Global.CallingConvention)]
270 public static extern Backend.Types.peak_icv_status peak_icv_CalibrationParameters_CreateFromBinary(
271 [In]
byte[] binaryParameters,
272 nuint binaryParametersSize,
273 out Backend.Types.peak_icv_calibration_parameters calibrationParameters,
274 nuint calibrationParametersSize