国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

應用ASP.NET技術制作船舶監(jiān)控系統(tǒng)控件*

2011-01-15 08:28李順亮鐘碧良
艦船電子工程 2011年2期
關鍵詞:控件指針儀表

李順亮 鐘碧良

(廣州航海高等專科學校航海學院1) 廣州 510725)(廣州航海高等??茖W??蒲醒b備處2) 廣州 510725)

應用ASP.NET技術制作船舶監(jiān)控系統(tǒng)控件*

李順亮1)鐘碧良2)

(廣州航海高等??茖W校航海學院1)廣州 510725)(廣州航海高等??茖W??蒲醒b備處2)廣州 510725)

文章應用GDI+繪圖技術和ASP.NET Web編程原理,設計和制作了基于Web的船舶監(jiān)控系統(tǒng)自定義控件,并在某船舶的綜合監(jiān)控系統(tǒng)中成功應用。

GDI+;ASP.NET;Web自定義控件

Class NumberTP311.5

1 引言

當前,開發(fā)具備Web功能的船舶綜合監(jiān)控是當今船舶自動化的發(fā)展方向之一,也是衡量船舶自動化水平高低的重要標志。要實現全船數據的綜合集成監(jiān)控,綜合信息顯示界面的設計是首要的一步,儀表控件的制作則是關鍵的一環(huán)。儀表控件指的是在顯示器上以控件形式顯示的儀表,儀表控件在信息顯示上必須與實際儀表所表達的信息量完全相同,同時,在外觀上要有真實感,符合航海人員的視覺習慣。文章運用ASP.NET Web編程原理,應用GDI+繪圖技術,設計和制作了基于Web的船舶儀表控件,并且,在某船實際系統(tǒng)中成功應用。文章以具有代表性的船舶儀表控件為例子加以闡述,其余的儀表類似,根據其自身特點加以簡單修改即可。

2 ASP.NET簡述

ASP.NET是微軟公司的ASP和.NET這兩項技術的結合,ASP.NET改進了Web編程技術,它引入了為客戶端瀏覽器呈現HTML,并觸發(fā)可由服務器端腳本處理事件的可重用服務器控件。Web窗體的基本結構,即Web頁,是圍繞著控件和事件處理程序來建立的。Web窗體編程模型的一個基本原則是使可重用控件類能夠封裝復雜的呈現和行為邏輯,從而將基于組件的編程引入Internet中[1~2]。此外,ASP.NET允許開發(fā)者使用功能完善的.NET Framework所支持的多種編程語言,其中的服務器端腳本會被編譯為中間語言(CIL),并由公共語言運行庫執(zhí)行,因此,執(zhí)行速度比解釋性腳本語言快很多。

3 自定義Web圖形控件設計原理

盡管FCL的內置服務器控件種類豐富,但是它們不可能滿足所有開發(fā)人員的需求,在本系統(tǒng)中采用的控件就要適應船舶儀表特殊外表和功能需求的控件,因此必須開發(fā)自定義Web控件。

自定義Web控件需從System.Web.UI.Control類開始,在構建從Control派生的自定義控件時,要重寫其中的一些虛擬方法,并添加方法、屬性和事件,使自定義Web控件與眾不同[3]。Control類最重要的虛擬方法是 Render,每當控件被執(zhí)行的時候,即當控件所在的頁面被請求時,Render都會被調用;Render通過它的參數列表接收一個HtmlTextWriter參數,該參數的Write方法將HTML寫到輸出流,它使控件有機會將HTML發(fā)送到客戶端,從而將自己呈現出來,并且可以呈現任何能用HTML表示的內容,比如圖形圖像。返回動態(tài)生成的圖像就使控件突破了HTML的限制,并且使各種情況成為可能,包括呈現曲線圖和餅狀圖、地圖、設置報表格式及任何能想象得出的事物。編寫圖形控件的關鍵在于,讓它的Render方法返回一個〈img〉標記。如果圖像是靜態(tài)的,那么該標記的Src屬性就指向該圖像文件;如果圖像是動態(tài)生成的,Src屬性就必須指向創(chuàng)建圖像的URL地址。如下面這個〈img〉標記指向一個 URL,該URL根據問號后的字符串來動態(tài)生成一個圖像:

<img src=”imagegen.ashx?shape=circle&color=red”>

Imagegen.ashx不是一個文件,而是 HT TP處理程序,對查詢字符串進行解析,并返回動態(tài)生成的圖像。

HT TP處理程序是一個類,它處理對服務器上的一個特定的終端(URL)或一組終端的HT TP請求。ASP.NET內置的 HTT P處理程序處理對ASPX文件、ASCX文件或其他ASP.NET文件類型的請求,此外,還可以對HT TP處理程序進行擴展,然后,在 Web.config配置文件中的條目將URL和H TTP處理程序進行映射。比如下面配置文件中的語句,將對本目錄(Web.config所在目錄)及其子目錄下的RudderImageGen.ashx文件的請求映射到ShipWebControls程序集中的一個名為RudderImageGen的類:

假設ImageGen是一個圖像生成器,它通過創(chuàng)建一個圖像并將它返回到HT TP響應中來進行響應。當一個對ImageGen.ashx的H TTP請求到達時,ASP.NET初始化ImageGen并將請求傳遞給它,并調用它的ProcessRequst方法。ProcessRequest接收一個HttpContext對象,該對象的Request屬性提供對查詢字符串的輸入參數的訪問。為了返回圖像,ProcessRequest將構成圖像的位保存到 HttpContext.Response.OutputStream代表的數據流中。

