999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種IVI-COM儀器驅動程序的設計方法

2020-03-27 17:02:10朱建剛
儀器儀表用戶 2020年4期
關鍵詞:設置信號功能

朱建剛

(中電科儀器儀表有限公司,山東 青島 266555)

在測試領域,虛擬儀器技術是最新的自動測試技術之一。IVI儀器驅動程序在虛擬儀器驅動程序層面上定義了全新的規范和架構,使同一類儀器實現了一定的互換性,降低了開發測試系統過程的成本。本文將介紹應用Nimbus Driver Studio開發IVI-COM驅動程序的過程,并在上位機編寫控制程序調用儀器驅動,實現對儀器的遠程控制。

1 IVI-COM儀器驅動程序介紹

IVI儀器驅動程序定義了儀器的編程接口,使儀器的硬件接口與測試系統的應用程序實現了分離,不僅將測試系統的開發變得更加高效,還使儀器具備了一定的可互換特性[1]。IVI規范主要定義了IVI類驅動器和IVI專用驅動器。IVI類驅動程序介于應用程序和IVI專用驅動程序之間,實現應用程序對專用驅動程序的調用。IVI專用驅動程序是實現儀器控制的主要驅動程序,包括類兼容專用驅動程序和定制專用驅動程序[2]。

圖1 IVI驅動結構圖Fig.1 IVI Drive structure diagram

COM是一種以組件為發布單元的對象模型,它定義了不同組件之間的交互規范。1個組件的形式是1個動態鏈接庫(dll)或1個可執行文件(exe)。COM組件在提供組件接口標準的同時,還引入了面向對象的思想,每個COM組件對應1個或多個COM對象,每個對象包含多個接口,每個接口又由多個用來實現用戶應用程序功能的函數組成[3]。

IVI-COM儀器驅動程序是應用了COM API的IVI驅動程序,而僅是IVI-COM驅動程序中的API并不能實現儀器的互換性,IVI基金會為此定義了IVI-COM會話工廠(IVICOM Session Factory)組件。應用程序通過邏輯名訪問IVICOM會話工廠,會話工廠通過該邏輯名與IVI配置文件中的邏輯名匹配,得到實際的IVI-COM驅動器指針,從而實現動態加載IVI-COM驅動器的動態庫[4]。驅動程序包含儀器通用功能對應的操作函數,通過操作函數實現對儀器的控制[5],IVI驅動結構如圖1所示。

2 IVI-COM儀器驅動程序設計開發

Nimbus Driver Studio軟件集成在Microsoft Visual Studio開發環境下,可以完成IVI-COM以及IVI-C儀器驅動程序的開發工作。接下來,以IviRFSigGen射頻信號發生器類規范的儀器驅動程序“Ceyear1435RfSigGen”為例,設計某款信號發生器的IVI-COM儀器驅動程序。

2.1 搭建開發環境

本次開發基于Microsoft Windows 7操作系統,首先安裝Microsoft Visual Studio 2010軟件包;之后安裝Nimbus開發組件。其中,Nimbus組件集成在Visual Studio 2010開發環境下。

2.2 創建IVI-COM儀器驅動框架

啟動Visual Studio 2010,在新建項目對話框中選擇IVI-COM Projects下的IVI-COM Driver模板。根據生成向導,依次添加項目的名稱、儀器類(IviRFSigGen類)、LXI類型以及屬性等,生成IVI-COM驅動解決方案,并建立驅動框架。解決方案中各工程之間的關系如圖2所示。

圖2 驅動解決方案包含工程之間關系Fig.2 Relationship between projects in driving solutions

