将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。
This commit is contained in:
@@ -0,0 +1,199 @@
|
||||
using Prism.Events;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using XP.Hardware.Detector.Abstractions;
|
||||
using XP.Hardware.Detector.Abstractions.Enums;
|
||||
using XP.Hardware.Detector.Config;
|
||||
|
||||
namespace XP.Hardware.Detector.Implementations
|
||||
{
|
||||
/// <summary>
|
||||
/// iRay 探测器实现 | iRay detector implementation
|
||||
/// 继承抽象基类,实现 iRay 专属接口 | Inherits abstract base class, implements iRay specific interface
|
||||
/// 注意:iRay 探测器实现待后续完成,当前为占位符 | Note: iRay detector implementation to be completed later, currently placeholder
|
||||
/// </summary>
|
||||
public class IRayDetector : AreaDetectorBase, IIRayDetector
|
||||
{
|
||||
private readonly IRayDetectorConfig _config;
|
||||
private AcquisitionMode _acquisitionMode;
|
||||
private double _gain;
|
||||
|
||||
/// <summary>
|
||||
/// 探测器类型 | Detector type
|
||||
/// </summary>
|
||||
public override DetectorType Type => DetectorType.IRay;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数 | Constructor
|
||||
/// </summary>
|
||||
/// <param name="config">iRay 探测器配置 | iRay detector configuration</param>
|
||||
/// <param name="eventAggregator">事件聚合器 | Event aggregator</param>
|
||||
public IRayDetector(IRayDetectorConfig config, IEventAggregator eventAggregator)
|
||||
: base(eventAggregator)
|
||||
{
|
||||
_config = config ?? throw new ArgumentNullException(nameof(config));
|
||||
_acquisitionMode = config.AcquisitionMode;
|
||||
_gain = config.DefaultGain;
|
||||
}
|
||||
|
||||
#region IAreaDetector 抽象方法实现 | IAreaDetector abstract method implementations
|
||||
|
||||
/// <summary>
|
||||
/// 初始化探测器(内部实现)| Initialize detector (internal implementation)
|
||||
/// </summary>
|
||||
protected override Task<DetectorResult> InitializeInternalAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器初始化逻辑 | Implement iRay detector initialization logic
|
||||
throw new NotImplementedException("iRay 探测器初始化尚未实现 | iRay detector initialization not implemented yet");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 启动连续采集(内部实现)| Start continuous acquisition (internal implementation)
|
||||
/// </summary>
|
||||
protected override Task<DetectorResult> StartAcquisitionInternalAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器启动采集逻辑 | Implement iRay detector start acquisition logic
|
||||
throw new NotImplementedException("iRay 探测器启动采集尚未实现 | iRay detector start acquisition not implemented yet");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 停止采集(内部实现)| Stop acquisition (internal implementation)
|
||||
/// </summary>
|
||||
protected override Task<DetectorResult> StopAcquisitionInternalAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器停止采集逻辑 | Implement iRay detector stop acquisition logic
|
||||
throw new NotImplementedException("iRay 探测器停止采集尚未实现 | iRay detector stop acquisition not implemented yet");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单帧采集(内部实现)| Single frame acquisition (internal implementation)
|
||||
/// </summary>
|
||||
protected override Task<DetectorResult> AcquireSingleFrameInternalAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器单帧采集逻辑 | Implement iRay detector single frame acquisition logic
|
||||
throw new NotImplementedException("iRay 探测器单帧采集尚未实现 | iRay detector single frame acquisition not implemented yet");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 暗场校正(内部实现)| Dark field correction (internal implementation)
|
||||
/// </summary>
|
||||
protected override Task<DetectorResult> DarkCorrectionInternalAsync(int frameCount, CancellationToken cancellationToken)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器暗场校正逻辑 | Implement iRay detector dark correction logic
|
||||
throw new NotImplementedException("iRay 探测器暗场校正尚未实现 | iRay detector dark correction not implemented yet");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 增益校正(内部实现)| Gain correction (internal implementation)
|
||||
/// </summary>
|
||||
protected override Task<DetectorResult> GainCorrectionInternalAsync(int frameCount, CancellationToken cancellationToken)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器增益校正逻辑 | Implement iRay detector gain correction logic
|
||||
throw new NotImplementedException("iRay 探测器增益校正尚未实现 | iRay detector gain correction not implemented yet");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动校正(内部实现)| Auto correction (internal implementation)
|
||||
/// </summary>
|
||||
protected override Task<DetectorResult> AutoCorrectionInternalAsync(int frameCount, CancellationToken cancellationToken)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器自动校正逻辑 | Implement iRay detector auto correction logic
|
||||
throw new NotImplementedException("iRay 探测器自动校正尚未实现 | iRay detector auto correction not implemented yet");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 坏像素校正(内部实现)| Bad pixel correction (internal implementation)
|
||||
/// </summary>
|
||||
protected override Task<DetectorResult> BadPixelCorrectionInternalAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器坏像素校正逻辑 | Implement iRay detector bad pixel correction logic
|
||||
throw new NotImplementedException("iRay 探测器坏像素校正尚未实现 | iRay detector bad pixel correction not implemented yet");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取探测器信息 | Get detector information
|
||||
/// </summary>
|
||||
public override DetectorInfo GetInfo()
|
||||
{
|
||||
// TODO: 实现 iRay 探测器信息查询逻辑 | Implement iRay detector info query logic
|
||||
return new DetectorInfo
|
||||
{
|
||||
Type = DetectorType.IRay,
|
||||
Model = "iRay (待实现 | To be implemented)",
|
||||
SerialNumber = "N/A",
|
||||
FirmwareVersion = "N/A",
|
||||
MaxWidth = 0,
|
||||
MaxHeight = 0,
|
||||
PixelSize = 0.0,
|
||||
BitDepth = 16
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IIRayDetector 接口实现 | IIRayDetector interface implementations
|
||||
|
||||
/// <summary>
|
||||
/// 设置采集模式 | Set acquisition mode
|
||||
/// </summary>
|
||||
public Task<DetectorResult> SetAcquisitionModeAsync(AcquisitionMode mode)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器设置采集模式逻辑 | Implement iRay detector set acquisition mode logic
|
||||
_acquisitionMode = mode;
|
||||
return Task.FromResult(DetectorResult.Success($"采集模式已设置为 {mode}(占位符实现)| Acquisition mode set to {mode} (placeholder implementation)"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取采集模式 | Get acquisition mode
|
||||
/// </summary>
|
||||
public AcquisitionMode GetAcquisitionMode()
|
||||
{
|
||||
return _acquisitionMode;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置增益值 | Set gain value
|
||||
/// </summary>
|
||||
public Task<DetectorResult> SetGainAsync(double gain)
|
||||
{
|
||||
// TODO: 实现 iRay 探测器设置增益逻辑 | Implement iRay detector set gain logic
|
||||
_gain = gain;
|
||||
return Task.FromResult(DetectorResult.Success($"增益已设置为 {gain}(占位符实现)| Gain set to {gain} (placeholder implementation)"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取增益值 | Get gain value
|
||||
/// </summary>
|
||||
public double GetGain()
|
||||
{
|
||||
return _gain;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 资源释放 | Resource disposal
|
||||
|
||||
/// <summary>
|
||||
/// 释放资源 | Dispose resources
|
||||
/// </summary>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (!_disposed)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
// TODO: 释放 iRay 探测器托管资源 | Release iRay detector managed resources
|
||||
}
|
||||
|
||||
// TODO: 释放 iRay 探测器非托管资源 | Release iRay detector unmanaged resources
|
||||
|
||||
_disposed = true;
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,289 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace XP.Hardware.Detector.Implementations
|
||||
{
|
||||
/// <summary>
|
||||
/// XISL API 互操作层 | XISL API interop layer
|
||||
/// 封装 Varex 探测器的 xisl.dll 原厂 API
|
||||
/// </summary>
|
||||
public static class XISLApi
|
||||
{
|
||||
#region 枚举定义 | Enum Definitions
|
||||
|
||||
/// <summary>
|
||||
/// XISL API 返回码 | XISL API return codes
|
||||
/// </summary>
|
||||
public enum HIS_RETURN
|
||||
{
|
||||
HIS_ALL_OK = 0,
|
||||
HIS_Init = -1,
|
||||
HIS_ERROR_MEMORY = 1,
|
||||
HIS_ERROR_BOARDINIT = 2,
|
||||
HIS_ERROR_NOBOARD = 3,
|
||||
HIS_ERROR_NOCAMERA = 4,
|
||||
HIS_ERROR_TIMEOUT = 5,
|
||||
HIS_ERROR_INVALIDPARAM = 6,
|
||||
HIS_ERROR_ABORT = 7
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 常量定义 | Constant Definitions
|
||||
|
||||
/// <summary>
|
||||
/// 连续采集模式 | Continuous acquisition mode
|
||||
/// </summary>
|
||||
public const int HIS_SEQ_CONTINUOUS = 0x100;
|
||||
|
||||
/// <summary>
|
||||
/// 单帧采集模式(单缓冲区)| Single frame mode (one buffer)
|
||||
/// </summary>
|
||||
public const int HIS_SEQ_ONE_BUFFER = 0x2;
|
||||
|
||||
/// <summary>
|
||||
/// 采集数据标志:连续采集 | Acquisition data flag: continuous
|
||||
/// </summary>
|
||||
public const uint ACQ_CONT = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 采集数据标志:暗场校正 | Acquisition data flag: offset correction
|
||||
/// </summary>
|
||||
public const uint ACQ_OFFSET = 2;
|
||||
|
||||
/// <summary>
|
||||
/// 采集数据标志:增益校正 | Acquisition data flag: gain correction
|
||||
/// </summary>
|
||||
public const uint ACQ_GAIN = 4;
|
||||
|
||||
/// <summary>
|
||||
/// 采集数据标志:单帧采集 | Acquisition data flag: snap (single frame)
|
||||
/// </summary>
|
||||
public const uint ACQ_SNAP = 8;
|
||||
|
||||
/// <summary>
|
||||
/// 等待对象信号 | Wait object signaled
|
||||
/// </summary>
|
||||
public const uint WAIT_OBJECT_0 = 0x00000000;
|
||||
|
||||
/// <summary>
|
||||
/// 无限等待 | Infinite wait
|
||||
/// </summary>
|
||||
public const uint INFINITE = 0xFFFFFFFF;
|
||||
|
||||
/// <summary>
|
||||
/// 内部定时器同步模式 | Internal timer sync mode
|
||||
/// </summary>
|
||||
public const int HIS_SYNCMODE_INTERNAL_TIMER = 2;
|
||||
|
||||
#endregion
|
||||
|
||||
#region 回调函数委托 | Callback Delegates
|
||||
|
||||
/// <summary>
|
||||
/// 帧结束回调函数委托 | End frame callback delegate
|
||||
/// </summary>
|
||||
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
||||
public delegate void EndFrameCallback(IntPtr hAcqDesc);
|
||||
|
||||
/// <summary>
|
||||
/// 采集结束回调函数委托 | End acquisition callback delegate
|
||||
/// </summary>
|
||||
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
||||
public delegate void EndAcqCallback(IntPtr hAcqDesc);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Win32 API | Win32 API
|
||||
|
||||
/// <summary>
|
||||
/// 创建事件对象 | Create event object
|
||||
/// </summary>
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
public static extern IntPtr CreateEvent(IntPtr lpEventAttributes, bool bManualReset, bool bInitialState, string lpName);
|
||||
|
||||
/// <summary>
|
||||
/// 设置事件信号 | Set event signal
|
||||
/// </summary>
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern bool SetEvent(IntPtr hEvent);
|
||||
|
||||
/// <summary>
|
||||
/// 等待单个对象 | Wait for single object
|
||||
/// </summary>
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
public static extern uint WaitForSingleObject(IntPtr hHandle, uint dwMilliseconds);
|
||||
|
||||
/// <summary>
|
||||
/// 关闭句柄 | Close handle
|
||||
/// </summary>
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
public static extern bool CloseHandle(IntPtr hObject);
|
||||
|
||||
#endregion
|
||||
|
||||
#region XISL API - 基础函数 | XISL API - Basic Functions
|
||||
|
||||
/// <summary>
|
||||
/// 获取下一个探测器传感器 | Get next sensor
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_GetNextSensor", CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern HIS_RETURN Acquisition_GetNextSensor(ref IntPtr pAcqDesc, ref IntPtr hWnd);
|
||||
|
||||
/// <summary>
|
||||
/// 获取探测器配置信息 | Get detector configuration
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_GetConfiguration", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_GetConfiguration(
|
||||
IntPtr hAcqDesc, out uint dwFrames, out uint dwRows, out uint dwColumns,
|
||||
out uint dwDataType, out uint dwSortFlags, out int iIRQFlags,
|
||||
out uint dwAcqType, out uint dwSystemID, out uint dwSyncMode, out uint dwHwAccess);
|
||||
|
||||
/// <summary>
|
||||
/// 获取采集数据指针 | Get acquisition data pointer
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_GetAcqData", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_GetAcqData(IntPtr hAcqDesc, out IntPtr vpAcqData);
|
||||
|
||||
/// <summary>
|
||||
/// 设置采集数据标志 | Set acquisition data flags
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_SetAcqData", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_SetAcqData(IntPtr hAcqDesc, ref uint dwAcqData);
|
||||
|
||||
/// <summary>
|
||||
/// 定义目标缓冲区 | Define destination buffers
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_DefineDestBuffers", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_DefineDestBuffers(IntPtr hAcqDesc, IntPtr pBuffer, int iFrames, uint dwRows, uint dwColumns);
|
||||
|
||||
/// <summary>
|
||||
/// 设置回调函数和消息 | Set callbacks and messages
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_SetCallbacksAndMessages", CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern HIS_RETURN Acquisition_SetCallbacksAndMessages(
|
||||
IntPtr pAcqDesc,
|
||||
IntPtr hWnd,
|
||||
uint dwErrorMsg,
|
||||
uint dwLoosingFramesMsg,
|
||||
EndFrameCallback lpfnEndFrameCallback,
|
||||
EndAcqCallback lpfnEndAcqCallback);
|
||||
|
||||
/// <summary>
|
||||
/// 关闭所有连接 | Close all connections
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_CloseAll", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_CloseAll();
|
||||
|
||||
#endregion
|
||||
|
||||
#region XISL API - 参数设置 | XISL API - Parameter Settings
|
||||
|
||||
/// <summary>
|
||||
/// 设置 Binning 模式 | Set binning mode
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_SetCameraBinningMode", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_SetCameraBinningMode(IntPtr hAcqDesc, uint wMode);
|
||||
|
||||
/// <summary>
|
||||
/// 设置增益模式 | Set gain mode
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_SetCameraGain", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_SetCameraGain(IntPtr hAcqDesc, uint wMode);
|
||||
|
||||
/// <summary>
|
||||
/// 设置定时器同步(曝光时间)| Set timer sync (exposure time)
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_SetTimerSync", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_SetTimerSync(IntPtr hAcqDesc, ref uint wMode);
|
||||
|
||||
/// <summary>
|
||||
/// 设置帧同步模式 | Set frame sync mode
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_SetFrameSyncMode", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_SetFrameSyncMode(IntPtr hAcqDesc, uint dwMode);
|
||||
|
||||
/// <summary>
|
||||
/// 设置相机触发模式 | Set camera trigger mode
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_SetCameraTriggerMode", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_SetCameraTriggerMode(IntPtr hAcqDesc, uint dwMode);
|
||||
|
||||
#endregion
|
||||
|
||||
#region XISL API - 图像采集 | XISL API - Image Acquisition
|
||||
|
||||
/// <summary>
|
||||
/// 采集图像 | Acquire image
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_Acquire_Image", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_Acquire_Image(
|
||||
IntPtr hAcqDesc,
|
||||
uint dwFrames,
|
||||
uint dwSkipFrms,
|
||||
uint dwOpt,
|
||||
IntPtr pwOffsetData,
|
||||
IntPtr pdwGainData,
|
||||
IntPtr pdwPxlCorrList);
|
||||
|
||||
/// <summary>
|
||||
/// 停止采集 | Abort acquisition
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_Abort", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_Abort(IntPtr hAcqDesc);
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前帧号 | Get current frame number
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_GetActFrame", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_GetActFrame(IntPtr hAcqDesc, out uint dwActFrame, out uint dwSecFrame);
|
||||
|
||||
#endregion
|
||||
|
||||
#region XISL API - 校正功能 | XISL API - Correction Functions
|
||||
|
||||
/// <summary>
|
||||
/// 采集暗场图像 | Acquire offset image
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_Acquire_OffsetImage", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_Acquire_OffsetImage(IntPtr hAcqDesc, IntPtr pOffsetData, uint nRows, uint nCols, uint nFrames);
|
||||
|
||||
/// <summary>
|
||||
/// 采集增益图像 | Acquire gain image
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_Acquire_GainImage", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_Acquire_GainImage(IntPtr hAcqDesc, IntPtr pOffsetData, IntPtr pGainData, uint nRows, uint nCols, uint nFrames);
|
||||
|
||||
/// <summary>
|
||||
/// 创建增益映射 | Create gain map
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_CreateGainMap", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_CreateGainMap(IntPtr pGainData, IntPtr pGainAVG, int nCount, int nFrame);
|
||||
|
||||
/// <summary>
|
||||
/// 创建坏像素列表 | Create pixel map
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_CreatePixelMap", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_CreatePixelMap(IntPtr pData, int nDataRows, int nDataColumns, IntPtr pCorrList, ref int nCorrListSize);
|
||||
|
||||
/// <summary>
|
||||
/// 重置板载选项 | Reset onboard options
|
||||
/// </summary>
|
||||
[DllImport("xisl.dll", EntryPoint = "Acquisition_Reset_OnboardOptions", CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern HIS_RETURN Acquisition_Reset_OnboardOptions(IntPtr hAcqDesc);
|
||||
|
||||
#endregion
|
||||
|
||||
#region VarexDetDll API - Varex 探测器初始化 | VarexDetDll API - Varex Detector Initialization
|
||||
|
||||
/// <summary>
|
||||
/// 探测器底层初始化 | Detector low-level initialization
|
||||
/// 由 VarexDetDll.dll 提供,内部完成枚举、连接等底层操作
|
||||
/// 返回 0 表示成功 | Returns 0 on success
|
||||
/// </summary>
|
||||
[DllImport("VarexDetDll.dll", EntryPoint = "DoDetInit", CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern int DoDetInit(ref IntPtr hAcqDesc);
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user