• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于iOS的手機(jī)虛擬儀器瀏覽器的設(shè)計(jì)

      2017-12-15 00:53:38,,,
      計(jì)算機(jī)測(cè)量與控制 2017年11期
      關(guān)鍵詞:虛擬儀器腳本控件

      ,,,

      (華中科技大學(xué) 機(jī)械科學(xué)與工程學(xué)院,武漢 430074)

      基于iOS的手機(jī)虛擬儀器瀏覽器的設(shè)計(jì)

      吳玉葉,何嶺松,韋文姬,高志強(qiáng)

      (華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院,武漢430074)

      為了動(dòng)態(tài)調(diào)整手機(jī)端虛擬儀器的功能,提出了一種基于iOS平臺(tái)的手機(jī)虛擬儀器瀏覽器的設(shè)計(jì)方法;其主要原理是通過(guò)往瀏覽器中加載不同的虛擬儀器腳本,將瀏覽器變成不同的虛擬儀器;虛擬儀器的基本組成模塊是擁有多個(gè)輸入和輸出接口的控件,控件之間采用KVO模式進(jìn)行組裝和通訊,并采用腳本描述組裝。所有控件類(lèi)都繼承自UIView類(lèi),需要調(diào)用和重寫(xiě)UIView的部分函數(shù);信號(hào)發(fā)生顯示器的例子證明了虛擬儀器瀏覽器的可行性。

      iOS平臺(tái); 虛擬儀器瀏覽器; 控件; KVO模式

      0 引言

      虛擬儀器技術(shù)是指利用高性能的模塊化硬件,結(jié)合高效靈活的軟件來(lái)完成各種測(cè)試[1]。過(guò)去,虛擬儀器軟件僅存在于PC機(jī)上,例如NI公司開(kāi)發(fā)的LabView和LabWindows/CVI[2]等。近些年來(lái),智能手機(jī)的發(fā)展異常迅速,它的處理器性能越來(lái)越高端,根據(jù)2017年第一季度智能手機(jī)處理器性能排行榜,排名第一的是驍龍835處理器[3],主頻為1.9 GHz+2.45 GHz,并采用八核設(shè)計(jì),不弱于一般的PC機(jī)處理器。并且,智能手機(jī)與外部進(jìn)行通訊的方式也更加多樣化,既能通過(guò)有線(xiàn)方式例如USB、OTG等,也有藍(lán)牙、WiFi等無(wú)線(xiàn)方式,因此將虛擬儀器技術(shù)應(yīng)用于手機(jī)端已具備了很好的硬件基礎(chǔ)。

      在手機(jī)各大應(yīng)用市場(chǎng)上,可以找到一些虛擬儀器軟件,比如Heart Rate這款心率測(cè)試軟件。它的硬件模塊是手機(jī)閃光燈,用手指遮住閃光燈,通過(guò)感知手指透光率的變化來(lái)間接測(cè)量心率,軟件的作用是根據(jù)透光率值計(jì)算心率并顯示給用戶(hù)。然而,這些虛擬儀器軟件都只擁有一種或者幾種特定的測(cè)量功能,如果想實(shí)現(xiàn)不同功能,只能再次安裝新的App,這既繁瑣也占用了更多的存儲(chǔ)空間,使手機(jī)運(yùn)行速度減慢。為了改善這種狀況,本文在手機(jī)端設(shè)計(jì)了一個(gè)可以動(dòng)態(tài)改變測(cè)量功能的虛擬儀器瀏覽器,借鑒了網(wǎng)頁(yè)瀏覽器的模式,以腳本的形式描述儀器,只要往瀏覽器中加載不同的虛擬儀器腳本,經(jīng)瀏覽器解析后就能生成不同的虛擬儀器。對(duì)于虛擬儀器用戶(hù),只需安裝一個(gè)軟件就能實(shí)現(xiàn)各種測(cè)量功能;對(duì)于虛擬儀器開(kāi)發(fā)者,也不用再遵循編碼、編譯等復(fù)雜的軟件開(kāi)發(fā)流程,只要編寫(xiě)簡(jiǎn)單的腳本就能開(kāi)發(fā)出虛擬儀器。

      目前,智能手機(jī)的主流操作系統(tǒng)有Android和iOS兩種,據(jù)相關(guān)調(diào)查顯示,2017年第一季度智能手機(jī)全球市場(chǎng)占有率,安卓和iOS的比例分別為86.1%和13.7%,這兩者幾乎霸占了智能手機(jī)操作系統(tǒng)的全部江山[4]。與Android相比,iOS的優(yōu)點(diǎn)主要體現(xiàn)在兩方面:流暢性和安全性。流暢性而言,iOS的軟件與硬件的整合度非常高,使其分化大大降低,而Android則不是這樣,導(dǎo)致Android的碎片化很?chē)?yán)重,手機(jī)經(jīng)??D甚至死機(jī)。安全性而言,iOS用戶(hù)只能通過(guò)App Store才能下載和安裝軟件,App Store的審核機(jī)制非常嚴(yán)格,許多惡意軟件都被拒之門(mén)外,Android用戶(hù)的軟件下載途徑則五花八門(mén),安全性非常低[5]?;谝陨蟽?yōu)點(diǎn),本文選擇在iOS系統(tǒng)上開(kāi)發(fā)手機(jī)虛擬儀器瀏覽器。

      1 虛擬儀器瀏覽器工作原理

      虛擬儀器瀏覽器的工作原理如圖1所示。瀏覽器加載來(lái)自網(wǎng)絡(luò)、本地或者下位機(jī)的虛擬儀器腳本并對(duì)其解析后生成對(duì)應(yīng)的虛擬儀器,三種腳本的具體加載方式如下所述。

      圖1 虛擬儀器瀏覽器工作原理

      1)網(wǎng)絡(luò)腳本:網(wǎng)絡(luò)腳本存儲(chǔ)在云端,例如百度云盤(pán)、阿里云服務(wù)器等,如果腳本的權(quán)限設(shè)置為允許其他用戶(hù)訪(fǎng)問(wèn),瀏覽器就可以通過(guò)網(wǎng)絡(luò)直接向腳本的存儲(chǔ)地址發(fā)送請(qǐng)求獲取腳本數(shù)據(jù)。

      2)本地腳本:本地腳本存儲(chǔ)在虛擬儀器瀏覽器的應(yīng)用文件夾中。iOS的應(yīng)用文件夾稱(chēng)為沙盒,所有非代碼文件都存儲(chǔ)在沙盒中,每個(gè)應(yīng)用只能對(duì)自己的沙盒進(jìn)行訪(fǎng)問(wèn)。默認(rèn)情況下,每個(gè)沙盒含有3個(gè)文件夾:Documents、Library和tmp,Documents一般存儲(chǔ)程序中建立的或在程序中瀏覽到的文件,iTunes備份和恢復(fù)時(shí)會(huì)包括此目錄,本地腳本就存儲(chǔ)在Documents文件夾中[6]。將瀏覽器的info.plist文件的“Application supports iTunes file sharing”屬性值設(shè)為YES,用戶(hù)就能通過(guò)iTunus直接對(duì)本應(yīng)用的Documents文件夾進(jìn)行操作,例如往Documents文件夾中添加腳本。

      3)下位機(jī)腳本:下位機(jī)腳本存儲(chǔ)在硬件模塊例如sd卡中,正式測(cè)量開(kāi)始前,硬件模塊的微控制器可以通過(guò)藍(lán)牙、WiFi等方式將腳本發(fā)送給虛擬儀器瀏覽器。

      2 虛擬儀器瀏覽器實(shí)現(xiàn)方法

      虛擬儀器的基本組成模塊是控件,控件是具有某種功能的獨(dú)立模塊,把多個(gè)控件按照一定的邏輯順序組裝好后,就能形成一個(gè)完整的虛擬儀器。下文將圍繞控件介紹虛擬儀器瀏覽器的實(shí)現(xiàn)方法。

      2.1 iOS的KVO機(jī)制

      控件之間的通訊基于觀察者模式,觀察者模式定義了一種一對(duì)多的依賴(lài)關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某一個(gè)主題對(duì)象,這個(gè)主題對(duì)象在狀態(tài)上發(fā)生變化時(shí),會(huì)通知所有觀察者,使它們能夠更新自己或者做出相應(yīng)的一些動(dòng)作[7]。iOS的觀察者模式實(shí)現(xiàn)方式有Notification(通知)和KVO(Key-Value Observing,鍵值觀察)兩種,Notification發(fā)送的通知僅以名字標(biāo)識(shí),因此不同對(duì)象的對(duì)外通知必須取不同名字,KVO的通知?jiǎng)t通過(guò)發(fā)送者和屬性共同標(biāo)識(shí),不必給每個(gè)通知取特定名字,為了簡(jiǎn)化取名步驟,本文采用了KVO機(jī)制[8]。KVO的工作原理是:對(duì)象B觀察對(duì)象A的屬性N,當(dāng)屬性N由值1變?yōu)橹?時(shí),A會(huì)發(fā)送通知給B,告訴它屬性N的新值。KVO有兩種通知觸發(fā)方法,分別是自動(dòng)通知和手動(dòng)通知,自動(dòng)通知由系統(tǒng)自動(dòng)觸發(fā),手動(dòng)通知?jiǎng)t需要手動(dòng)書(shū)寫(xiě)代碼發(fā)出通知,但手動(dòng)通知更加靈活,可以自由決定發(fā)送通知的時(shí)間和方式,瀏覽器的控件關(guān)系并沒(méi)有特別復(fù)雜,因此可采用自動(dòng)通知的方法。本文所有控件類(lèi)都間接繼承自iOS的根類(lèi)NSObject,NSObject已經(jīng)實(shí)現(xiàn)了KVO機(jī)制,控件類(lèi)只需要調(diào)用KVO的相關(guān)函數(shù),就能使用它。使用KVO分三個(gè)步驟:(1)被觀察者注冊(cè)觀察關(guān)系;(2)觀察者實(shí)現(xiàn)通知送達(dá)自身時(shí)的回調(diào)方法;(3)被觀察者移除觀察關(guān)系。

      2.2 基于KVO的虛擬儀器控件化裝配模型

      2.2.1 支持KVO的多輸入多輸出控件模型

      KVO機(jī)制的觀察粒度是屬性,一個(gè)對(duì)象能夠觀察多個(gè)對(duì)象的多個(gè)屬性,它的屬性也能被多個(gè)對(duì)象觀察。因此,每個(gè)控件可以擁有多個(gè)輸入接口和多個(gè)輸出接口,每個(gè)輸入接口對(duì)應(yīng)一個(gè)觀察的屬性,每個(gè)輸出接口對(duì)應(yīng)一個(gè)自身對(duì)外屬性??丶^察的所有屬性中的任何一個(gè)屬性值發(fā)生變化,都會(huì)收到擁有此屬性的對(duì)象發(fā)送的通知,同樣,它的任何一個(gè)對(duì)外屬性值變化時(shí),也會(huì)給觀察此屬性的所有控件發(fā)送通知。

      2.2.2 虛擬儀器控件裝配原理

      利用輸入輸出接口可以實(shí)現(xiàn)控件之間的裝配,每個(gè)輸出接口都對(duì)應(yīng)一個(gè)自身對(duì)外屬性,將被觀察控件的輸出接口與觀察者控件的接收此屬性的輸入接口連接就能實(shí)現(xiàn)裝配。由于KVO是一種一對(duì)多關(guān)系,因此一個(gè)輸出接口可能會(huì)連接多個(gè)輸入接口,但每個(gè)輸入接口只能連接它所觀察屬性的輸出接口。假設(shè)控件B、C都觀察控件A的屬性a,那么A的屬性a輸出接口與B、C的接收屬性a的輸入接口相連。如上文所述,使用KVO有三步,第一步是注冊(cè)觀察關(guān)系,實(shí)質(zhì)就是連接輸入輸出接口,KVO注冊(cè)函數(shù)是-(void)addObserver:(NSObject*)observer forKeyPath:(NSString*)keyPath options:(NSKeyValue-ObservingOptions)options context:(nullable void*)context,此函數(shù)由被觀察控件調(diào)用,其中observer是觀察控件,keyPath是被觀察屬性,被觀察控件調(diào)用一次此函數(shù),相當(dāng)于連接了一個(gè)輸入和一個(gè)輸出接口。

      2.3 控件裝配描述方法

      虛擬儀器瀏覽器采用腳本作為描述控件裝配的工具,腳本語(yǔ)言選擇XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)。XML文件由文檔說(shuō)明和根元素組成,根元素只有一個(gè),但根元素里面可以包含若干子元素,子元素間相互獨(dú)立[9],每個(gè)子元素描述一個(gè)控件,若干控件子元素集結(jié)在一起就組裝成一個(gè)完整的虛擬儀器腳本,每個(gè)控件的通用描述格式如下所示。

      ControlName代表控件類(lèi)名,ID和Rect是每個(gè)控件必須具備的屬性,ID用于區(qū)別不同控件,Rect表示控件在虛擬儀器界面中的布局位置和高寬,Input是輸入屬性,Output是輸出屬性,在某些虛擬儀器中,有的控件可能不受其他控件狀態(tài)影響,可以省略其輸入屬性,有的控件可能沒(méi)被其他控件觀察,可以省略其輸出屬性,其它屬性根據(jù)控件種類(lèi)不同變化,下面一段腳本描述了一個(gè)麥克風(fēng)控件。

      Input的內(nèi)容包括被觀察控件ID、被觀察屬性和本控件對(duì)應(yīng)屬性,Output僅包含本控件的對(duì)外屬性。假設(shè)控件A的屬性a被控件B觀察,且B的屬性b與之相關(guān),則A的Output中對(duì)外屬性為屬性a,B的Input中被觀察控件ID為A的ID,被觀察屬性為屬性a,本控件對(duì)應(yīng)屬性為屬性b。根據(jù)麥克風(fēng)控件的Input屬性,它有五個(gè)輸入接口,分別對(duì)應(yīng)自身的switch(啟停)、fs(采樣頻率)、bit(采樣位數(shù))、gain(音頻信號(hào)增益)以及l(fā)ength(音頻信號(hào)輸出長(zhǎng)度)屬性;根據(jù)Output屬性,它只有一個(gè)輸出接口,對(duì)應(yīng)自身的audiodata(音頻數(shù)據(jù))屬性。

      2.4 基于UIView的控件定義

      iOS的開(kāi)發(fā)平臺(tái)Xcode已經(jīng)為開(kāi)發(fā)者提供了一些常用的控件,例如標(biāo)簽、按鈕等,但它們相互獨(dú)立,而虛擬儀器瀏覽器的所有控件必須遵循相同的接口原則,這樣才能相互通信。為了統(tǒng)一控件的開(kāi)發(fā)方法,提高開(kāi)發(fā)效率,本文所有控件類(lèi)都繼承自基礎(chǔ)視圖類(lèi)UIView,不會(huì)在Xcode已有控件類(lèi)的基礎(chǔ)上開(kāi)發(fā)。UIView表示屏幕上的一塊矩形區(qū)域,它負(fù)責(zé)渲染這片區(qū)域的內(nèi)容并且響應(yīng)該區(qū)域內(nèi)發(fā)生的觸摸事件。每個(gè)控件都包括控件ID、位置坐標(biāo)、高寬度、被觀察控件對(duì)象數(shù)組(observedControls)、被觀察屬性數(shù)組(observedProperties)和自身對(duì)應(yīng)屬性數(shù)組(correspondingProperties)這些通用屬性,還包括一些專(zhuān)有屬性。每個(gè)控件還要定義一個(gè)賦值函數(shù),其作用是根據(jù)控件腳本中的屬性值給實(shí)際對(duì)應(yīng)的屬性賦值,除了自定義函數(shù)外,控件類(lèi)還需要重寫(xiě)和調(diào)用UIView的部分函數(shù),如表1所示。

      表1 控件類(lèi)重寫(xiě)和調(diào)用函數(shù)

      2.5 滑動(dòng)條控件設(shè)計(jì)實(shí)例

      對(duì)于滑動(dòng)條控件,用戶(hù)可以拖動(dòng)滑塊位置調(diào)節(jié)滑動(dòng)條的輸出值,它也能根據(jù)外部傳進(jìn)來(lái)的值設(shè)定滑塊位置,因此滑動(dòng)條控件的輸入接口和輸出接口都需要實(shí)現(xiàn)。除了通用屬性外,滑動(dòng)條控件還包括minValue (輸出下限值,滑塊位于最左端)、maxValue(輸出上限值,滑塊位于最右端)、value(輸出值)和position(滑塊位置,取值范圍0到1)四個(gè)專(zhuān)有屬性。滑動(dòng)條控件只有一個(gè)輸入接口,對(duì)應(yīng)的自身屬性是position,這個(gè)輸入接口的實(shí)現(xiàn)如下所示。

      -(void)observeValueForKeyPath:(NSString*)keyPathofObject:(id)object change:(NSDictionary*)change context:(void*)context{

      @synchronized(self){//給本控件上鎖,防止線(xiàn)程沖突

      NSString* property;//本控件對(duì)應(yīng)屬性

      for(inti=0;i<[observedControls count];i++){

      if(object==[observedControlsobjectAtIndex:i]&&keyPath==[observedPropertiesobjectAtIndex:i]){

      property==[correspondingProperties objectAtIndex:i];break;

      }

      }

      id newValue=[change objectForKey:@”new”]//被觀察屬性的新值

      if([property isEqualToString:@”position”]){//對(duì)應(yīng)position屬性的輸入接口

      position=[newValuedoubleValue];

      ...//根據(jù)position計(jì)算滑塊坐標(biāo),重新繪制外形

      }

      }

      }

      在用戶(hù)開(kāi)始對(duì)滑塊進(jìn)行拖動(dòng)時(shí),系統(tǒng)會(huì)自動(dòng)進(jìn)入-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event函數(shù)中,需要重寫(xiě)這個(gè)函數(shù)。

      先根據(jù)用戶(hù)觸摸點(diǎn)坐標(biāo)計(jì)算value的值,再調(diào)用-(void)setValue:(id)value forKeyPath:(NSString*)keyPath函數(shù)對(duì)value屬性賦值,這樣系統(tǒng)就會(huì)感知到value的變化,自動(dòng)給所有觀察value屬性的控件發(fā)送通知,實(shí)現(xiàn)value屬性的輸出接口,輸出接口實(shí)現(xiàn)如下所示。

      -(void)touchesBegan:(NSSet*)touches withEvevt:(UIEvent*)event{

      UITouch* touch=[touches anyObject];

      CGPoint point=[touch locationInView:self];

      value=minValue+(maxValue-minValue)*point.x/width;//通過(guò)觸摸點(diǎn)坐標(biāo)計(jì)算滑塊輸出值

      [self setValue:[NSNumbernumberWithDouble:value]forKeyPath:@”value”];//實(shí)現(xiàn)value的輸出接口

      }

      3 虛擬儀器瀏覽器應(yīng)用實(shí)例

      虛擬儀器瀏覽器是基于iOS系統(tǒng)開(kāi)發(fā)的,目前只有iPhone系列手機(jī)使用iOS操作系統(tǒng),本文以iPhone5s作為試驗(yàn)手機(jī)。打開(kāi)應(yīng)用后,首先進(jìn)入瀏覽器主界面,如圖2(a)所示,主界面分為六個(gè)欄目,依次是瀏覽器介紹、藍(lán)牙通訊、WiFi通訊、網(wǎng)絡(luò)虛擬儀器庫(kù)、本地虛擬儀器庫(kù)以及下位機(jī)虛擬儀器庫(kù),其中,點(diǎn)擊藍(lán)牙通訊和WiFi通訊會(huì)進(jìn)入藍(lán)牙和WiFi的設(shè)置界面;點(diǎn)擊網(wǎng)絡(luò)虛擬儀器庫(kù),將彈出網(wǎng)絡(luò)腳本網(wǎng)址輸入框;點(diǎn)擊本地虛擬儀器庫(kù),會(huì)彈出列表顯示沙盒中所有腳本文件;點(diǎn)擊下位機(jī)虛擬儀器庫(kù),瀏覽器向已連接的下位機(jī)請(qǐng)求腳本數(shù)據(jù)。以加載本地腳本為例,選擇本地虛擬儀器庫(kù),如圖2(b)所示,選擇其中一個(gè)儀器腳本,然后選擇對(duì)腳本的操作,如圖2(c)所示,點(diǎn)擊生成儀器,就能對(duì)腳本進(jìn)行解析生成虛擬儀器界面。以信號(hào)發(fā)生顯示器為例,驗(yàn)證虛擬儀器瀏覽器的可行性。

      圖2 虛擬儀器瀏覽器界面

      工程實(shí)驗(yàn)中常用到信號(hào)發(fā)生器和示波器,信號(hào)發(fā)生器可以產(chǎn)生多種類(lèi)型的信號(hào),示波器則負(fù)責(zé)顯示輸入的信號(hào)波形,本文將這兩種裝置結(jié)合在一起,設(shè)計(jì)了一個(gè)信號(hào)發(fā)生顯示器。它由8個(gè)控件組成:按鈕控件1、多聯(lián)按鈕控件2、數(shù)字調(diào)節(jié)鈕控件3、標(biāo)簽控件4和6、滑動(dòng)條控件5、信號(hào)發(fā)生器控件7以及示波器控件8。工作原理是:用戶(hù)點(diǎn)擊按鈕,按鈕狀態(tài)改變,會(huì)發(fā)送通知給信號(hào)發(fā)生器,啟動(dòng)或停止發(fā)生器的工作,發(fā)生器工作時(shí),每隔固定時(shí)間就生成一定幅值、頻率、相移的信號(hào)數(shù)據(jù),用戶(hù)通過(guò)點(diǎn)擊多聯(lián)按鈕可以改變產(chǎn)生的信號(hào)類(lèi)型,點(diǎn)擊數(shù)字調(diào)節(jié)鈕改變信號(hào)幅值,拖動(dòng)滑動(dòng)條的滑塊改變信號(hào)頻率,兩個(gè)標(biāo)簽則負(fù)責(zé)顯示滑動(dòng)條的上下限值,不參與儀器運(yùn)行,信號(hào)波形由示波器的通道1顯示,當(dāng)發(fā)生器的信號(hào)數(shù)據(jù)改變時(shí),會(huì)發(fā)送通知給示波器,使之更新顯示的波形。下面是信號(hào)發(fā)生顯示器的簡(jiǎn)化腳本,圖3是它的運(yùn)行界面。

      圖3 信號(hào)發(fā)生顯示器運(yùn)行界面

      4 結(jié)束語(yǔ)

      本文分析了當(dāng)前智能手機(jī)的發(fā)展?fàn)顩r以及虛擬儀器技術(shù)在手機(jī)端的應(yīng)用現(xiàn)狀,在比較了iOS和Android的優(yōu)缺點(diǎn)之后,提出了一種基于iOS的手機(jī)虛擬儀器瀏覽器的設(shè)計(jì)方法。虛擬儀器瀏覽器以腳本為儀器載體,大大降低了虛擬儀器開(kāi)發(fā)者在手機(jī)端開(kāi)發(fā)虛擬儀器的難度,同時(shí)也提高了虛擬儀器用戶(hù)的使用體驗(yàn)。

      [1] 伍星華,王旭.國(guó)內(nèi)虛擬儀器技術(shù)的應(yīng)用研究現(xiàn)狀及展望[J].現(xiàn)代科學(xué)儀器,2011(4):112-116.

      [2] 崔紅梅,麻碩士,裴喜春,等.虛擬儀器及其軟件開(kāi)發(fā)平臺(tái)LabVIEW與LabWindows/CVI[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,25(1):87-90.

      [3] 白沛然.魯大師公布第一季度處理器TOP20:驍龍835奪冠[EB/OL].http://www.pcpop.com/doc/3/3966/3966133.shtml,2017.

      [4] 王彥恩.2017Q1蘋(píng)果iOS系統(tǒng)份額降1.1%安卓漲2%[EB/OL].http://mobile.zol.com.cn/640/6407752.html, 2017.

      [5] 孫曉文.iOS與Android操作系統(tǒng)的優(yōu)缺點(diǎn)比較[J].無(wú)線(xiàn)互聯(lián)科技,2013(12):51.

      [6] 趙 力.細(xì)數(shù)iOS上的那些安全防護(hù)[J].計(jì)算機(jī)與網(wǎng)絡(luò),2016,42(17):50-51.

      [7] 單丹丹,韓 冬.Android源碼中觀察者模式的運(yùn)用[J].電腦知識(shí)與技術(shù),2017(2):68-69.

      [8] 關(guān)東升.iOS開(kāi)發(fā)指南:從零基礎(chǔ)到App Store上架(第3版)[M].北京:人民郵電出版社,2015.

      [9] 賈福林,王國(guó)仁,于 戈.基于DOM的XML數(shù)據(jù)庫(kù)的索引技術(shù)研究[J].計(jì)算機(jī)研究與發(fā)展,2004,41(1):175-186.

      DesignofMobileVirtualInstrumentBrowserbasedoniOS

      Wu Yuye, He Lingsong,Wei Wenji,Gao Zhiqiang

      (Huazhong University of Science and Tecnology School of Mechanical Science &Engineering , Wuhan 430074, China)

      In order to adjust functions of mobile virtual instruments dynamically,amobile virtual instrument browser based on iOSplatformhas been proposed. The principle is to turn thebrowser into differentvirtual instruments by loading different virtual instrument scriptsintoit.Avirtual instrument consists of several controls with many input and output interfaces.The assembly and communication of controls are based on KVO,and scripts are used to describe the assembly. All control classes inherit from UIView class and need to call and override a part of UIViewfunctions.The feasibility of the virtual instrument browser has been demonstrated by a signal generating-and-displaying instrument.

      iOS platform; virtual instrument browser;control;KVO model

      2017-07-14;

      2017-09-14。

      國(guó)家科技重大專(zhuān)項(xiàng)“高檔數(shù)控系統(tǒng)關(guān)鍵共性技術(shù)創(chuàng)新能力平臺(tái)(二期)”(2015ZX04005007)。

      吳玉葉(1993-),女,湖南岳陽(yáng)人,碩士研究生,主要從事手機(jī)虛擬儀器領(lǐng)域的研究。

      何嶺松(1962-),男,四川成都人,教授,博導(dǎo),主要從事工業(yè)測(cè)量控制、虛擬儀器技術(shù)領(lǐng)域的研究。

      1671-4598(2017)11-0234-05

      10.16526/j.cnki.11-4762/tp.2017.11.060

      TP311.52

      A

      猜你喜歡
      虛擬儀器腳本控件
      酒駕
      安奇奇與小cool 龍(第二回)
      數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      PCB 刻制機(jī)功能開(kāi)發(fā)及在虛擬儀器實(shí)驗(yàn)室建設(shè)中的應(yīng)用
      電子制作(2017年13期)2017-12-15 09:00:26
      快樂(lè)假期
      虛擬儀器及其在電工電子實(shí)驗(yàn)中的應(yīng)用
      電子制作(2017年1期)2017-05-17 03:54:33
      虛擬儀器技術(shù)在農(nóng)業(yè)裝備測(cè)控中的應(yīng)用
      基于虛擬儀器的DMFC實(shí)時(shí)監(jiān)控系統(tǒng)
      就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      汉阴县| 和顺县| 农安县| 称多县| 全椒县| 三亚市| 永胜县| 行唐县| 界首市| 安化县| 独山县| 双江| 哈尔滨市| 德州市| 达孜县| 长治市| 瑞安市| 江门市| 曲松县| 正蓝旗| 景东| 哈巴河县| 山西省| 清苑县| 武川县| 德惠市| 石河子市| 清水河县| 鸡泽县| 正镶白旗| 娄烦县| 织金县| 甘孜县| 开封县| 扶余县| 于田县| 凤凰县| 象山县| 夏邑县| 乾安县| 婺源县|