IVI-COM儀器驅動程序包含3個根接口,分別是IIviDriver、IIviRFSigGen及ICeyear1435RfSigGen。 其中,IIviDriver是儀器固有功能根接口,該接口下包含IiviComponentIdentity、IIviDriver、IiviDriverIdentity、IiviDriverOperation及IiviDriverUtility共5個子接口,該接口具有可互換性;IIviRFSigGen是儀器類兼容根接口,該接口是射頻信號發生器類儀器基本功能的實現接口,包含的功能子接口有ALC、AnalogModulation(包含AM、FM及PM)、DigitalModulation( 包 含Arb及Base)、IQ、LFGenerator、PulseGenerator、PulseModulation、ReferenceOscillator、RF、Sweep等[6],該接口具有可互換性;ICeyear1435RfSigGen是儀器專用功能根接口,該接口是開發者基于儀器的功能而添加的專用接口,包含的具體接口由儀器本身功能決定,儀器的全部功能都能在該接口下實現,該接口不具備可互換性。

2.3 設計開發IVI-COM驅動

在IVI-COM驅動程序中,每個功能都被設計成1個包含屬性或者方法的接口,各個接口之間可以相互調用。其中,屬性一般只包含1個參數,1個屬性的讀取以及設置分別由1個前綴為“get_”和“put_”的函數實現。方法包含的參數不受限制,設置方式靈活多變,能實現更為復雜的儀器功能。屬性和方法的實現方式類似,如果實現方式簡單,直接在Instrument command選項中設置程控命令即可,但要是單獨的程控命令不能很好地實現所要添加的功能,則需要在CoCeyear435RfSigGen中詳細設計實現的源代碼。

IIviDriver根接口與IIviRFSigGen根接口下的功能是信號發生器類儀器的通用接口,這類接口下的功能是確定的。IIviDriver根接口下的功能接口控制函數源代碼在驅動框架建立時已自動生成。IIviRFSigGen根接口支持IVI規范“IVI-4.10_RfSigGen”中對射頻信號發生器類儀器所定義的屬性和方法,該根接口下的大部分功能在專用接口中已經實現,可直接調用專用接口下相應的功能接口函數即可。ICeyear1435RfSigGen根接口包含儀器全部功能,在該根接口下按儀器功能分類添加子功能接口,各子功能接口就可以通過添加屬性或方法來實現儀器的具體功能。屬性的添加過程如圖3所示,方法的添加過程與屬性類似。

圖3 屬性添加流程圖Fig.3 Add property flowchart

依照上述步驟將信號發生器的全部功能,以屬性或方法的形式添加到對應的子功能接口下,并設計好實現的程序代碼。

2.4 生成IVI-COM驅動幫助文檔與安裝包

在解決方案“Ceyear1435RfSigGen”屬性頁中配置屬性,選擇需要生成的項目配置后編譯驅動程序。在驅動程序各項編譯成功后,儀器的幫助文檔在解決方案***Helpin下生成,儀器驅動的安裝包在***Setupin下生成。

3 驗證IVI-COM驅動程序

在上位機上安裝IVI-COM儀器驅動之前,需要確保IVI Shared Components組件已成功安裝。驅動安裝目錄為C:Program FilesIVI FoundationIVI。驅動安裝成功后,需要設置IVI配置倉,這里應用NI-MAX軟件完成該設置。MAX會自動識別已安裝的驅動,通過設置邏輯名關聯到驅動并對驅動進行管理。在MAX軟件里添加邏輯名“Ceyear1435”,將之關聯驅動“Ceyear1435RfSigGen”,配置好資源描述、資源地址等信息,最后通過“Save IVI Configuration”保存設置。MAX軟件配置界面如圖4所示。

通過邏輯名調用IVI-COM驅動的控制程序主要代碼為:

#import “GlobMgr.dll” no_namespace

#import “IviDriverTypeLib.dll” no_namespace

圖4 儀器驅動程序配置界面Fig.4 Instrument driver configuration interface

#import “IviRFSigGenTypeLib.dll” no_namespace

IIviDriverPtr spDriver(_uuidof(Ceyear1435RfSigGen));

spDriver->Initialize((“Ceyear1435”), VARIANT_FALSE,VARIANT_FALSE, _T(“”));