4 GDI+圖形編程技術

GDI+,Graphics Device Interface Plus(圖形設備接口+)的簡稱。文章在制作自定義Web控件的過程中,圖像生成函數內部動態(tài)生成位圖的方法是應用先進GDI+技術和純面向對象的C#語言來制作外觀逼真的圖形,簡單又靈活。GDI+與GDI不同之處在于GDI+不僅提供了很多新功能,如像素消除鋸齒技術、漸變畫筆、變形和矩陣對象、獨立的路徑對象、基數樣條、對多圖像格式的支持和Alpha混和等;更重要的是它改變了編程模型,使圖形編程更加簡易靈活。使用GDI+,不需要使用句柄或設備上下文,而只需創(chuàng)建一個Graphics對象,然后以熟悉的面向對象樣式調用其方

法[4~5]。

5 制作實例

5.1 舵角指示器制作

在制作過程中反復地應用到了GDI+的新功能,如Graphics對象的平移、旋轉變換、像素反鋸齒、漸變效果等。由于實際運行時表盤面是固定不動的,只有指針隨舵角屬性值的改變而旋轉到相應的刻度處。因此,畫指針位置的時候采用了旋轉變換,當舵角屬性值改變時,只須將Graphics對象旋轉相應的角度,無須改變指針的坐標位置,這樣的程序代碼就很清晰了。但要注意,這里的旋轉變換是建立在前面平移變換的基礎上的,旋轉變換的前后就不能使用常見的Graphics對象 ResetTransform()方法了,因為Reset()方法會破壞前面的平移變換,而應該使用Graphics對象的Save()和Restore()方法。畫指針主要代碼如下:

{

5.2 羅經復示器的制作

前面部分的設計思路與舵角指示器是一樣的。與上例相反的是,羅經復示器的指針是固定不動的,整個表盤包括刻度線和讀數是可旋轉活動的,即當船首向順指針(往右)旋轉一度,羅經復示器的表盤則逆時針(向左)旋轉一度,并且發(fā)出咯噠聲響;同時,表盤航向讀數的文字書寫方向也是兩兩相對的。因此,為了達到以上視覺效果和功能,當航向發(fā)生改變時,首先把Graphics對象旋轉變換一個負航向值,在此基礎上再循環(huán)旋轉360°,每隔2°畫刻度線,每隔 10°畫刻度讀數,這樣就形成了Graphics對象變換狀態(tài)的兩層嵌套保存,即代碼中的gs1和gs2。主要代碼如下:

圖1和圖2即為應用文章所述方法制作的控件樣式。

應用同樣的原理,可實現諸如流速計、主機轉速表、測深儀、羅經復示器、舵角指示器、計程儀、風向儀等自定義Web控件,都具有與實際的船舶儀表完全一致的外觀和功能。

6 結語

控件是構成Web窗體的基本單位。在自定義控件中封裝復雜的呈現和行為邏輯,非常適合于將自己制作的控件與其他程序開發(fā)人員共享,同時他們無需考慮具體的實現細節(jié)。因此制作的船舶儀表控件在船舶信息系統(tǒng)中具有很強的通用性,相關技術對其它自繪制控件的制作具有很好的借鑒作用。

[1]Richard Anderson.ASP.NET高級編程[M].王毅,楊浩,等譯.北京:清華大學出版社,2002

[2]Simon Robinson.C#高級編程[M].第3版.李敏波,等譯.北京:清華大學出版社,2005

[3]Jeff Prosise.Microsoft.NET程序設計技術內幕[M].王鐵等,譯.北京:清華大學出版社,2003:277~277

[4]Eric White.GDI+程序設計[M].楊浩,張哲峰,譯.北京:清華大學出版社,2002:3~5

[5]何海江.基于GDI+的顏色配置組件[J].計算機系統(tǒng)應用,2004(5):51

Development of Custom Web Ship Controls Applying the ASP.NET

Li Shunliang1)Zhong Biliang2)
(School of Maritime,Guangzhou M aritime College1),Guangzhou 510725)
(Department of Scientific Research Equipment,Guangzhou Maritime College2),Guangzhou 510725)

Applying the ASP.NET Web program theory and GDI+graphic programming technique,the paper designed and developed some custom web ship controls which successfully applied to the integrated control and monitoring system on a patrol ship.

GDI+,ASP.NET,custom Web control

TP311.5

2010年8月20日,

2010年9月30日

李順亮,男,碩士,講師,研究方向:交通信息工程及控制、航海技術等。鐘碧良,男,博士,教授,研究方向:計算機信息與控制等。

猜你喜歡
控件指針儀表
浙江中控自動化儀表有限公司
浙江中控自動化儀表有限公司
基于.net的用戶定義驗證控件的應用分析
垂懸指針檢測與防御方法*
關于.net控件數組的探討
為什么表的指針都按照順時針方向轉動
奔馳E260車行駛過程中儀表燈熄滅
寶馬745Li車制動燈常亮且組合儀表上多個故障燈點亮
淺析C語言指針
基于嵌入式MINIGUI控件子類化技術的深入研究與應用