From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



启用NI-TCLK对NI模块化仪器.NET Source Code Wrapper的支持



主要软件: Measurement Studio>>Measurement Studio for .NET Support
主要软件版本: 2015
主要软件修正版本: N/A
次要软件: Driver Software>>NI-FGEN, Driver Software>>NI-DCPower, Driver Software>>NI-HSDIO, Driver Software>>NI-DMM, Driver Software>>NI-RFSA, Driver Software>>NI-RFSG

问题:

我正在使用一个模块化仪器编写.NET source code wrapper API,并且我想使用NI-TCLK技术来同步一些模块化仪器设备。我注意到T Clock库对 ITClockSynchronizableDevice 接口的操作,但是我所使用的源代码编码器不能实现它,即使它可以控制与NI-TClk兼容的设备。

那么我怎么样才能使用.NET Source Code Wrapper实现 ITClockSynchronizableDevice 的接口操作?



解答: 要在.NET Source Code Wrapper中实现ITClockSynchronizableDevice 的操作,请完成以下步骤:
  1. 在项目中添加对NationalInstruments.ModularInstruments.Common程序集的引用. 右键单击资源管理器的引用, 选择添加引用, 然后在管理器窗口的“扩展”选项卡中,为正在使用的.NET框架版本选择NationalInstruments.ModularInstruments.Common的版本。
    注意: NationalInstruments.ModularInstruments.CommonNI native .NET APIs将一起安装.您可以在National Instruments .NET Driver Support 文档中找到其下载地址。
  2. 将以下句子添加源代码的顶部
    using NationalInstruments.ModularInstruments;


  3. 修改驱动程序类定义以实现ITClockSynchronizableDevice 接口. 针对于名为niMyDriver的示例驱动程序,如下:

    class niMyDriver: object, System.IDisposable, ITClockSynchronizableDevice {    // ... }

  4. 在驱动程序类上实现ITClockSynchronizableDevice 接口. ITClockSynchronizableDevice 接口邀请您实现一个read-only的属性,该属性返回对底层模块化一起的会话句柄。
    请右键单击Implement Interface»Implement Interface. 这将生成以下代码,您需要修改这些代码以实现仅定义单个属性的接口:

    public HandleRef Handle {    get { throw new NotImplementedException(); } }

    需要修改的 .NET 源代码应包含一个_handle 的字段,用于在 PInvoke 类上调用方法时标识驱动程序对话._handle 字段可以作为.IntPtr 或者 HandleRef 类型的实现。为了在Handle 类型的.IntPtrI系统下实现TClockSynchronizableDevice 接口,请为 _handle 属性返回一个新的HandleRef:

    public HandleRef Handle {    get    {       return new HandleRef( this, this._handle );    } }

    为了实现ITClockSynchronizableDevice 接口,请在_handle 的属性中返回如下字段
    public HandleRef Handle {    get { return this._handle; } }

一旦实现了ITClockSynchronizableDevice 接口,就可以使用NI-TClk库 , NationalInstruments.ModularInstruments.TClock来同步您的仪器。请安装支持,NI-TClk 同步的硬件 (例如 NI-SCOPE).NI 本地的.NET API安装程序演示了如何使用NI-TClk的范例,以及包含帮助文档。

相关链接: Product Documentation: National Instruments .NET Driver Support

KnowledgeBase 6ZKGR0D9: Accessing Modular Instruments Driver Attributes through an NI Native .NET API

KnowledgeBase 70IKG6D9: Accessing Driver C API Functions Not Exposed through an NI Native .NET Driver API

附件:





报告日期: 07/23/2015
最近更新: 10/30/2016
文档编号: 6ZMFG7D9