IIviRFSigGenPtr spSS(spDriver);

spSS->RF->Frequency = XXX; //設置頻率

spSS->RF->Level = XXX; //設置功率

……

spDriver->Close();

通過網線連接儀器與上位機后,在上位機上運行測試程序,此時信號發生器前面板顯示“遠控”狀態,且儀器的頻率及功率等均按要求進行了設置,證明了本文設計的IVI-COM儀器驅動的有效性。將連接的信號發生器替換為另外某款信號發生器,只需在MAX軟件中對儀器驅動進行重新配置,并修改測試程序中的邏輯名與之相對應即可,其他部分無需改動。經過實際測試,測試程序可通過切換邏輯名測試不同的儀器,證明了IVI-COM儀器驅動具有良好的可互換性。

4 結束語

本文設計并實現了某款信號發生器的IVI-COM儀器驅動程序,經驗證該驅動能有效的對儀器進行控制;同時通過試驗證明IVI-COM儀器驅動程序具有一定的可互換性,降低了開發人員的測試時間,具有顯著的實用價值,已成功應用于數款信號發生器。

猜你喜歡
設置信號功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
關于非首都功能疏解的幾點思考
基于LabVIEW的力加載信號采集與PID控制
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 精品国产成人三级在线观看| 思思99思思久久最新精品| 91人人妻人人做人人爽男同| 国产成人免费高清AⅤ| 国产在线观看精品| 日本人真淫视频一区二区三区| 亚洲天堂高清| 亚洲无码高清一区| 亚洲男人在线天堂| a毛片在线免费观看| 99视频在线免费观看| 岛国精品一区免费视频在线观看| 她的性爱视频| 国产免费高清无需播放器| 亚洲无线一二三四区男男| 红杏AV在线无码| 欧美不卡视频在线观看| 国产嫩草在线观看| 国产一区二区三区精品久久呦| av一区二区三区高清久久| 国产草草影院18成年视频| 日韩av无码精品专区| 亚洲无码不卡网| 色婷婷亚洲综合五月| 91娇喘视频| 91麻豆精品国产高清在线| 亚洲人成日本在线观看| 成人无码一区二区三区视频在线观看 | 蜜臀AVWWW国产天堂| 国产成人欧美| 在线观看国产精品一区| 欧美区一区| 欧美19综合中文字幕| 日本国产一区在线观看| 91精品在线视频观看| 国产手机在线观看| 无码在线激情片| 国产精品入口麻豆| 极品性荡少妇一区二区色欲| 伊人久久福利中文字幕| 99久久精品国产综合婷婷| 亚洲天堂首页| 女人18毛片水真多国产| 57pao国产成视频免费播放| 精品人妻一区二区三区蜜桃AⅤ| 中文字幕 欧美日韩| 欧美精品亚洲精品日韩专区va| 一区二区三区在线不卡免费| 亚洲精品天堂自在久久77| 亚洲天堂久久久| 最新加勒比隔壁人妻| 中文字幕资源站| 91娇喘视频| 国产99视频在线| 夜夜爽免费视频| 国产91视频免费观看| 青青操国产| 免费一看一级毛片| 蜜臀AV在线播放| 国产精品欧美日本韩免费一区二区三区不卡 | 国产福利一区二区在线观看| 日本在线免费网站| 国产激爽爽爽大片在线观看| 91欧美在线| 国产精品19p| 午夜一级做a爰片久久毛片| hezyo加勒比一区二区三区| 国产菊爆视频在线观看| 色综合中文字幕| 99精品在线看| 久久无码av一区二区三区| 亚洲欧美日韩成人在线| 久久久久无码国产精品不卡| 免费无码AV片在线观看中文| 1769国产精品视频免费观看| 国产视频入口| 五月婷婷丁香色| 日韩国产综合精选| 亚洲第一页在线观看| 亚洲无码37.| 在线欧美a| 亚洲成人黄色在线|