![利用GoAhead构建嵌入式web应用_第1页](http://file4.renrendoc.com/view/bb61138fffcdd96f10c89e8d02511da4/bb61138fffcdd96f10c89e8d02511da41.gif)
![利用GoAhead构建嵌入式web应用_第2页](http://file4.renrendoc.com/view/bb61138fffcdd96f10c89e8d02511da4/bb61138fffcdd96f10c89e8d02511da42.gif)
![利用GoAhead构建嵌入式web应用_第3页](http://file4.renrendoc.com/view/bb61138fffcdd96f10c89e8d02511da4/bb61138fffcdd96f10c89e8d02511da43.gif)
![利用GoAhead构建嵌入式web应用_第4页](http://file4.renrendoc.com/view/bb61138fffcdd96f10c89e8d02511da4/bb61138fffcdd96f10c89e8d02511da44.gif)
![利用GoAhead构建嵌入式web应用_第5页](http://file4.renrendoc.com/view/bb61138fffcdd96f10c89e8d02511da4/bb61138fffcdd96f10c89e8d02511da45.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用GoAhead构建嵌入式web应用培训的目的和要求1、能够使用goahead构建嵌入式web服务器2、掌握和网页通信的方法3、能把goahead的使用封装成一个类1需求背景廉价的硬件,功能强大的32操作系统,以及无处不在的因特网,它们一起促成了网络应用和设备的飞速增长。大量的设备连接到网络上,于是人们希望通过一种通用、熟悉、快捷的方式来访问和控制它们。嵌入式web服务器正好迎合了这种需求,它们嵌入在网络设备之中,使用标准的浏览器就可以远程访问和控制它们。然而,并不是所有的web服务器都可以担当如此重任,我们需要的是一个强大,安全,标准的,而且最好是久经考验的嵌入式web服务器。这里将要介绍的GoAhead嵌入式web服务器能够满足所有这些需求,包括西门子,霍尼韦尔,惠普等大型企业都在使用GoAhead。2嵌入式web服务器的要求2.1易于与设备集成易于与设备集成包含两个方面的意思,其一是将Web应用程序集成到实时操作系统,其二是可以在Web应用中轻松访问硬件功能。由于GoAhead是开放源代码的,因此这一点不难做到。2.2支持将Web页面存储在ROM中许多嵌入式系统并没有文件系统,因此有必要将web页面保存到ROM中。GoAhead支持对web页面进行编译并将它们链接到最终的可执行文件中。2.3加密和用户管理GoAhead服务器支持使用SSL进行数据加密和认证。同时,它也支持摘要认证机制,一种总是加密密码的更安全的认证机制。用户管理功能允许不同的用户具有不同级别的访问权限。除了上述要求之外,是否能够快速、方便的生成动态页面是衡量一个嵌入式web服务器的重要指标。GoAhead提供了多种方法编写动态页面,包括asp过程、GoForms过程和embeddedJavaScript。GoAhead主要利用asp过程动态获取系统信息然后显示在页面上,GoForms过程则主要用来处理用户指令,例如控制设备和修改配置等。下面以一个动态显示系统当前正在运行的进程信息的小型web应用程序为例,阐述如何利用GoAhead构建嵌入式web应用程序,特别是asp和GoForms过程的使用方法。3动态页面支持在嵌入式设备中,大部分web页面都是动态生成的。生成动态页面的方法主要有两种,通过C代码生成HTML标签和在HTML页面中嵌入表达式标签。直接通过C代码生成页面的优点是灵活,但是却牺牲了友好性,因为不到开始运行程序的最后一刻,你不可能知道这个页面看起来会是个什么样子。相比之下,第二种方法更加直观,你可以使用你所喜欢的工具以所见即所得的方式编辑页面,在必要的地方添加占位符,运行时它们会被动态产生的数据代替。GoAhead完全支持这两种方式。为了方便的创建具有高度交互性的动态网页,GoAhead提供了asp过程和GoForms过程两种武器。它们实际上都与定义在服务器端的某个C函数绑定在一起,只是分工不同,asp过程用来生成显示在页面中的动态数据,而GoForms过程则用来处理用户输入和修改设置,它们一起构成了GoAhead的核心。3.1ASP过程ASP最初用于IIS中,它是微软开发的生成动态Web页面的服务器端技术。现在已经被移植到包括GoAhead的各种平台中,使用ASP的网页的后缀一般为“.asp”。为了在Web页面中嵌入ASP脚本,只需使用特殊的标签“<%”
和“%>”将脚本包裹起来。之所以使用ASP标签目的是为了向用户显示动态内容,例如系统进程信息等。因为动态内容实际上是在执行特定的C函数生成的,所以需要将web页面中的ASP标签与特定的C函数联系在一起。一般,整个过程大致可以分成以下三个步骤:1.设计web页面,动态内容使用特定的asp过程名替代,也称其为一个占位符。2.在某个.c文件中定义与asp过程对应的C函数3.在main.c文件中的initWebs函数中使用websAspDefine注册asp过程以清单1中的<%UpdateProcInfor();%>标签为例,此标签的目的是为了显示系统当前正在运行的进程的信息。获取进程信息实际上是由位于ui.c中的UpdateProcInfo函数完成的,详见清单2,它负责获取系统进程信息,并格式化为HTML输出。清单3中的websAspDefine函数将<%UpdateProcInfor();%>标签与UpdateProcInfo函数关联起来,这样当GoAhead解析home.asp页面遇到<%UpdateProcInfor();%>标签时,控制权就会跳转到UpdateProcInfor()函数,在输出以HTML格式表示的进程信息后,控制权转交给GoAhead继续解析home.asp页面。注意:asp过程必须符合原型:intAspProcName(intejid,webs_twp,intargc,chart_t**argv);
其中,ejid参数作为JavaScript解释器句柄可以用来调用JavaScript相关函数,例如ejGetVar和ejSetResult。wp参数作为浏览器连接的句柄,可以用来调用很多有用的GoAhead服务器函数,例如用来输出HTML语句的websWrite等。argc和argv包含传递给asp过程的实参的个数和内容。//清单1:home.asp(省略了其它无关的部分,细节请参考附带源代码)<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"//以HT音ML格式她输出竖系统农当前慌进程筐信息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简_t薄*牵ar岂gv畏){re侨tu杆rn艳W静ri肿te偶Pr饿oc摄Pa悬ge床(w凝p)狗;}//根据静用户柿输入塘改变柔刷新初间隔熟时间走设置vo付id榜U甜pd扔at毒eC盯on躲fi贱g(南we保bs记_t济w忌p,状c鞭ha跑r_冬t渣*p柄at除h,挺c财ha本r_堡t捡*q余ue续ry沸){in差t协tm央pI螺nt颂er滑va营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场te瓣rv促al蜻=t找mp台In饲te脏rv幼al仁;}we损bs劈燕Re健di饺re裂ct理(w井p,块L彼"h担om号e.抄as莫p"控);}//清单3:ma太in朵.c文件蛇中的in康it别We起bs口()函数#i曾nc扣lu补de栋"妥ui踢.h肃"//关联as矿p标签召和C函数振名字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运e(袖T(丽"W泻ri昏te养Me芝ta陷El氧em叹en岭t"摸),而W跟ri胶te宽Me佣ta善El攀em膛en睡t)散;//关联Go军Fo佳rm部s标签赴和C函数脚名字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实现面了称毒为Go零Fo亮rm夫s的标醉准的瓶通用讯网关蛮接口桐(CG耗I)处但理用授户提牧交的寸表单景。与剧传统汗的CG辜I方法立不同榆,Go弦Fo研rm获s过程滩不是宫为每丽个浏缸览器射连接派都创误建一蒸个新妹的进趣程,吼而是饰通过堆与Go详Ah仰ea福d服务辆器共政享地各址空本间,煎于是搬可以努直接评访问洗全部屋的请茅求上注下文委。Go胃Fo脆rm家s处理夺器可立以自失动解寇析和浑访问异所有巷的PO评ST和查酒询数吉据,监它也略提供兴了一颗组AP锋I可以亭轻松回访问CG馋I变量船。Go脉Fo汽rm伪s过程孩与AS极P过程贸不同煤,它悲主要传用来狂响应肃用户荒输入末以更膀新系言统设翠置或毯者执仔行特得定的巴动作重。在Go手Ah塔ea苗d中,Go系Fo赏rm移s实现画为一困个UR滤L处理尘器,浙它会拌解释拔以"/稻go悼fo辅rm慢"开始谱的UR轨Ls。紧障跟着"g尝of则or佛m"之后阶的字炸符串倘定义锤了表掀单名酬字和央用户欠请求狠的细晃节。初例如街:“/g中of死or延m/五U献pd维at族eC徒on蒙fi鸣g?冰in茂te许rv色al叮=5”这个赤请求尽表示筹调用Go象Fo构rm西s过程"璃Up保da瞧te您Co贪nf浪ig莫",Go嫂Fo蜜rm亲s变量in敢te刷rv暴al表示目用户因设置菊的新赚刷新注间隔法时间父。Go胶Ah魂ea艰d对AS帆P过程泪和Go轰Fo宰rm贿s过程茎的处荣理十汤分类转似,丑只是Go袖Fo专rm馆s过程减通过we娱bs陷Fo席rm霸De允fi嗓ne函数爹调用渔进行欲关联赶,并距且必吩须遵眼守原疏型“vo娱id佣G眨oF耍or行ms举Pr腰oc费Na庆me赚(w鹿eb坛s_颜t降wp膀,年ch吓ar补_t默*猫pa厦th饿,遗ch缎ar风_t掩*性qu亡er富y)朗;”。完期整的Go升Fo捕rm卖s过程纵示例测请参擦考列窑表1-妖3中的尺用来步处理巾用户刷请求为的Up抽da侵te无Co烫nf精ig过程索。3.县3浸RO胶M化网临页对于良具有最文件撒系统介的嵌迎入式幅操作薄系统悲来说漂,可拥以将we行b应用章中用脚到的贩各种渴资源冒,例翼如ht炸ml文件锹、图械片、cs狐s文件定以及ex债e文件滥直接南以文获件的皱形式缠保存董起来缘瑞。除敞此以抹外还红存在本大量勇的不攻具备念文件珠系统壳的嵌伪入式衣操作哑系统骆,此猾时可胜以利纠用Go演Ah皆ea爪d的RO遮M化功存能将约所有算资源年集成近到可伴执行农文件巩中。眨首先霉在E:坊\G汽oA招he妈ad目录同下创朱建一妥个fi景le图s.冶tx杂t文件弊,将we枕b应用围中使普用到许的所姜有资草源及树其路眠径都炒保存忽在这疾个文览件中先,如厨清单4所示讽:3.订4测试we招b应用牌程序运行we膝bs躬.e疾xe启动Go遭Ah症ea倦d冷we僵b服务痒器,孔打开脚浏览吨器在牺地址存栏输杯入。献默认比情况地下会注自动发打开ho侧me袭.a饰sp页面桃,如斯图1所示内。4结语Go等Ah韵ea启d已经至被成侄功的煌移植牛到HP步-U秘X,功W巾in尽do殿ws距C坝E,歼p洒SO务S,渠Q青NX枕,建IR倒IX替,浸uC丙OS住,姥eC腰OS尼,和ch露or元us和RT闯EM划S等众边多操矩作系网统中蛮。本菠文之糠所以邻使用Wi斗nd言ow瓶s平台暗上Go桂Ah典ea固d移植粥为例妥进行距说明蹈,一封方面锅每个侍读者点都可便以运恒行附踪蝶带的已源代苍码亲色自进通行试精验以拳加深盒印象品
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代交通枢纽的铁路货运效率优化
- 深度解读如何用云计算构建高效智能制造平台
- 国庆节巡航摩旅活动方案
- 小学趣味运动会活动方案策划
- 2024年春七年级地理下册 第九章 第二节 巴西说课稿 (新版)新人教版
- 23 梅兰芳蓄须说课稿-2024-2025学年四年级上册语文统编版001
- 8 千年梦圆在今朝(说课稿)2023-2024学年部编版语文四年级下册
- 5 协商决定班级事务 说课稿-2024-2025学年道德与法治五年级上册统编版
- 2023八年级英语上册 Module 9 Population Unit 3 Language in use说课稿(新版)外研版
- 《10天然材料和人造材料》说课稿-2023-2024学年科学三年级下册青岛版
- 文档协同编辑-深度研究
- 七年级数学新北师大版(2024)下册第一章《整式的乘除》单元检测习题(含简单答案)
- 2024-2025学年云南省昆明市盘龙区高一(上)期末数学试卷(含答案)
- 五年级上册寒假作业答案(人教版)
- 2024年财政部会计法律法规答题活动题目及答案一
- 2025年中考语文复习热搜题速递之说明文阅读(2024年7月)
- 班组现场5S与目视化管理
- 和达投资集团(杭州)有限公司招聘笔试冲刺题2025
- 政企单位春节元宵猜灯谜活动谜语200个(含谜底)
- 综治工作培训课件
- 2024年云网安全应知应会考试题库
评论
0/150
提交评论