嵌入式Linux后台管理WEB GUI的设计与实现---毕业论文_第1页
嵌入式Linux后台管理WEB GUI的设计与实现---毕业论文_第2页
嵌入式Linux后台管理WEB GUI的设计与实现---毕业论文_第3页
嵌入式Linux后台管理WEB GUI的设计与实现---毕业论文_第4页
嵌入式Linux后台管理WEB GUI的设计与实现---毕业论文_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本本 科科 毕毕 业业 论论 文文 嵌入式嵌入式 LinuxLinux 后台管理后台管理 WEBWEB GUIGUI 的设计与实现的设计与实现 Design and Realization of Embedded Linux WEB GUI 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 校外指导教师: 校内指导教师: 年年 月月 I 摘摘 要要 近年来,随着计算机技术、通信技术的飞速发展,特别是互联网的迅速普及和 3C(计算 机、通信、消费电子)合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信 息产业的主流。而对嵌入式 Linux 设备系统往往通过 WEB 服务进行集中管理,比喻常见路由 器、拨号上网的 Modem、IP 电话机等等。因此,研究开发这样一个基于 WEB 的嵌入式 Linux 后台管理系统就具有一定的通用性和重要的实用价值。 本文分析了当前国内外嵌入式 Linux 的发展和应用现状,着重描述了从需求分析、总体 设计,到详细设计,再到系统实现的一个后台管理软件开发的全过程。 在总体设计部分,依据系统设计的目标和原则,本着系统需求的分析结构,对本系统的 技术、功能、逻辑、数据、安全等方面进行架构设计。阐述过程中结合了相应的图示、表格、 数据,达到全面分析系统的各个模块,为具体的系统开发提供了方向。 在详细设计部分,本文对该系统的后台数据库管理部分、web 前段展示部分,以及系统 模块设计部分作了详细说明,并规划出了系统的模块和模块之间的关系,得到了一个大致的 系统技术原型。在这一部分,本文还对 CGI 等技术热点和难点做了重点解释。 在系统实现部分,本文对系统中各种技术要求的具体实现做了详细介绍,并辅以代码说 明,同时还简单介绍了相关技术类库、接口函数的注册和使用。 关键词关键词:嵌入式 Linux ;SQLite;ARM-Linux 平台;GoAhead 服务器 II Abstract In recent years, with the development of computer and communication technologies, especially the rapidly growing popularity of the Internet and the accelerated three-in-one of the 3C(computer, communications, consumer electronics), miniaturization and specialization become the new developing trends, while embedded products are mainstream of the information industry. In the ordinary, devices for embedded Linux are centralized management by WEB services. They are commonly compared to routers, dial-up modem, IP telephone and so on. Therefore, the research and development of a WEB-based embedded Linux system take on a more practical value and a certain degree of versatility. This article analyzes embedded Linux application and development currently in domestic and abroad. It focuses on description of the whole process of software development, including the total design, the specific design and the system implementation. In the total design, based on the objectives and principles of system design and the need analysis of the system, make a design of the architecture about technology, function, logic, data and security. During the discourse process, the article combined the corresponding graphs, forms, data, in order to achieve a comprehensive analysis of the every system modules. The part provides the specific direction for system development. In the specific design, it illustrates in detail in the part of database management, the previous web display, as well as the part of the system module design and the correlation between them, Moreover, it gets a general system technology prototype. In this section, it also specially provides an explanation about the hot and difficult technologies such as CGI. In the system implementation, this article explains in detail how to implement as various technical requirements of the system, and supplemented by code. Also introduce the corresponding class library, the register and the usage of the API functions. Key words: Embedded Linux; SQLite; ARM-Linux platform; GoAhead Web Server III 目目 录录 第第 1 1 章章 绪论绪论1 1 1.1 系统开发背景及意义 1 1.1.1 嵌入式 Linux 介绍 1 1.1.2 课题研究的意义 2 1.2 国内外嵌入式 GUI 的研究开发现状 2 1.3 项目的主要工作5 1.4 论文的组织结构6 第第 2 2 章章 系统总体设计系统总体设计7 7 2.1 系统设计目标和原则7 2.2 系统架构设计7 2.2.1 系统技术架构总述 7 2.2.2 系统功能架构设计 9 2.2.3 系统逻辑架构设计 10 2.2.4 系统数据架构设计 11 2.2.5 系统安全架构设计 13 2.3 本章小结.13 第第 3 3 章章 系统详细设计系统详细设计1515 3.1 后台管理总体设计.15 3.2 数据库.16 3.2.1 SQLite 简介 16 3.2.2 数据库设计要求与原则 18 3.2.3 数据库整体结构 19 3.2.4 数据库操作 22 3.3 管理界面设计.24 3.3.1 登录界面设计 24 3.3.2 子窗体中基本操作功能设计 .26 3.3.3 数据获取和更新的实现 31 3.4 本章小结.32 第第 4 4 章章 结束语结束语3535 IV Contents Chapter 1 Introduction 1 1.1The Background and the Significance1 1.1.1Introduction of Project1 1.1.2Significance of Project.2 1.2The development of Embedded GUI research.2 1.3The Main Work5 1.4 The structure of thesis6 Chapter 2 System Design7 2.1The Objective and the Principle.7 2.2System Architecture Design.7 2.2.1Technology Architecture Overview.7 2.2.2Function Architecture Design9 2.2.3Logic Architecture Design.18 2.2.4Data Architecture Design.11 2.2.5Security Architecture Design.13 2.3Summary .13 Chapter 3 The Detailed Design of the System14 3.1Overall Design14 3.2Database Design.15 3.2.1Sqlite3 Overview15 3.2.2The demand and the principle of Database Design.17 3.2.3Overall Architecture of Database.18 3.2.4Database Connection21 3.3Interface Design.22 3.3.1The Implement of Login Interface.22 3.3.2Basic Operation in the sub-form Design25 3.3.3The Implement of Data get and update30 3.4Summary31 Chapter 4 Tag.32 第 1 章 绪论 1 第 1 章 绪论 1.1 系统开发背景及意义 1.1.1 嵌入式 Linux 介绍 在 IT 业,如果要问当今最热门的话题是什么,从事硬件开发的人会毫不犹豫 地回答:信息家电;从事软件开发的人同样也会毫不犹豫地回答:Linux。事实上, 当人们在谈论 PDA、手持电脑、机顶盒时,后 PC 时代就到来了,或者说信息家电 时代到来了。而这正源于 Linux 的加入,才使得信息家电变得如此火爆。 Linux 是一种将源代码完全开发的 Unix 类操作系统。它的最大特点是价格低 廉、安全性好、稳定,任何人都可以修改它,或者开发自己的产品。Linux 系统式 是可以定制的,系统内核最小时目前只有 134KB。嵌入式 Linux(Embedded Linux) 是指对 Linux 经过裁剪小型化后,可固化在存储器或单片机中,应用于特定嵌入式 场合的专用 Linux 操作系统。与其它嵌入式操作系统比较,Linux 优势详见表 1- 1。 表表 1-11-1 嵌入式嵌入式 LinuxLinux 操作系统与专用嵌入式实时操作系统的对比操作系统与专用嵌入式实时操作系统的对比 专用嵌入式实时操作系统专用嵌入式实时操作系统 (VXWORKS ECOS) 嵌入式嵌入式 Linux 操作系统操作系统 版权费版权费每生产一件产品交纳一份版权税免费 购买费用购买费用数十万元(RMB)免费 技术支持技术支持由开发商度假提供有限技术支持全世界的自由软件开发者提供支持 网络特性网络特性另加数十万元(RMB)购买免费且性能优异 软件移植软件移植难(因为是封闭系统) 易,代码开放(有许多应用软件项 目组织支持) 应用产品开发周期应用产品开发周期长,因为可参考的代码有限 短,因有许多开放的代码可参考移 植 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 2 实时性能实时性能好须改进,可用 PT_Linux 等模块弥补 稳定性稳定性较好较好,但在高性能系统中须改进 正因其高效、低成本、高可靠性、丰富的代码以及应用程序可扩展性、可移植 性等一系列优点,嵌入式系统在传统工业控制和商业领域已经具有广泛的应用空间, 如智能工控设备、POS/ATM 机、IC 卡等;在家庭领域更具有广泛的应用潜力,如机 顶盒、数字电视、WebTV、网络冰箱、网络空调、家庭自动化系统等众多消费类和 医疗保健类电子设备等;此外,还有在自动售货机、多媒体手机、袖珍电脑、掌上 电脑、车载导航器、移动计算设备等方面应用,将极大地推进嵌入式技术深入到生 活和工作的方方面面。 基于 Linux 系统具有开源(Open Source) 、网络支持和跨平台性的优良特性, 使得 Linux 成为最适合嵌入式开发的操作系统,嵌入式领域将是 Linux 最大的发展 空间。因此,嵌入式 Linux 有着巨大的市场潜力,随着 Linux 系统越来越成熟,嵌 入式 Linux 将得到更普遍的应用,嵌入式产品也将更基于多元化。 1.1.2 课题研究的意义 随着后 PC 时代的到来,嵌入式系统的性能有了大幅度的提高,应用范围越来 越广,当初一些简单的人机交互接口已经无法满足人们的要求。而以此同时,在台 式 PC 机上图形交互界面早已普及并成熟,于是在嵌入式系统中也逐渐出现了图形 用户界面(Graphic User Interface, GUI),特别是在一些消费类产品中。嵌入式 系统中的 GUI 就是在嵌入式系统中为特定的硬件设备或环境而设计的图形用户界面 系统。嵌入式系统中的 GUI 应该有如下特点: 占用的存储空间以及运行时占用资源少;运行速度以及响应速度快;可靠性高; 便于移植和定制。 课题就在于开发一个这样的嵌入式系统 GUI,不同之处在于是基于 Web,通过 网络 HTTP 协议和 CGI 协议访问 ARM Linux 系统对其进行后台管理,这样就能够对 嵌入式 Linux 系统的相关配置进行查看或更改,通过 web 这种可视化界面实现后台 管理的便捷性。 第 1 章 绪论 3 1.2 国内外嵌入式 GUI 的研究开发现状 随着嵌入式行业分工的细化,出现了专门的公司开发 Linux 下的 GUI 并给其他公 司授权,从而缩短了嵌入式系统的开发周期。以下是几种比较成熟的嵌入式 GUI 研究: 1 Microwindows Microwindows 是由美国 CenturySoftware 公司开发的开放源码的嵌入式 GUI 项 目。它不需要其他图形系统的支持,可以充分利用 Linux 提供的 Framebuffer 机制来 进行图形显示。同时在底层提供了对多种芯片的支持,并基本上用 C 语言实现,因此 移植性很强。 Microwindows 是基于分层式设计的,它允许不同的层可以被重新设计以满足系 统实现的需要,目前总共分成三层。最底层是屏幕、鼠标或触摸屏和键盘的驱动程序, 拥有实现系统的显示功能以及满足用户特有的输入需求。中间层实现了一个可移植的 图形引擎,以提供对划线、填充、剪切和着色的支持。在最上层,则提供了多种 API 给应用程序设计者。 由于 Microwindows 为了与 XWindow 的兼容,它采用了传统的基于 UNIXsocket 的 客户端/服务器结构。此时,客户端的画图、窗口建立等操作都是通过套接字与服务器 通信。在这种情况下,系统就变得非常依赖于 UNIXsocket,而 UNIXsocket 的传递都 需要通过内核,这样在一些对实时性要求比较高的系统里就不太有利。而且 Microwindows 基本上用 C 语言实现的,虽然增强了可移植性,但也同样导致了系统的 运行效率不高。同时 Microwindows 的开发工具 FLANX 也还够成熟,有待进一步提高。 2 MiniGUI MiniGUI 是我国国内自主开发、比较成熟的一个图形用户界面系统,面向基于 Linux 的实时嵌入式系统,使用现有成熟的图形引擎(SV2GALib/LibGGI) ,采用类似 WinCE 的线程机制,集成了多字体和多字符集,支持硬件加速能力,充分使用显示内 存。 从整体来看,MiniGUI 也是属于分层结构设计(见图 1-1) 。在最底层,GAL 和 IAL 提供了 Linux 控制台和底层图形接口的支持以及输入设备比如鼠标、键盘等的驱 动,PThread 则是提供了内核级线程支持的函数库;中间层 MiniGUIKernel 则包括了 窗口系统的各个模块,MiniGUI 本身是运行在多线程模式下,它的各个模块都是单独 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 4 的线程运行,同时它也利用线程来实现多窗口;最上层,则是提供给各种应用程序使 用的 API 函数。MiniGUI 中利用线程之间的同步操作,实现了客户线程和服务线程之 间的微客户端/服务器结构,因为它的客户和服务器是同一进程的两个不同线程。它的 核心实现主要体现在消息队列数据结构的使用上。 多线程有一定得好处,但弱点则在于不同的线程共享了同一地址空间,因此,客 户线程可能会破坏系统服务器线程的数据,导致系统健壮性不够健全。虽然目前的 MiniGUILite 版本抛弃 LinuxThread 库而改用微客户端/服务器模式提供多进程的支持, 但是仍然存在着对多进程支持弱、图形功能不完善、图形功能不完善、窗口剪切不完 备等问题。 图图 1-11-1 MiniGUIMiniGUI 体系结构图体系结构图 3 QT/Embedded 和 Qtopia QT/Embedded 是著名的 QT 库开发商 TrollTech 开发的基于 framebuffer、面向嵌 入式系统的 QT 版本。它的特点主要有界面美观、色彩配比好,使用与 QT/Windows 和 QT/X11 完全一致的 API 接口,许多基于 QT 的程序可以非常方便地移植到嵌入式系统; 同时它具有丰富的模块,用户可以根据需要选择 QT/Embedded 的特性集合。 Qtopia 是 TrollTech 专门为嵌入式 Linux 设备所定制终端用户平台,它包括了 Qtopia 库和 Qtopia 的服务器及客户端应用程序。 QT/Embedded 和 Qtopia 的结构如图 1-2 所示。QT/Embedded 实现了对下层输入设 备的驱动和底层图形接口以及各基类和 API。Qtopia 也是以客户/服务器的方式,通过 消息机制来管理各种应用程序。QT 的资源相当丰富,基于 ATAPI 开发的应用程序相当 多,想 KDE 这种应用范围极广的 GUI 也是使用 QTAPI 开发出来的;而且 OPIE 组织也开 发并改进了许多专门基于 QT/Embedded 上的 Qtopia 应用程序及函数库。 不过 T/Embedded 对于系统的资源要求非常高,需要在较大的存储空间和运行空 间上才可以运行;而且它是基于 C+来实现的,而这种 C+接口对于嵌入式系统中的某 第 1 章 绪论 5 些应用来说就显得比较臃肿。 图图 1-21-2 QT/EmbeddedQT/Embedded 和和 QtopiaQtopia 的结构的结构 1.3 项目的主要工作 项目开发工作的目标就是基于 ARM Linux 开发平台,开发一个基于 web 图形界面 的嵌入式 Linux 后台管理系统,并使用 GoForm 技术实现与用户的交互,用于显示嵌入 式 Linux 系统用户信息、网络状态、系统时区等等。根据一般系统的配置需要,目标 管理系统的主要功能包括用户信息和权限管理,系统的重新启动,获取系统的局域网 IP、子网掩码等网络信息,查看或重置网络配置、SMTP 配置、FTP 配置、PPPOE 配置、 时区配置,开发一个与之相对应的,便于用户进行交互的 web 端管理系统。管理系统 主要目标是实现一个良好的用户接口界面,增强用户管理系统的便捷性;提供全面的 系统配置管理信息,动态地向用户传递后台数据;收集系统发生的事件和日志报告, 让用户对可能发生的系统异常做出准确处理;更新用户对系统配置管理的更改,力图 通过 web 实现用户对嵌入式 Linux 的简单管理。 项目的主要工作有: 1.设计系统的架构和开发框架。本文将对系统的功能架构、技术架构、逻辑架构、 数据架构、安全架构分别进行分析设计,并对后台数据库部分采用 sqlite3(嵌入式 开源数据库)建立系统的数据库,这就包括对系统相关的数据库表进行设计和阐述。 2.开发完备的、符合嵌入式 Linux 系统的配置模块。本文将给出所有配置模块的 完整用例和其中重要部分的实现。 3.开发基于 web 图形界面管理系统。 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 6 本次开发,web 端管理系统是重点之一。此系统用于与用户交互,并且与一般的 基于 web 的网页有较大的不同。由于此系统直接操纵 Linux 系统后台的配置,所以要 求有更好的数据交流和信息显示。而且基于 ARM Linux 开发的时候,运用了大量的 CGI 相关技术来实现人机交互界面和数据显示。本文将阐述系统的详细设计和 Goform 技术的应用方法。 1.4 论文的组织结构 全文共分为五章。 第一章是绪论,主要介绍系统的开发背景,阐述国内外相关思想和技术的研究开 发现状,以及说明本文所要解决的主要问题。同时还说明了本文的组织结构。 第二章是系统的总体设计,根据系统设计的一般原理和原则,对系统的总体架构 设计和功能架构设计进行阐述,规划系统的大体轮廓,并确认系统的重点部分。 第三章是系统的详细设计,是本文的重点。在本章中,从系统各个功能模块出发 对每个功能模块的具体实现进行详细描述,阐释其具体技术实现方案,并对系统的数 据库进行设计。 第四章是结束语,对本次开发工作和论文创作工作进行总结,并对嵌入式开发设 计提出更多的设想。 第 1 章 绪论 7 第 2 章 系统总体设计 9 第 2 章 系统总体设计 2.1 系统设计目标和原则 系统设计是软件开发中的重要阶段,在设计时应考虑到系统在嵌入式 Linux 中的 通用性,应具有功能强,操作简单,维护方便,响应速度快等特点。在系统设计阶段, 将对系统的技术、逻辑、功能、数据、安全等方面做出概要设计。主要工作有根据实 际情况划分系统架构层次,分析各层应用的相关技术,定义层与层之间、模块与模块 之间的服务接口,解决系统数据的交互问题,并为系统的性能、安全、部署等问题提 出可执行的方案。本阶段的目标是得到一个可用的、健壮的、能满足开发需要的系统 框架,为下一步的详细设计提供技术基础。 在系统设计时,需要遵循如下原则: 1.通用性和开放性。 2.先进性和成熟性。 3.适用性和健壮性。 4.易用性和可扩展性。 5.可维护性和可重用性。 2.2 系统架构设计 2.2.1 系统技术架构总述 本系统在开发过程中采用嵌入式系统的一般开发模式,即“宿主机/目标板” 开发模式(如图 2-1) ,利用宿主机(PC 机)上丰富的软硬件资源及良好的开发环 境和调试工具来开发目标板上的软件, 然后通过交叉编译环境生成目标代码和可 执行文件,通过串口/USB/以太网等方式下载到目标板上,利用交叉调试器在监控 程序运行,实时分析,最后,将程序下载固化到目标机上,完成整个开发过程。 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 10 图图 2-12-1 宿主机宿主机/ /目标板开发模式目标板开发模式 本系统采用分层的软件体系结构,底层是 Linux 操作系统和各外设接口的驱 动模块,包括 DSP 驱动、网口驱动和串口驱动。中间层是 GoAhead Web 服务器和 嵌入式数据库 SQLite,上层是基于 Web 图形界面的后台管理和网络协议层,如图 2-2。 图图 2-22-2 软件体系结构软件体系结构 采用嵌入式 Linux 作为本系统的操作系统,Linux 支持 TCP/TP,HTTP 等多种 协议,省去了协议移植等复杂工作,降低了开发难度,缩短了开发周期。Linux 移 植技术已经成熟,本文就不作详细阐述。 GoAhead Web 服务器是一款主要面向嵌入式系统的 Web 服务器,主要功能模 块有安全模块,GoForm 模块,CGI 模块,SSL(Secure Sockets Layer)模块。其中 安全模块中又包含内存数据库模块,主要负责存储用户信息,以及提供保密安全 第 2 章 系统总体设计 11 机制。GoForm 模块主要负责处理客户提交的表单数据,并以页面的形式返回相应 的处理结果。CGI 模块主要负责处理客户的 CGI 请求。SSL 模块在 GoAhead 中实现 了 SSL 协议。它是本文设计嵌入式 Linux 后台管理系统的基本软件架构,系统的 所有网络开发都是在这个架构进行,GoAhead Web 服务器作为中间件的一个数据转 发平台和模块承载平台,数据通信都是由 GoAhead Web 服务器来完成,数据库管 理模块,ASP 页面管理模块等的开发也是建立在 GoAhead 的基础上的。 数据库采用 SQLite, SQLite 是一种小巧、开源的嵌入式数据库应用软件,它 提供了标准 SQL 语言,并且由于其主要工作速度较快,满足了数据的实时要求。 本系统选用它主要是对原始数据进行平滑、过滤以及根据用户的命令筛选出数据。 2.2.2 系统功能架构设计 根据系统的目标为用户提供一个基于 Web 图形界面的嵌入式 Linux 后台管 理系统,该系统所应具备的功能列表如表 2-1: 表表 2-12-1 系统的功能列表系统的功能列表 功能功能功能细化功能细化 用户登录与退出(Login (2) 执行 SQL int sqlite3_exec ( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*, int, char*, char*),/Callback function void *, /* 1st argument to callback */ char *errmsg /* Error message written here */ ); (3) 关闭数据库 int sqlite3_close ( sqlite3 * ) ; 其中,sqlite3_exec()函数的第二个参数用来处理一条或多条 SQL 语句, 语句间必须用“;”号隔开。如果是查询(SELECT)语句,查询结果的每一条 记录都必须用第三个参数 Callback 函数,第四个参数则为 Callback 函数的第 一个参数指针。如果不是查询语句,第三、第三个参数为 NULL。所有 SQL 执行 完毕后返回 0,否则返回错误代码,可通过第五个参数来查看错误信息。 在 sqlite3.h 头文件中,还定义了很多其他 C/C+ Interface、所有的抽象 Obejects 和 #define 宏定义,例如表示函数返回值操作是否正确,如果是 SQLITE_OK 则表示操作正常。另外,前面如果用 sqlite3_open 开启了一个数据 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 26 库,结尾时一定要用 sqlite3_close 关闭数据库。 3.3 管理界面设计 3.3.1 登录界面设计 LINUX 后台管理系统中用户的标识和验证,是系统提供的最外层的安全保护 措施。本系统采用的方法是用户在登陆系统前必须以一定的方式向系统标识自己 的名字和身份,系统在核对了用户身份以后确认该用户的使用权限。标识和验证 常用方法如下: (1)代号(UserID):在定义外模式时,就为每个用户提供一个用户代号, 存放在用户表中。用户使用系统时,先键入代号,系统验证通过后才可以进入下 一步的核实,否则发出警告,并且拒绝用户使用该系统。系统的用户表中预先存 储了“admin”和“anonymous”两个用户,分别对应的是系统的管理员和匿名用 户,不能删除。 (2)口令(Password):为了进一步核实用户,系统常常要求用户输入口令 密码,为保密起见,密码以屏蔽的方式显示,系统核对口令验证用户身份。如果 系统设置了允许匿名用户访问,那么任何人将能够以“guest”的身份登录系统, 不需要输入口令即能登陆(流程图见图 3-2) 第 3 章 系统详细设计 27 图图 3-23-2 登录流程图登录流程图 GoAhead 系统中有一个专门用来进行系统安全性的设置,即 security.c, 这 里只需要在这个文件里做一定得修改即可进行系统登陆的相关验证。关键代码如 下: . if(1 = anonymous_enable) else websError(wp, 401, T(“Access DeniednWrong Userid or Wrong Password“); 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 28 return(1); else if(NULL != strstr(path,“.asp“) if(NULL != userid) else /*request user authorization*/ websError(wp, 401, T(“Access DeniednWrong Password“); return(1); /*return 0 to indicate that a later URL handler should process the URL*/ return(0); /* * initial users management */ void websSecurityInit(void) anonymous_enable = check_anonymous_enable(); 第 3 章 系统详细设计 29 . 3.3.2 子窗体中基本操作功能设计 基于 WEB 图形界面的嵌入式 Linux 后台管理系统的日常使用,主要是对系统 的相关配置信息进行查看、添加、修改和删除。由于本系统设计的子窗体较多, 因篇幅所限不一一介绍,只以其中的用户管理和时区配置管理的操作为例,简要 介绍其功能的设计。 (1) 用户管理功能设计 图图 3-33-3 用户管理界面用户管理界面 图图 3-43-4 添加用户界面添加用户界面 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 30 用户管理功能包括添加、删除用户,修改用户密码,设置匿名用户登录,如 图 3-3。添加用户时(如图 3-4) ,必须对新增用户的用户名、密码进行合法性验 证,用户名必须由字母、数字、 “_” 、 “.”组成,以字母开头,用户名长度为 2- 23 个字符,系统只存在唯一一个命名为“admin”或“guest”的用户。用户密 码由 5-63 个字母或数字或“_”组成。关键代码如下: . function CheckUser() var UserId=document.formAddUser.UserId.value; /获取用户名 var PassWord=document.formAddUser.PassWord.value; /获取用户密码 var PassWordConfirm=document.formAddUser.PassWordConfirm.value; /获 取确认用户密码 /* 检查用户名 */ if (!CheckUserName(UserId) document.formAddUser.UserId.value=“; document.formAddUser.UserId.focus(); return false; /* 检查用户密码 */ if (!CheckPasswd(PassWord) document.formAddUser.PassWord.value=“; document.formAddUser.PassWord.focus(); return false; /* 检查确认密码是否与原密码一致 */ 第 3 章 系统详细设计 31 if (PassWord != PassWordConfirm) alert(“The Password and Confirm password do not match. Please enter again.“); document.formAddUser.PassWordConfirm.value=“; document.formAddUser.PassWordConfirm.focus(); return false; return true; /* 用户名设置的合法性检查 */ function CheckUserName(username) var patrn=/a-zA-Z1(a-zA-Z0-9|._)1,22$/; if (!patrn.exec(username) alert(“User name from the letters or numbers or _ or .,and beginning with the letter,and the length is between 2 and 23“); return false; return true; /* 密码设置的合法性检查 */ function CheckPasswd(password) var patrn=/(w)5,63$/; if (!patrn.exec(password) 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 32 alert(“PassWord from the letters or numbers or _ ,and the length is between 5 and 63“); return false; return true; (2)时区配置管理功能设计 图图 3-53-5 时区配置界面时区配置界面 Linux 后台管理系统中,包括很多嵌入式系统 Linux 的相关配置,时区配置就 是其中重要的一个。时区配置包括查看当前系统时间、系统时区,设置 NTP 服务 器是默认还是手动设置,将系统时间与 PC 时间同步,手动设置系统时间。时区设 置时,包括标准的 38 个时区。对于访问权限也做了相应验证:“guest”用户不 第 3 章 系统详细设计 33 能访问此页面, “user”用户不能修改任何数据。关键代码如下: . function Load() loadradio() bitcontrol_change() startserverclock() /启动服务器时钟 startpcclock() /启动 PC 时钟 var deforman = document.dateform.def_or_man var deform = deforman.value getSelectlist(dateform.uptime, deform); var hiddentimezone = document.dateform.hiddenTimeZone document.pc_time.H_timezone.value = hiddentimezone.value document.man_time.H_timezone.value = hiddentimezone.value var zone = hiddentimezone.value getSelectlist(dateform.timeZone, zone); /获取时区列表 ChackPrivilege() 3.3.3 数据获取和更新的实现 系统的所有界面采用的是类 ASP 的服务器端脚本语言,在 asp 页面注册 asp 函数的语法为,而所有 asp 函数在使用之前都必须事先注册声明, 嵌入式 LINUX 后台管理 WEB GUI 的设计与实现 34 注册函数的代码如下: void register_asp_function(void) /* Register ASP function of user management */ register_asp_user_function(); /* Register ASP function of net configuration */ register_asp_netconf_function(); /* Register ASP function of smtp configuration */ register_asp_smtpconf_function(); /* Register ASP function of ftp configuration */ register_asp_ftpconf_function(); /* Register ASP function of pppoe configuration */ r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论