版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
利用GoAhead構(gòu)建嵌入式web應(yīng)用培訓(xùn)的目的和要求1、能夠使用goahead構(gòu)建嵌入式web服務(wù)器2、掌握和網(wǎng)頁通信的方法3、能把goahead的使用封裝成一個(gè)類1需求背景廉價(jià)的硬件,功能強(qiáng)大的32操作系統(tǒng),以及無處不在的因特網(wǎng),它們一起促成了網(wǎng)絡(luò)應(yīng)用和設(shè)備的飛速增長(zhǎng)。大量的設(shè)備連接到網(wǎng)絡(luò)上,于是人們希望通過一種通用、熟悉、快捷的方式來訪問和控制它們。嵌入式web服務(wù)器正好迎合了這種需求,它們嵌入在網(wǎng)絡(luò)設(shè)備之中,使用標(biāo)準(zhǔn)的瀏覽器就可以遠(yuǎn)程訪問和控制它們。然而,并不是所有的web服務(wù)器都可以擔(dān)當(dāng)如此重任,我們需要的是一個(gè)強(qiáng)大,安全,標(biāo)準(zhǔn)的,而且最好是久經(jīng)考驗(yàn)的嵌入式web服務(wù)器。這里將要介紹的GoAhead嵌入式web服務(wù)器能夠滿足所有這些需求,包括西門子,霍尼韋爾,惠普等大型企業(yè)都在使用GoAhead。2嵌入式web服務(wù)器的要求2.1易于與設(shè)備集成易于與設(shè)備集成包含兩個(gè)方面的意思,其一是將Web應(yīng)用程序集成到實(shí)時(shí)操作系統(tǒng),其二是可以在Web應(yīng)用中輕松訪問硬件功能。由于GoAhead是開放源代碼的,因此這一點(diǎn)不難做到。2.2支持將Web頁面存儲(chǔ)在ROM中許多嵌入式系統(tǒng)并沒有文件系統(tǒng),因此有必要將web頁面保存到ROM中。GoAhead支持對(duì)web頁面進(jìn)行編譯并將它們鏈接到最終的可執(zhí)行文件中。2.3加密和用戶管理GoAhead服務(wù)器支持使用SSL進(jìn)行數(shù)據(jù)加密和認(rèn)證。同時(shí),它也支持摘要認(rèn)證機(jī)制,一種總是加密密碼的更安全的認(rèn)證機(jī)制。用戶管理功能允許不同的用戶具有不同級(jí)別的訪問權(quán)限。除了上述要求之外,是否能夠快速、方便的生成動(dòng)態(tài)頁面是衡量一個(gè)嵌入式web服務(wù)器的重要指標(biāo)。GoAhead提供了多種方法編寫動(dòng)態(tài)頁面,包括asp過程、GoForms過程和embeddedJavaScript。GoAhead主要利用asp過程動(dòng)態(tài)獲取系統(tǒng)信息然后顯示在頁面上,GoForms過程則主要用來處理用戶指令,例如控制設(shè)備和修改配置等。下面以一個(gè)動(dòng)態(tài)顯示系統(tǒng)當(dāng)前正在運(yùn)行的進(jìn)程信息的小型web應(yīng)用程序?yàn)槔?,闡述如何利用GoAhead構(gòu)建嵌入式web應(yīng)用程序,特別是asp和GoForms過程的使用方法。3動(dòng)態(tài)頁面支持在嵌入式設(shè)備中,大部分web頁面都是動(dòng)態(tài)生成的。生成動(dòng)態(tài)頁面的方法主要有兩種,通過C代碼生成HTML標(biāo)簽和在HTML頁面中嵌入表達(dá)式標(biāo)簽。直接通過C代碼生成頁面的優(yōu)點(diǎn)是靈活,但是卻犧牲了友好性,因?yàn)椴坏介_始運(yùn)行程序的最后一刻,你不可能知道這個(gè)頁面看起來會(huì)是個(gè)什么樣子。相比之下,第二種方法更加直觀,你可以使用你所喜歡的工具以所見即所得的方式編輯頁面,在必要的地方添加占位符,運(yùn)行時(shí)它們會(huì)被動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)代替。GoAhead完全支持這兩種方式。為了方便的創(chuàng)建具有高度交互性的動(dòng)態(tài)網(wǎng)頁,GoAhead提供了asp過程和GoForms過程兩種武器。它們實(shí)際上都與定義在服務(wù)器端的某個(gè)C函數(shù)綁定在一起,只是分工不同,asp過程用來生成顯示在頁面中的動(dòng)態(tài)數(shù)據(jù),而GoForms過程則用來處理用戶輸入和修改設(shè)置,它們一起構(gòu)成了GoAhead的核心。3.1ASP過程ASP最初用于IIS中,它是微軟開發(fā)的生成動(dòng)態(tài)Web頁面的服務(wù)器端技術(shù)?,F(xiàn)在已經(jīng)被移植到包括GoAhead的各種平臺(tái)中,使用ASP的網(wǎng)頁的后綴一般為“.asp”。為了在Web頁面中嵌入ASP腳本,只需使用特殊的標(biāo)簽“<%”
和“%>”將腳本包裹起來。之所以使用ASP標(biāo)簽?zāi)康氖菫榱讼蛴脩麸@示動(dòng)態(tài)內(nèi)容,例如系統(tǒng)進(jìn)程信息等。因?yàn)閯?dòng)態(tài)內(nèi)容實(shí)際上是在執(zhí)行特定的C函數(shù)生成的,所以需要將web頁面中的ASP標(biāo)簽與特定的C函數(shù)聯(lián)系在一起。一般,整個(gè)過程大致可以分成以下三個(gè)步驟:1.設(shè)計(jì)web頁面,動(dòng)態(tài)內(nèi)容使用特定的asp過程名替代,也稱其為一個(gè)占位符。2.在某個(gè).c文件中定義與asp過程對(duì)應(yīng)的C函數(shù)3.在main.c文件中的initWebs函數(shù)中使用websAspDefine注冊(cè)asp過程以清單1中的<%UpdateProcInfor();%>標(biāo)簽為例,此標(biāo)簽的目的是為了顯示系統(tǒng)當(dāng)前正在運(yùn)行的進(jìn)程的信息。獲取進(jìn)程信息實(shí)際上是由位于ui.c中的UpdateProcInfo函數(shù)完成的,詳見清單2,它負(fù)責(zé)獲取系統(tǒng)進(jìn)程信息,并格式化為HTML輸出。清單3中的websAspDefine函數(shù)將<%UpdateProcInfor();%>標(biāo)簽與UpdateProcInfo函數(shù)關(guān)聯(lián)起來,這樣當(dāng)GoAhead解析home.asp頁面遇到<%UpdateProcInfor();%>標(biāo)簽時(shí),控制權(quán)就會(huì)跳轉(zhuǎn)到UpdateProcInfor()函數(shù),在輸出以HTML格式表示的進(jìn)程信息后,控制權(quán)轉(zhuǎn)交給GoAhead繼續(xù)解析home.asp頁面。注意:asp過程必須符合原型:intAspProcName(intejid,webs_twp,intargc,chart_t**argv);
其中,ejid參數(shù)作為JavaScript解釋器句柄可以用來調(diào)用JavaScript相關(guān)函數(shù),例如ejGetVar和ejSetResult。wp參數(shù)作為瀏覽器連接的句柄,可以用來調(diào)用很多有用的GoAhead服務(wù)器函數(shù),例如用來輸出HTML語句的websWrite等。argc和argv包含傳遞給asp過程的實(shí)參的個(gè)數(shù)和內(nèi)容。//清單1:home.asp(省略了其它無關(guān)的部分,細(xì)節(jié)請(qǐng)參考附帶源代碼)<html><head><%WriteMetaElement();%></head>…<formaction="/goform/UpdateConfig"method="post"><inputtype="text"name="interval"value=""size="7"/><inputtype="submit"name="ok"value="Update"/><inputtype="reset"name="cancel"value="Reset"/></form><%UpdateProcInfo();%></html>//清單2:ui燈.c#i脾nc鵝lu津de壇"再ui遵.h窗"#i刪nc型lu涌de挪"引..糕\w拒eb紐奉s.絲式h"http://以HT音ML格式她輸出豎系統(tǒng)農(nóng)當(dāng)前慌進(jìn)程筐信息in能t攏Up融da恨te趟Pr昌oc潑In專fo酒(i今nt疾e塵ji浙d,停w變eb荒s_鉗t怒wp瞞,扭in男t柏ar委gc成,忍ch頭ar簡(jiǎn)_t薄*牽ar豈gv畏){re僑tu桿rn艷W靜ri腫te偶Pr餓oc攝Pa懸ge床(w凝p)狗;}//根據(jù)靜用戶柿輸入塘改變?nèi)崴⑿鲁蹰g隔熟時(shí)間走設(shè)置vo付id榜U甜pd扔at毒eC盯on躲fi賤g(南we保bs記_t濟(jì)w忌p,狀c鞭ha跑r_冬t渣*p柄at除h,挺c財(cái)ha本r_堡t撿*q余ue續(xù)ry沸){in差t協(xié)tm央pI螺nt頌er滑va營(yíng)l=押at足oi命(w寄eb糕sG小et鴨Va賢r(豪wp暫,教"i沿nt賄er鋒va既l"原,泛"-軋1"頃))米;if駝(t折mp匠In炸te摔rv淹al剛>3妄){s_蛛in場(chǎng)te瓣rv促al蜻=t找mp臺(tái)In飼te臟rv幼al仁;}we損bs劈燕Re健di餃re裂ct理(w井p,塊L彼"h擔(dān)om號(hào)e.抄as莫p"控);}//清單3:ma太in朵.c文件蛇中的in康it別We起bs口()函數(shù)#i曾nc扣lu補(bǔ)de棟"妥u(yù)i踢.h肅"http://關(guān)聯(lián)as礦p標(biāo)簽召和C函數(shù)振名字we臭bs占As串pD賞ef立in泡e(好T(掃"U漁pd缺at剖eP泰ro款cI鞏nf松o"姿),榮U鳳pd怖at鬧eP箱ro修cI握nf柔o)誓;we排bs歐As瓶pD語ef新in運(yùn)e(袖T(麗"W瀉ri昏te養(yǎng)Me芝ta陷El氧em嘆en嶺t"摸),而W跟ri膠te寬Me傭ta善El攀em膛en睡t)散;//關(guān)聯(lián)Go軍Fo佳rm部s標(biāo)簽赴和C函數(shù)腳名字we極bs基Fo恥rm墻De爛fi萍ne鳥(T胡("誰Up御da知te耀Co行nf嗽ig董")饑,蝕Up座da材te忌Co搶nf膏ig陰);3.層2適Go容Fo崇rm鉆s過程Go鋸Ah藝ea焰d實(shí)現(xiàn)面了稱毒為Go零Fo亮rm夫s的標(biāo)醉準(zhǔn)的瓶通用訊網(wǎng)關(guān)蠻接口桐(CG耗I)處但理用授戶提牧交的寸表單景。與劇傳統(tǒng)汗的CG辜I方法立不同榆,Go弦Fo研rm獲s過程灘不是宮為每麗個(gè)瀏缸覽器射連接派都創(chuàng)誤建一蒸個(gè)新妹的進(jìn)趣程,吼而是飾通過堆與Go詳Ah仰ea福d服務(wù)輛器共政享地各址空本間,煎于是搬可以努直接評(píng)訪問洗全部屋的請(qǐng)茅求上注下文委。Go胃Fo脆rm家s處理奪器可立以自失動(dòng)解寇析和渾訪問異所有巷的PO評(píng)ST和查酒詢數(shù)吉據(jù),監(jiān)它也略提供興了一顆組AP鋒I可以亭輕松回訪問CG饞I變量船。Go脈Fo汽rm偽s過程孩與AS極P過程貿(mào)不同煤,它悲主要傳用來狂響應(yīng)肅用戶荒輸入末以更膀新系言統(tǒng)設(shè)翠置或毯者執(zhí)仔行特得定的巴動(dòng)作重。在Go手Ah塔ea苗d中,Go系Fo賞rm移s實(shí)現(xiàn)畫為一困個(gè)UR濾L處理塵器,浙它會(huì)拌解釋拔以"/稻go悼fo輔rm慢"開始譜的UR軌Ls。緊障跟著"g嘗of則or佛m"之后階的字炸符串倘定義錘了表掀單名酬字和央用戶欠請(qǐng)求狠的細(xì)晃節(jié)。初例如街:“/g中of死or延m/五U獻(xiàn)pd維at族e(cuò)C徒on蒙fi鳴g?冰in茂te許rv色al叮=5”這個(gè)赤請(qǐng)求盡表示籌調(diào)用Go象Fo構(gòu)rm西s過程"璃Up保da瞧te您Co貪nf浪ig莫",Go嫂Fo蜜rm親s變量in敢te刷rv暴al表示目用戶因設(shè)置菊的新賺刷新注間隔法時(shí)間父。Go膠Ah魂ea艱d對(duì)AS帆P過程淚和Go轟Fo宰rm賄s過程莖的處榮理十湯分類轉(zhuǎn)似,丑只是Go袖Fo專rm館s過程減通過we娛bs陷Fo席rm霸De允fi嗓ne函數(shù)爹調(diào)用漁進(jìn)行欲關(guān)聯(lián)趕,并距且必吩須遵眼守原疏型“vo娛id傭G眨oF耍or行ms舉Pr腰oc費(fèi)Na慶me賺(w鹿eb壇s_顏t降wp膀,年ch嚇ar補(bǔ)_t默*貓pa廈th餓,遺ch緞ar風(fēng)_t掩*性qu亡er富y)朗;”。完期整的Go升Fo捕rm賣s過程縱示例測(cè)請(qǐng)參擦考列窯表1-妖3中的尺用來步處理巾用戶刷請(qǐng)求為的Up抽da侵te無Co燙nf精ig過程索。3.縣3浸RO膠M化網(wǎng)臨頁對(duì)于良具有最文件撒系統(tǒng)介的嵌迎入式幅操作薄系統(tǒng)悲來說漂,可擁以將we行b應(yīng)用章中用腳到的販各種渴資源冒,例翼如ht炸ml文件鍬、圖械片、cs狐s文件定以及ex債e文件濫直接南以文獲件的皺形式纏保存董起來緣瑞。除敞此以抹外還紅存在本大量勇的不攻具備念文件珠系統(tǒng)殼的嵌偽入式衣操作啞系統(tǒng)駱,此猾時(shí)可勝以利糾用Go演Ah皆ea爪d的RO遮M化功存能將約所有算資源年集成近到可伴執(zhí)行農(nóng)文件鞏中。眨首先霉在E:坊\G汽oA招he媽ad目錄同下創(chuàng)朱建一妥個(gè)fi景l(fā)e圖s.冶tx雜t文件弊,將we枕b應(yīng)用圍中使普用到許的所姜有資草源及樹其路眠徑都炒保存忽在這疾個(gè)文覽件中先,如廚清單4所示諷:3.訂4測(cè)試we招b應(yīng)用牌程序運(yùn)行we膝bs躬.e疾xe啟動(dòng)Go遭Ah癥ea倦d冷we僵b服務(wù)癢器,孔打開腳瀏覽噸器在犧地址存欄輸杯入。獻(xiàn)默認(rèn)比情況地下會(huì)注自動(dòng)發(fā)打開ho側(cè)me襲.a飾sp頁面桃,如斯圖1所示內(nèi)。4結(jié)語Go等Ah韻ea啟d已經(jīng)至被成侄功的煌移植牛到HP步-U秘X,功W巾in盡do殿ws距C壩E,殲p灑SO務(wù)S,渠Q青NX枕,建IR倒IX替,浸uC丙OS住,姥eC腰OS尼,和ch露or元us和RT闖EM劃S等眾邊多操矩作系網(wǎng)統(tǒng)中蠻。本菠文之糠所以鄰使用Wi斗nd言ow瓶s平臺(tái)暗上Go桂Ah典ea固d移植粥為例妥進(jìn)行距說明蹈,一封方面鍋每個(gè)侍讀者點(diǎn)都可便以運(yùn)恒行附蹤蝶帶的已源代蒼碼親色自進(jìn)通行試精驗(yàn)以拳加深盒印象品
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 柴油銷售合同模板
- 2024農(nóng)村土地流轉(zhuǎn)及發(fā)包合同書
- 2024商鋪?zhàn)赓U合同(奶茶店)
- 2024學(xué)校食堂供貨標(biāo)準(zhǔn)合同范本
- 2024年終止合同協(xié)議書解除合同協(xié)議書
- 2024年螺旋包裝機(jī)買賣合同
- 資產(chǎn)轉(zhuǎn)讓報(bào)價(jià)委托協(xié)議
- 2024貴陽勞動(dòng)合同范本專業(yè)版范文
- 公司與旅行社合作契約示例
- 國際認(rèn)證委托協(xié)議書格式
- 備戰(zhàn)2024年高考英語考試易錯(cuò)點(diǎn)12 名詞性從句(4大陷阱)(解析版)
- 公務(wù)員歷史常識(shí)100題及一套完整答案
- 信息技術(shù)與高中英語教學(xué)融合的途徑
- 花籃拉桿式懸挑腳手架.計(jì)算書及相關(guān)圖紙
- 職業(yè)道德與法律說課稿市公開課一等獎(jiǎng)省賽課微課金獎(jiǎng)?wù)n件
- 《電力建設(shè)施工技術(shù)規(guī)范 第2部分:鍋爐機(jī)組》DLT 5190.2
- 史學(xué)概論完整版本
- 供水管網(wǎng)搶修管理課件
- 信訪維穩(wěn)工作培訓(xùn)
- 全國初中數(shù)學(xué)優(yōu)質(zhì)課《平行四邊形的性質(zhì)》課件
- 發(fā)作性睡病病案分析
評(píng)論
0/150
提交評(píng)論