基于微信小程序的垃圾分类服务系统的设计与实现_第1页
基于微信小程序的垃圾分类服务系统的设计与实现_第2页
基于微信小程序的垃圾分类服务系统的设计与实现_第3页
基于微信小程序的垃圾分类服务系统的设计与实现_第4页
基于微信小程序的垃圾分类服务系统的设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

摘要扔垃圾是一件日常小事,然而却掀起了2019年的欣然大波。为了提高垃圾的价值,上海市立法开始施行城市垃圾分类,紧接着也有多个城市效仿。垃圾需要按照规定进行分类投放,而分类的标准更是超出人们的常识,难倒了无数的市民,这让原本的小事变得不再是小事,从而引发了社会的广泛关注。由于这是一个新兴的领域,目前市场上相关的软件非常少,而进行垃圾分类的城市会越来越多,关于这个领域的软件会有很好的发展前进和应用市场。出于上诉的原因,我本次选择研究课题是《基于微信小程序的垃圾分类服务系统的设计与实现》。采用的是微信小程序云开发模式,让当下最火的电子商务与垃圾分类进行有机结合,开发出一个服务型的“轻”应用。本系统主要研究小程序端的开发,后台数据管理通过云开发控制台操控。其主要由五个功能模块组成,分别是垃圾箱信息模块、服务订单模块、垃圾分类资讯模块、个人信息模块以及服务点管理模块。系统的前台采用WXML+WXSS+WXS+JavaScript,后台采用云函数+云数据库+云存储。关键词:垃圾分类微信小程序云开发电子商务

AbstractLitteringisadailything,butit'sabigwavein2019.Inordertoimprovethevalueofmunicipalsolidwaste,Shanghaimunicipallegislationbegantoimplementtheclassificationofmunicipalsolidwaste,andthenmanycitiesfollowedsuit.Garbageneedstobeclassifiedandputinaccordingtotheregulations,andtheclassificationstandardisbeyondpeople'scommonsense,whichhasbaffledcountlesscitizens,whichmakestheoriginalsmallmatternolongerasmallmatter,thuscausingwidespreadconcernofthesociety.Asthisisanemergingfield,thereareveryfewrelevantsoftwareinthemarketatpresent,andmoreandmorecitieswillcarryoutgarbageclassification,sothesoftwareinthisfieldwillhaveagooddevelopmentandapplicationmarket.Forthereasonofappeal,myresearchtopicis"DesignandimplementationofgarbageclassificationservicesystembasedonMiniProgram".ItadoptsthedevelopmentmodeofMiniProgramcloud,sothatthemostpopulare-commerceandgarbageclassificationcanbeorganicallycombinedtodevelopaservice-oriented"light"application.ThissystemmainlystudiesthedevelopmentoftheMiniProgramside,andthebackgrounddatamanagementiscontrolledbytheclouddevelopmentconsole.Itismainlycomposedoffivefunctionalmodules,namely,garbagebininformationmodule,serviceordermodule,garbageclassificationinformationmodule,personalinformationmoduleandservicepointmanagementmodule.ThesystemadoptsWXML+WXSS+WXS+JavaScriptintheforegroundandcloudfunction+clouddatabase+cloudstorageinthebackground.Keywords:GarbageclassificationMiniProgramclouddevelopmentElectronicCommerce 目录1. 绪论 绪论开发背景上海市在2019年初通过立法全面推行生活垃圾强制分类制度。随后,全国各大城市也纷纷将垃圾分类提上日程。在不远的将来,垃圾分类将进入每家每户每天的生活,而在目前的市场上有关垃圾分类的服务却非常稀少,甚至有的市民不懂怎么将垃圾进行分类,所以有关垃圾分类的软件将会有很好的应用前景。据官方数据表明,微信已有11.65亿活跃用户,巨大的用户基数加上不用下载和安装就能用的优势,使得近两年微信小程序发展迅猛。而小程序云开发为开发者提供完整的原生云端支持和微信服务支持,可以弱化后端和运维概念,不仅提高了开发效率,也降低了维护成本。相比于AndroidAPP和iosAPP,微信小程序两个平台通用,有着巨大的优势。伴随着互联网的发展,电子货币逐渐成熟,电子商务在世界得到了普及,大家都慢慢习惯了在网上进行交易,既方便又快捷。而B2C的标准化服务销售模式,让企业提供的服务从大众化逐渐演变成个性化,实现一对一销售,减少了经营成本,也减少了中间商,从而减低了价格,因此被消费者所喜爱。综上所诉,本次将采用“微信小程序云开发+B2C电子商务”的模式进行垃圾分类服务系统的设计与实现。开发目的以及意义垃圾分类服务系统能为垃圾分类提供相关的服务,并将其移植到互联网上,是B2C电子商务的一种实现模式。利用小程序云开发集成于小程序控制台的原生Serverless云服务,无需搭建服务器,只要进行核心业务的开发即可。垃圾分类服务系统不仅方便了垃圾分类,节约了人力物力,还提供了奖罚机制,为地方政府相关法律法规的实施提供了便利,激发市民的守法热情,也为用户提供了人性化的服务。研究内容2019年,前端出现了一个无服务开发Serverless的热词,而微信小程序云开发便是这种无服务开发模式。这种开发模式真正实现了全栈技术开发,无服务开发并非真的无服务,而是用函数代替服务,对于前端而言,后端服务就是一个函数,整个程序的前端和后端逻辑都能在同一个IDE里面去完成。Serverless打破了传统的物理隔离,使得开发者不用再去做任何隔离中间层的事情,只需要关注函数的实现即可。微信小程序的云开发提供了云函数,云数据库以及云存储三大基础能力。云函数是指一段运行在服务端的后端代码。每一个云函数都有其开发者编写的自身业务逻辑,用来实现某个特定功能,这样可以部署多个用户共享,更方便代码的维护,且能更容易获取AppID、OpenID等敏感信息。在运管方面,云函数可以实现弹性伸缩,根据当前的请求量和并发量,可以快速扩容,以防止服务崩溃。云数据库是指在服务端提供的一个既可以在前端操作,也可以在云函数操作的文档型数据库。云数据库在小程序端有4种权限控制,基本上完全覆盖公有、私有的读写搭配,可以实现collection级别的权限控制,而在云函数端具有最高的读写管理权限,对于数据安全有着很大的保障。云数据库的本质和传统的关系型数据有着很大的区别,关系型数据库保存的是若干个由多行多列组成的表,而文档型数据库保存的是JSON文档。云存储是云开发提供的一块可以在小程序前端和云函数端直接上传或下载的储存空间,可用于网上在线存储各种图片、音频和视频等数据,并提供了公用网的域名,有天然CDN加速,可以从公用网通过HTTP的方式访问,在一定程度上使小程序更加轻量化。鉴于小程序云开发的诸多优越性,本次将围绕垃圾分类服务系统,采用微信小程序云开发的模式对其进行设计与实现。

技术与工具介绍技术介绍WXMLWXML是小程序针对自身框架设计的一套标签语言,相当于Web中的HTML,只不过使用的标签名字有所差异,且宽容度也没有HTML那么高。WXML的标签是已经包装好的,里面提供了文字、图片、音频、视频、地图等组件,利用这些组件进行排版,结合微信小程序定义的基础组件和事件系统可以构建出各式各样的页面。WXSSWXSS是样式语言,用来修饰WXML组件的大小、位置、色彩等样式,不仅简化了WXML的标签代码,还加快了下载显示的速度。WXSS具有CSS的大部分特性,甚至做了扩充和修改,例如规定屏幕的宽度是750rpx,提供rpx这个相对位置的单位,让不同大小的手机屏幕都能适用同一个页面,让其更适合微信小程序的开发。WXSWXS是小程序的脚本语言,结合WXML可以构建出页面的结构。WXS只提供给开发者console、Math、JSON、Number、Date五个基础库,以及一些常用的全局变量和全局函数。为了减少跨线程通信的开销,WXS与WXML都是属于视图层,运行在同一个线程内,在ios上,小程序使用脱离JavaScript环境的WXS,性能大大提升,会比javascript快最多20倍。JavaScriptJavaScript是一套多功能的脚本语言,同时也是小程序开发的主要语言,用来开发业务逻辑以及调用小程序的API。然而它与Java并没有太大的关系,是两套完全不同的语言框架,Java是面向对象的编程语言,可通过执行编译文件来运行相关程序;而JavaScript是面向对象的脚本语言,不能单独运行。在小程序中,每一个JavaScript文件都是一个独立的模块,不同模块之间如果要相互调用可通过module.exports或者exports对外暴露接口。工具介绍微信开发者工具微信开发者团队推出了全新的微信开发者工具,可以在电脑上模拟访问微信小程序,帮助开发者更方便、更高效地完成小程序的API和页面的开发、调试、代码查看和编辑、小程序预览和发布等功能。

系统分析系统可行性分析技术可行性本系统的开发采用当前比较热门的微信小程序云开发技术,前台采用WXML+WXSS+WXS+JavaScript,后台用云函数+云数据库+云存储的模式,所涉及的相关技术本人已会使用,所以本系统在技术上可行。经济可行性本系统开发用的是微信开发者工具,是免费的开发工具,云开发资源配额为免费的资源均衡型“基础版1”,这个资源配额完全满足开发调试需求。调试用的自己和朋友的手机,所以基本上实现了零成本开发,具备经济可行性。操作可行性本系统的客户端都是在小程序上的,所以只要是有微信的手机就能使用,操作界面相对来说比较简洁容易操作,对使用者没有什么特别的要求。后端有微信开发者工具提供的可视化云开发控制台,操作也相对来说比较简单。故具备操作可行性。法律可行性该系统开发全部属于本人的创作,不涉及任何抄袭和侵权问题,具有法律可行性。系统需求分析功能需求垃圾分类服务系统的用户定位是需要处理生活的垃圾的市民,按照参与者的作用可以分为普通用户和服务点负责人用户。对于普通用户来说,我需要知道这附近的分类垃圾桶的容量、位置、距离等信息,以方便我去扔垃圾。如果我突然没时间或者不方便去扔垃圾,我就需要相关的服务功能,让人帮我去扔下垃圾,所以要有下单,查看历史订单这方面的功能。再来就相关的垃圾分类政策、教学等资讯的内容。因为这其中涉及金钱的交易,所以要有钱包的功能,最好是能绑定银行卡,有相关的支付安全保障。用例图如图3-1所示。对于服务点负责人用户来讲,首先他也是一个市民,拥有普通用户的所有功能,其次他是个服务点的负责人,他要有权限能处理该服务点的业务,修改服务点信息和订单管理。用例图如图3-2所示。图3-1普通用户用例图图3-2服务点负责人用户用例图性能需求(1)准确性由于本系统采用的是由腾讯提供一站式后端服务的微信小程序云开发模式,在安全性能上有足够的保障。(2)准确性在执行数据库的增加、删除、更新时,要确保数据的准确性,不允许出现多增加、重复增加、多删除、重复删除的情况,并且在删除重要数据时,应该给予提示。(3)及时性在执行数据库的增加、删除、更新时,数据库响应时间要求不超过2秒;小程序端的页面操作要求不超过1秒,不然会降低用户的交互体验。

系统设计系统框架设计本系统采用视图层、逻辑层、云开发这样的开发框架,如图4-1所示。视图层由WXML和WXSS组成,是系统的前端,通过不同的结构样式,并结合逻辑层传来的数据,渲染成各式各样的页面,从而给用户带来不一样的操作体验。逻辑层主要是定义数据和事务逻辑处理,由JavaScript和微信团队提供的API等能力,编写成各个页面的js脚本文件,进行相关的事务处理,并将处理后的结果返回视图层重新渲染。云开发由云函数、云数据库、云存储组成,所涉及的数据和运算都是在云端完成。小程序端可以通过原生接口调用上传并部署在云端的云函数,实现某些指定的功能,也能通过云函数操作云数据库和云存储。云函数拥有读写数据库的所有权限,与小程序端有权限级别的差异。小程序端还能直接通过原生接口对云数据库和云存储进行操作。图4-1系统框架图系统功能模块设计垃圾分类服务系统采用的是微信小程序云开发模式,后台数据管理可通过云开发控制台操控,故本系统主要针对小程序端进行开发。本系统的小程序端主要是普通用户和服务点负责人用户这两大用户群体使用,服务点负责人用户是拥有服务点管理权限的普通用户,它不仅拥有普通用户的所有功能模块,而且还拥有某个服务点的管理模块。系统大的功能模块有五个,分别是垃圾箱信息模块、服务订单模块、垃圾分类资讯模块、个人信息模块以及服务点负责人用户特有的服务点管理模块。系统功能模块如图4-2所示:图4-2系统功能模块图垃圾箱信息模块垃圾桶信息为page页面的“主页”,这里会根据你当前的定位,生成附近垃圾桶由近到远的列表,上面有垃圾箱的编号,位置,离你现在定位的距离,以及四类垃圾箱各自的剩余容量;点击导航按钮,会进入腾讯地图,并在地图上显示要去垃圾桶的位置,可进行路线导航。找到垃圾箱扔垃圾时,用扫一扫的功能扫描垃圾桶上的二维码,垃圾桶会自动扫描识别分类情况,然后返回数据给系统,系统会根据你垃圾投放的情况给予奖惩,并生成相应的垃圾投放记录。垃圾箱信息模块功能如图4-3所示:图4-3垃圾箱信息模块功能图服务订单模块服务订单模块为page页面的订单,分为三个板块,我要下单、进行中和已完成。在我要下单板块中,会根据你当前的位置进行定位,然后需要填写详细住址、联系方式和选择是否分类等信息,然后确认下单。在进行中板块,会显示进行中的订单列表,并可以取消订单。在已完成的板块中,会显示已完成和已退单的列表,并可以进行删除。服务订单模块功能如图4-4所示:图4-4服务订单模块功能图垃圾分类资讯模块垃圾分类资讯模块为page页面的资讯,页面展示八个推荐的垃圾分类相关视频,点击查看全部就能查看所有视频的列表,点击视频就会进入视频播放界面,并进行自动播放。垃圾分类资讯模块功能如图4-5所示:图4-5垃圾分类资讯模块功能图个人信息模块个人信息模块为page页面“我的”,包括我的钱包、设置、垃圾投放记录和订单记录。我的钱包里面有银行卡包、充值、提现、交易记录等功能。充值要选择相应的充值面额和银行卡,然后点击充值。提现要选择提现到账的银行卡和输入提现金额。银行卡包有已添加银行卡列表,可以进行解绑,也可以点击添加银行卡,输入姓名、手机号、银行卡号和支行名称,系统会根据你输入的银行卡号匹配到相应的银行和银行卡类型,再点击提交即可。交易记录会记录你钱包资金变动的明细,可以删除。在设置里面有支付密码设置,可对支付密码进行修改。个人信息模块功能如图4-6所示:图4-6个人信息模块功能图服务点管理模块当普通用户有服务点管理权限时,在设置里会显示服务点管理模块的功能。服务点信息修改功能可以修改服务点名字、负责人名字和负责人姓名。当该服务点有未完成的新订单增加时,会提示订单再增加数量,进入服务点新订单,会显示所有的未完成订单详情,可以单个完成订单,也可以点击管理批量选择完成订单,如果需要查找某个地区的订单或某个订单,可以在上面搜索框进行查找。服务点全部订单订单会显示所有订单的详情,可在搜索框进行搜索查找,但不能删除订单。服务点管理模块功能如图4-7所示:图4-7服务点管理模块功能图系统数据库设计数据库对比关系型数据库和JSON数据库的概念对应关系如下图4-8所示:图4-8关系型数据库和文档型数据库的概念对应关系图数据库分布垃圾分类服务系统使用的是腾讯云提供的云数据库,这是一个JSON数据库,具体分布情况如下表4-1:表4-1数据库分布表环境名称数据库容量同时连接数读操作数写操作数集合限制wechatcloud2GB205万/天3万/天100个说明:数据库同时连接数指数据库请求并发数量,如同时有三十个数据库操作请求,则有二十个会同时执行,剩下十个返回超出并发错误;一次数据库请求(无论小程序端发起还是云函数端发起)将耗费一个连接;每个云环境分别有一个同时连接数限制、独立计数。数据库概念结构设计本系统中有垃圾箱信息、垃圾投放记录、订单记录、服务点信息、图片信息、视频信息、用户信息、银行卡信息、交易记录等实体,各个实体的E-R图如下:图4-9垃圾箱信息E-R图图4-10垃圾投放记录E-R图图4-11订单记录E-R图图4-12服务点信息E-R图图4-13图片信息E-R图图4-14视频信息E-R图图4-15用户信息E-R图图4-16银行卡信息E-R图图4-17交易记录E-R图数据库逻辑结构设计为了构建系统最优的数据库模式,从而更好的满足用户的需求,优化系统的性能,在经过数据库概念结构设计后,还需要对数据库进行逻辑结构设计,形成成数据字典。本系统设计了9个数据库集合,如下表所示:表4-2trash表集合名称:trash(垃圾箱)集合权限:所有用户可读记录名称:使用系统自动生成的ID字段名称字段类型说明numberstring垃圾箱编号photostring垃圾箱照片addressstring垃圾箱地址latitudenumber垃圾箱纬度longitudenumber垃圾箱经度bluenumber可回收垃圾箱剩余容量rednumber有害垃圾箱剩余容量greennumber餐余垃圾箱剩余容量greynumber其他垃圾箱剩余容量表4-3putRecord表集合名称:putRecord(垃圾投放记录)集合权限:仅创建者可读写记录名称:使用系统自动生成的ID字段名称字段类型说明_openidstring创建者openidnumberstring垃圾箱编号addressstring垃圾箱地址judgestring是否投放正确weightnumber投放重量moneystring奖惩金额timestring投放时间表4-4orderRecord表集合名称:orderRecord(订单记录)集合权限:仅创建者可读写记录名称:使用系统自动生成的ID字段名称字段类型说明_openidstring创建者openidaddressstring订单定位地址detailedAddressstring订单详细地址servicePointstring服务点IDnamestring接单服务点名称headstring服务点负责人名字headPhonestring服务点负责人手机号码phonestring订单手机号码coststring订单费用chargebackboolean是否退单displayboolean订单是否显示statestring订单状态timestring下单时间表4-5servicePoint表集合名称:servicePoint(服务点信息)集合权限:所有用户可读,仅创建者可读写记录名称:使用系统自动生成的ID字段名称字段类型说明namestring服务点名称headstring服务点负责人名字phonestring服务点负责人手机latitudenumber服务点纬度longitudenumber服务点经度表4-6image表集合名称:image(图片信息)集合权限:所有用户可读记录名称:_id:orderPoster字段名称字段类型说明orderPoster1string订单界面海报orderPoster2string订单界面海报orderPoster3string订单界面海报记录名称:_id:informationPoster字段名称字段类型说明informationPoster1string资讯界面海报informationPoster2string资讯界面海报informationPoster3string资讯界面海报表4-7video表集合名称:video(视频信息)集合权限:所有用户可读记录名称:使用系统自动生成的ID字段名称字段类型说明mapUrlstring视频URLnamestring视频标题timestring视频发布时间表4-8user表集合名称:user(用户信息)集合权限:仅创建者可读写记录名称:使用系统自动生成的ID字段名称字段类型说明_openidstring创建者openidservicePointstring服务点负责人IDwalletnumber钱包passwordstring支付密码表4-9bankCard表集合名称:bankCard(银行卡信息)集合权限:仅创建者可读写记录名称:使用系统自动生成的ID字段名称字段类型说明_openidstring创建者openidbackgroundColorstring银行卡列表背景颜色bankNamestring支行名字bankNumberstring银行卡号cardTypestring卡类型namestring持卡人姓名phoneNumberstring持卡人手机号码表4-10walletRecord表集合名称:walletRecord(交易记录)集合权限:仅创建者可读写记录名称:使用系统自动生成的ID字段名称字段类型说明_openidstring创建者openidmoneystring交易金额sourcestring交易来源waystring交易方式timestring交易时间

系统实现小程序全局配置每个小程序的页面都由“.json”、“.wxml”、“.wxss”和“.js”四个文件组成。关于“.json”文件,JSON并不是一种编程语言,而是一种数据格式,在小程序中起静态配置的作用。在小程序根目录下的app.json、app.js和app.wxss是小程序的全局配置文件。app.json确定了小程序的导航栏以及由“主页”、“订单”、“扫一扫”、“资讯”、“我的”五个tab组成的底部tab栏的界面框架。本系统采用云开发模式,需在app.js中开通了云开发的能力,代码如下图5-1所示。图5-1开通云开发代码块图登录系统的登录采用微信授权的方式,即不用输入账号密码,利用微信用户使用微信身份进行认证登录,登录流程如图5-2所示。在打开小程序时,系统将自动检查当前登录的账号是否授权过这个小程序,如未授权则显示图5-3所示的授权页面,授权后系统自动调用云函数获取你当前登录微信账号的唯一标识openid,并查询数据库是否有该openid的用户,没有则添加;如已授权则直接调用云函数获取openid,进入“我的”页面。为了使openid在全局可用,在app.js中定义全局数据openid用来存储登录获取的微信openid,如图5-3所示。图5-2登录流程图图5-3授权界面图垃圾箱信息模块定位与导航腾讯位置服务为小程序提供了丰富的地图API位置服务能力。使用该能力要先申请腾讯位置服务开发者密钥key,再开通webserviceAPI服务,下载微信小程序JavaScriptSDK并导入项目,最后在开发者设置中添加服务器域名。将插件包引入app.json并授权定位,在需要使用的pages的.js文件中引入SDK核心类,再实例化API核心类就可以调用相应的小程序API。进入主页面onLoad()生命周期函数将自动调用wx.getLocation()获取当前用户位置,点击导航按钮,调用wx.openLocation()在微信内置地图查看标记点位置,并可进行路线导航,如图5-4、图5-5所示。图5-4标记导航代码块图图5-5定位、导航界面图垃圾箱信息列表如图5-6、图5-7所示,定义由两点经纬度计算距离的方法distance(),根据你当前的定位计算距离,循环遍历垃圾箱信息列表由近到远排序,然后渲染到前端界面,如图5-8所示。图5-6计算距离代码块图图5-7列表排序代码块图图5-8“主页”界面图扫描二维码为了方便系统使用,在垃圾投放过程中引入了二维码扫码的功能。通过调用小程序APIwx.scanCode()进行二维码扫描,并将扫码后的数据进行处理,生成相对应的垃圾投放记录,更改垃圾桶的容量,代码如图5-9所示。由于没有垃圾桶实物设备,这里采取二维码模拟数据的形式进行模拟投放垃圾后垃圾桶返回的信息,可在网上进行二维码生成,文本格式为:垃圾箱编号,垃圾箱位置,重量,是否投放正确,如图5-10所示。图5-9扫描二维码代码块图图5-10二维码生成图垃圾投放记录列表滑动删除为了方便用户操作,垃圾投放记录列表加入了左滑出现删除按钮的功能,如图5-11所示。其实现主要分为四步,第一步是开始触摸方法drawStart(),当开始触摸组件时,把列表所有条目距离右边框的距离item.right重置为0,恢复滑动过后没有删除的条目,并记录起点的X坐标clientX;第二步是滑动条目方法drawMove(),标记滑动的列表条目item,监听触摸点的X坐标clientX的变化,用起点的X坐标减去滑动的X坐标计算滑动的距离disX,如果disX大于20单位则赋值给item.right显示实时滑动距离,否则不显示滑动;第三步是结束操作drawEnd(),当松开触摸后,记录滑动的条目的_id,以便进行删除操作。判断第二步drawMove()中滑动距离是否大于删除按钮的一半宽度delBtnWidth/2,若是就将条目距离右边框的距离item.right设置为删除按钮的宽度,即显示整个删除按钮,不是就将该条目恢复初始状态item.right为0;第四步为删除触发事件delItem(),点击删除按钮则查找数据库walletRecord集合移除第三步记录的滑动条目,代码如图5-12、图5-13所示。前端界面通过调用js中的前三步的事件处理方法bindtouchstart=“drawStart”、bindtouchmove=“drawMove”、bingtouchend=“drawEnd”,将操作后的item.right的值用来改变style=“right:{{item.right}}rpx”,从而渲染界面条目的样式。图5-11删除订单界面图图5-12滑动删除代码块图图5-13滑动删除代码块图服务订单模块逆地址解析在填写订单的时候,会根据当前位置获取地点详细信息。而小程序提供的APIwx.getLocation能获取当前位置的经纬度,但却不能直接获取位置的具体信息,要通过配合腾讯位置服务提供的LBS数据服务工具包,才能根据地址经纬度进行逆地址解析。下载工具包放进项目的utils文件夹下,在使用的js文件中进行导入,再通过key秘钥进行qqmapsdk对象初始化,在获取到经纬度后调用qqmapsdk.reverseGeocoder()方法逆地址解析,控制台显示的解析结果如图5-14所示。图5-14逆地址解析控制台图支付密码加密支付密码涉及个人财产的安全,在系统中采用一种被广泛使用的密码散列函数来加密支付密码,也就是MD5信息摘要算法加密。密码加密支付流程如图5-15所示。通过将8位字符串转换为16个字块的序列,存储为数组,并为MD4/5计算追加适当的填充,计算一个单词数组的MD5,生成一个单词数组,再将一个由数字组成的数组转换为十六进制字符串。其部分代码如下图5-16、图5-17所示。图5-15支付流程图图5-16MD5加密算法图图5-17MD5加密算法图历史订单如图5-18所示,“订单”模块中的历史订单页面设计了一个可左右切换的导航栏来区分“进行中”和“已完成”的订单。视图层次代码如图5-19所示,顶部导航栏由两个view标签组成,通过三目运算判断当前currentTab的值(0代表“进行中”页面,1代表“已完成”页面),选择不同的样式渲染导航栏。而swiper也会根据currentTab的值切换不同的页面,由于swiper是滑块视图容器,而在订单记录里面支持滑动删除的功能,所以要将导航栏左右滑动的功能禁止,即在swiper-item组件中左右滑动无效,js代码如图5-20所示。图5-18“订单”相关界面图图5-19导航栏WXML代码块图图5-20导航栏js代码块图垃圾分类资讯模块垃圾分类资讯模块展示了一些有关垃圾分类的视频,如图5-21所示,视频并不用下载,通过小程序的video组件src中添加视频的资源地址,便可以播放。系统管理者通过云开发控制台在数据库video中添加新的记录,用户就可以获取数据库的新视频地址,更新视频内容。图5-21“资讯”相关界面图个人信息模块添加银行卡在添加银行卡的界面填写银行卡号,如图5-22所示,每输入一个数字就会进行一轮正则表达式的匹配。因为每家银行的银行卡卡号都会有自己特定六位数字开头且每种卡的卡号都有其特定的长度,所有在匹配过程中可以写成正则表达式,如图5-23所示,/^(95595|95596|95597|95598|95599)\d{14}$/表示由95595、95596、95597、95598、95599任意一个开头的且后面还有14位数的是中国农业银行储蓄卡,匹配过程会显示在控制台上,如图5-24所示。图5-22添加银行卡界面图图5-23正则表达式匹配算法代码块图图5-24控制台图在添加银行卡还需要填写手机号码,手机号码是一个11位数长度的特别字符串,为了防止少打或者多打手机号码位数以及胡乱输入手机号码,这里采用正则表达式来验证手机号码,如图5-25所示。先通过compare定义正则表达式/^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/表示由13、15、18、17任意一个开头的且后面1个1到9间的数字还有任意8位数字的11位长度的字符串集合,然后将输入的手机号码进行验证,判断是否符合要求。图5-25验证手机号码代码块图充值与提现在充值与提现的模块中,由于小程序的个人开发权限限制,这里只是模拟数据的增减。在图5-26所示的充值页面中,采用定额充值的方式,有六个充值面额的按钮可以选择,每个按钮都有一个点击触发事件,用来标记并改变点击的按钮。在逻辑层定义按钮的初始状态wxsss样式,在每个点击触发事件中改变按钮的样式,代码如图3-27所示。在图5-28所示的提现页面中,采用输入金额提现的方式,当点击提现会根据你账户的钱包余额进行判断是否余额不足,并给予提示,提现成功会生成相应的交易记录,储存到数据库。图5-26充值页面图图5-27充值面额代码块图图5-28提现页面图银行卡包用户添加的银行卡可以在银行卡包中显示,如图5-29所示,同一银行的银行卡会显示相同的颜色,不同银行的银行卡会显示不同的颜色,银行卡条目左滑会出现解绑的按钮,和垃圾投放记录滑动删除的原理一样,点击解绑可以解绑该银行卡,并将其从数据库移除。图5-29银行卡包页面图其他功能个人信息模块展示了用户的个人信息,在我的钱包会显示当前账户余额。交易记录记录着每一次账户余额的变动明细,支持左滑删除,和垃圾投放记录滑动删除的原理一样,如图5-30所示。图5-30个人中心其他页面图服务点管理模块设置点击进入设置界面,若是普通用户,那么只会显示修改密码的功能,如果是服务点负责人,则会多显示服务点信息修改、服务点新订单、服务点历史订单这三个服务点管理的功能,如图5-31所示。在页面的生命周期函数onLoad()中获取用户的servicePoint权限,若是没有则为空,不显示服务点管理功能;若不为空,则显示三个服务点管理功能,并查询该服务点有多少待完成的新订单,显示到视图层,代码如图5-32所示。图5-31设置页面图图5-32服务点管理功能代码块图服务点新订单批量操作如图5-34所示,在服务点新订单中,为了方便负责人的操作,引入了批量修改的操作,点击管理进入批量操作模式,显示底部导航栏和左侧的勾选栏,用WXML的icon图标作为勾选的效果。在逻辑层,建立一个数组arr用来存放勾选的条目_id,点击完成则修改数据库orderRecord集合中_id为该数组_id的所有记录的stete值改为已完成,代码如图5-35、图5-36所示。图5-34服务点新订单页面图图5-35批量操作代码块图图5-36批量操作代码块图搜索框模糊搜索在服务点新订单和服务点历史订单中都有模糊搜索的功能。模糊搜索是指系统允许被搜索信息和搜索提问之间存在一定的差异,也是正则表达式的一种应用。如图5-37所示,输入“嘉腾”两个字,所有有这两个字的对象都会被筛选出来。这样做用户便不用记住搜索的具体内容或者具体归属,就能找到相应的一个符合条件的集合。云数据库提供了正则对象,可构造正则表达式实现模糊搜索,如图5-38所示。图5-37模糊搜索界面图图5-38模糊搜索代码块图

系统测试测试是检验一个系统是否合格的重要手段。在开发的过程中,往往因为经验不足或是个人疏忽而导致了一些bug的产生,这个时候就需要对软件进行一个系统的测试,进而发现bug,完善系统功能。本次研究采用黑盒测试和白盒测试对系统的功能、性能以及兼容性行进测试。功能测试如表6-1所示,经过对系统中的各项功能进行手动测试与验证,测试结果都符合预期要求。表6-1功能测试表开发人员郑康佳项目名称垃圾分类服务系统用例作者郑康佳版本号1.0测试类型手动测试测试人员郑康佳测试日期2020/03/28前置条件云数据库已存在部分可测试数据编号测试项操作步骤预期结果实际结果1登录打开小程序已经授权,跳转至“我的”页面;未授权,显示授权页面首次登录显示授权页面,授权后等次登录直接跳转至“我的”页面2授权点击授权登录允许授权,跳转至“我的”页面;拒绝授权,提示,返回授权页面第一次点击拒绝授权,提示,返回授权页面;第二次点击允许授权,跳转至“我的”页面3主页点击主页显示由近到远的垃圾箱相关信息列表首次点击提示是否授权获取位置信息,确定则显示由近到远的垃圾箱相关信息列表,拒绝则显示默认顺序垃圾桶列表4导航1.点击导航按钮2.点击“去这里”按钮1.显示地图上该垃圾桶的位置2.进行路线导航1.显示地图上该垃圾桶的位置2.跳转到应用进行路线导航5扫一扫点击扫一扫,扫描特定二维码1.提示“已开启,请投放”,跳转到主页,并返回投放数据,生成投放记录,减少改垃圾箱容量,奖惩金额算入钱包,生成交易记录2.提示“二维码有误”,跳转到主页提示“已开启,请投放”,跳转到主页,垃圾箱容量减少1.6kg,生成一条新的垃圾投放记录,钱包多了0.8元,生成一条新的交易记录6我要下单1.点击我要下单2.填写订单信息并提交3.输入支付密码1.显示下单表2.提醒手机号码输入有误3.提示“下单成功”,生成新的订单,钱包金额减少,生成新的交易记录,跳转到“订单”页面4.提示密码错误,支付失败,跳转到重新输入提示“下单成功”,生成新订单,钱包金额减5元,生成新的交易记录,跳转到“订单”页面7进行中1.点击进行中2.左滑点击退单1.显示进行中订单列表2.提示是否确认退单,确认修改订单状态,刷新列表,取消则不改变1.显示进行中订单列表2.提示是否确认退单,确认修改订单状态,刷新列表,取消则不改变8已完成1.点击已完成2.左滑点击删除1.显示已完成订单列表2.提示是否确认删除,确认修改订单状态,刷新列表,取消则不改变1.显示已完成订单列表2.提示是否确认删除,确认修改订单状态,刷新列表,取消则不改变9资讯1.点击资讯2.点击播放视频1.显示八个推荐视频2.跳转到视频播放页面并自动播放1.显示八个推荐视频2.跳转到视频播放页面并自动播放10查看全部1.点击查看全部2.点击视频列表1.显示全视频列表2.跳转到视频播放页面并自动播放1.显示全部视频2.跳转到视频播放页面并自动播放11我的钱包点击我的钱包显示账户余额显示账户余额12充值1.点击充值2.选择面额和银行卡3.点击充值按钮4.输入支付密码1.显示充值界面2.提示选择充值面额3.提示选择银行卡4.提示充值成功,跳转到我的钱包页面,账户余额增加,生成交易记录5.提示密码错误,支付失败,跳转到重新输入提示充值成功,跳转到我的钱包页面,账户余额增加100元,生成交易记录13提现1.点击提现2.选择到账银行卡,输入提现金额3.点击支付按钮4.输入支付密码1.显示提现界面2.提示输入充值面额3.提示选择银行卡5.提示账户余额不足4.提示提现成功,跳转到我的钱包页面,账户余额减少,生成交易记录5.提示密码错误,支付失败,跳转到重新输入提示提现成功,跳转到我的钱包页面,账户余额10元,生成交易记录14银行卡包1.点击银行卡包2.左滑点击解绑1.显示已添加银行卡列表2.删除银行卡,刷新列表1.显示已添加银行卡列表2.删除银行卡,刷新列表15添加银行卡1.点击添加银行卡2.填写信息3.点击提交按钮1.显示添加银行卡表单2.提示手机号码输入有误3.提示银行卡有误4.跳转到银行卡列表1.显示添加银行卡表单2.跳转到银行卡列表16交易记录1.点击交易记录2.左滑点击删除1.显示交易记录列表2.提示是否确认删除,确认删除交易记录,刷新列表,取消则不改变1.显示交易记录列表2.提示是否确认删除,确认删除交易记录,刷新列表,取消则不改变17垃圾投放记录1.点击垃圾投放记录2.左滑点击删除1.显示垃圾投放记录列表2.提示是否确认删除,确认删除垃圾投放记录,刷新列表,取消则不改变.显示垃圾投放记录列表2.提示是否确认删除,确认删除垃圾投放记录,刷新列表,取消则不改变18设置点击设置显示设置选项显示设置选项19修改支付密码1.点击修支付密码2.填写表单3.点击确认修改按钮1.显示表单2.提示输入原密码错误3.提示输入新密码不符合要求4.提示两次输入新密码不一样5.提示修改成功,跳转到“我的”界面1.显示表单2.提示修改成功,跳转到“我的”界面20服务点信息修改1.点击服务点信息修改2.填写表单3.点击确认修改按钮1.显示表单2.提示手机号码输入有误3.提示修改成功,跳转到设置界面1.显示表单2.提示修改成功,跳转到设置界面21服务点新订单1.点击服务点新订单2.左滑点击完成3.点击管理,批量选择,再点击完成4.搜索1.显示未完成订单列表2.修改订单状态,刷新列表3.输入关键字显示相关的订单1.显示未完成订单列表2.修改订单状态,刷新列表22服务点历史订单1.点击服务点历史订单那2.搜索1.显示服务点所有订单列表2.输入关键字显示相关的订单显示服务点所有订单列表兼容性测试微信开发工具提供了iPhone和Nexus的一些常用机型,经过对不同机型的测试,系统页面样式和元素的展现效果以及交互都是正常的,所以系统的兼容性是合格的。

总结与展望本次研究的对象是一个基于微信小程序的垃圾分类服务系统,通过对垃圾分类服务的背景和定位,将当前最普遍的B2C电子商务模式与其进行有机结合,针对性的设计了一套服务垃圾分类的简易版生态系统,从而使互联网软件更加的贴近生活,更好的为人民服务。本系统的实现采用的是一种全新的开发方式——微信小程序云开发,前台采用WXML+WXSS+WXS+JavaScript,后台采用云函数+云数据库+云存储。这种开发方式在以前从没接触过,对于我来讲是一个莫大的挑战。在传统的开发模式中,工作量最大的就是服务端的开发,后端代码和数据库运维也是很麻烦,成本很高的,而小程序云开发就不用担心这些问题,无服务(Serverless)的开发方式,弱化了后端,也不需要搭建服务器,直接调用原生接口即可,既提高效率,又降低了成本,有着巨大的应用的前进和商业市场。通过对系统各个功能模块的实现,我慢慢从一个小白变成了有经验的开发者。因为一开始缺乏经验,在摸索的过程中走了不少弯路,网上的各种渠道不断的学习和尝试,最后才将设计的功能得以全部实现。此外,本次研究也存在着很多的不足之处。因为自身的经验不足,局限了系统的设计,在界面的设计上不是特别美观,在很多功能的实现上欠缺考虑,例如垃圾箱扫码扔垃圾的功能,只能扫定制的二维码返回事先准备好的数据。还有就是小程序本身的限制机制,由于注册的账号主体是个人,所以设计支付、私密敏感信息的功能暂时无法实现。但是,我相信本次研究的系统理念在未来还是很有应用前景的,所以要不断完善,争取做得更好。

参考文献[1]吴霞.DAPP应用平台的差异化布局[J].计算机与网络,2019,45(18):14-15.[2]杨蓉.垃圾分类小程序爆火支付宝微信争夺本地生活新入口[J].计算机与网络,2019,45(14):12-13.[3]王婷婷.微信小程序开发[J].信息技术与信息化,2018(12):62-63.[4]彭守镇.微信小程序应用探究[J].信息与电脑(理论版),2018(22):22-23.[5]邢榕珊,匡芳君.微信小程序设计[J].计算机时代,2018(08):9-12.[6]张晓燕.微信“小程序”开发的系统实现及前景[J].电子技术与软件工程,2018(12):49-50.[7]武思怡,解佺,张雨,侯秉昀.微信小程序开发研究[J].无线互联科技,2018,15(11):52-54.[8]石云.程序员的小目标从云端搭建一个小程序开始[J].计算机与网络,2016,42(19):41.[9].19500元开发微信小程序?300元就可自行注册开发[J].消费电子,2017(08):19.[10]刘玉佳.微信“小程序”开发的系统实现及前景分析[J].信息通信,2017(01):260-261.

致谢时光匆忙,一晃就要毕业了,和同学们一起坐在教室上课的场景仿佛就在昨天,课后去办公室请教老师的场景仿佛就在昨天……从离开校园踏入社会,已有五个月,在这五个月里,我一边认真工作,一边研究毕业设计,终于完成本次研究,我想这应该是我大学四年学业上的最后一次研究了吧。在这大学四年里,感谢遇见的所有老师和朋友,特别是对我这次毕业设计和实习帮助巨大的麦老师,虽然充满着不舍,但却没有遗憾,因为我的大学生活很精彩!

电脑故障检测卡代码表

1、特殊代码"00"和"ff"及其它起始码有三种情况出现:

①已由一系列其它代码之后再出现:"00"或"ff",则主板ok。

②如果将cmos中设置无错误,则不严重的故障不会影响bios自检的继续,而最终出现"00"或"ff"。

③一开机就出现"00"或"ff"或其它起始代码并且不变化则为主板没有运行起来。

2、本表是按代码值从小到大排序,卡中出码顺序不定。

3、未定义的代码表中未列出。

4、对于不同bios(常用ami、award、phoenix)用同一代码代表的意义不同,因此应弄清您所检测的电脑是属于哪一种类型的bios,您可查阅您的电脑使用手册,或从主板上的bios芯片上直接查看,也可以在启动屏幕时直接看到。

5、有少数主板的pci槽只有一部分代码出现,但isa槽有完整自检代码输出。且目前已发现有极个别原装机主板的isa槽无代码输出,而pci槽则有完整代码输出,故建议您在查看代码不成功时,将本双槽卡换到另一种插槽试一下。另外,同一块主板的不同pci槽,有的槽有完整代码送出,如dell810主板只有靠近cpu的一个pci槽有完整代码显示,一直变化到"00"或"ff",而其它pci槽走到"38"后则不继续变化。

6、复位信号所需时间isa与pci不一定同步,故有可能isa开始出代码,但pci的复位灯还不熄,故pci代码停要起始代码上。

代码对照表

00.已显示系统的配置;即将控制INI19引导装入。

01处理器测试1,处理器状态核实,如果测试失败,循环是无限的。处理器寄存器的测试即将开始,不可屏蔽中断即将停用。CPU寄存器测试正在进行或者失败。

02确定诊断的类型(正常或者制造)。如果键盘缓冲器含有数据就会失效。停用不可屏蔽中断;通过延迟开始。CMOS写入/读出正在进行或者失灵。

03清除8042键盘控制器,发出TESTKBRD命令(AAH)通电延迟已完成。ROMBIOS检查部件正在进行或失灵。

04使8042键盘控制器复位,核实TESTKBRD。键盘控制器软复位/通电测试。可编程间隔计时器的测试正在进行或失灵。

05如果不断重复制造测试1至5,可获得8042控制状态。已确定软复位/通电;即将启动ROM。DMA初如准备正在进行或者失灵。

06使电路片作初始准备,停用视频、奇偶性、DMA电路片,以及清除DMA电路片,所有页面寄存器和CMOS停机字节。已启动ROM计算ROMBIOS检查总和,以及检查键盘缓冲器是否清除。DMA初始页面寄存器读/写测试正在进行或失灵。

07处理器测试2,核实CPU寄存器的工作。ROMBIOS检查总和正常,键盘缓冲器已清除,向键盘发出BAT(基本保证测试)命令。.

08使CMOS计时器作初始准备,正常的更新计时器的循环。已向键盘发出BAT命令,即将写入BAT命令。RAM更新检验正在进行或失灵。

09EPROM检查总和且必须等于零才通过。核实键盘的基本保证测试,接着核实键盘命令字节。第一个64KRAM测试正在进行。

0A使视频接口作初始准备。发出键盘命令字节代码,即将写入命令字节数据。第一个64KRAM芯片或数据线失灵,移位。

0B测试8254通道0。写入键盘控制器命令字节,即将发出引脚23和24的封锁/解锁命令。第一个64KRAM奇/偶逻辑失灵。

0C测试8254通道1。键盘控制器引脚23、24已封锁/解锁;已发出NOP命令。第一个64KRAN的地址线故障。

0D1、检查CPU速度是否与系统时钟相匹配。2、检查控制芯片已编程值是否符合初设置。3、视频通道测试,如果失败,则鸣喇叭。已处理NOP命令;接着测试CMOS停开寄存器。第一个64KRAM的奇偶性失灵

0E测试CMOS停机字节。CMOS停开寄存器读/写测试;将计算CMOS检查总和。初始化输入/输出端口地址。

0F测试扩展的CMOS。已计算CMOS检查总和写入诊断字节;CMOS开始初始准备。.

10测试DMA通道0。CMOS已作初始准备,CMOS状态寄存器即将为日期和时间作初始准备。第一个64KRAM第0位故障。

11测试DMA通道1。CMOS状态寄存器已作初始准备,即将停用DMA和中断控制器。第一个64DKRAM第1位故障。

12测试DMA页面寄存器。停用DMA控制器1以及中断控制器1和2;即将视频显示器并使端口B作初始准备。第一个64DKRAM第2位故障。

13测试8741键盘控制器接口。视频显示器已停用,端口B已作初始准备;即将开始电路片初始化/存储器自动检测。第一个64DKRAM第3位故障。

14测试存储器更新触发电路。电路片初始化/存储器处自动检测结束;8254计时器测试即将开始。第一个64DKRAM第4位故障。

15测试开头64K的系统存储器。第2通道计时器测试了一半;8254第2通道计时器即将完成测试。第一个64DKRAM第5位故障。

16建立8259所用的中断矢量表。第2通道计时器测试结束;8254第1通道计时器即将完成测试。第一个64DKRAM第6位故障。

17调准视频输入/输出工作,若装有视频BIOS则启用。第1通道计时器测试结束;8254第0通道计时器即将完成测试。第一个64DKRAM第7位故障。

18测试视频存储器,如果安装选用的视频BIOS通过,由可绕过。第0通道计时器测试结束;即将开始更新存储器。第一个64DKRAM第8位故障。

19测试第1通道的中断控制器(8259)屏蔽位。已开始更新存储器,接着将完成存储器的更新。第一个64DKRAM第9位故障。

1A测试第2通道的中断控制器(8259)屏蔽位。正在触发存储器更新线路,即将检查15微秒通/断时间。第一个64DKRAM第10位故障。

1B测试CMOS电池电平。完成存储器更新时间30微秒测试;即将开始基本的64K存储器测试。第一个64DKRAM第11位故障。

1C测试CMOS检查总和。.第一个64DKRAM第12位故障。

1D调定CMOS配置。.第一个64DKRAM第13位故障。

1E测定系统存储器的大小,并且把它和CMOS值比较。.第一个64DKRAM第14位故障。

1F测试64K存储器至最高640K。.第一个64DKRAM第15位故障。

20测量固定的8259中断位。开始基本的64K存储器测试;即将测试地址线。从属DMA寄存器测试正在进行或失灵。

21维持不可屏蔽中断(NMI)位(奇偶性或输入/输出通道的检查)。通过地址线测试;即将触发奇偶性。主DMA寄存器测试正在进行或失灵。

22测试8259的中断功能。结束触发奇偶性;将开始串行数据读/写测试。主中断屏蔽寄存器测试正在进行或失灵。

23测试保护方式8086虚拟方式和8086页面方式。基本的64K串行数据读/写测试正常;即将开始中断矢量初始化之前的任何调节。从属中断屏蔽存器测试正在进行或失灵。

24测定1MB以上的扩展存储器。矢量初始化之前的任何调节完成,即将开始中断矢量的初始准备。设置ES段地址寄存器注册表到内存高端。

25测试除头一个64K之后的所有存储器。完成中断矢量初始准备;将为旋转式断续开始读出8042的输入/输出端口。装入中断矢量正在进行或失灵。

26测试保护方式的例外情况。读出8042的输入/输出端口;即将为旋转式断续开始使全局数据作初始准备。开启A20地址线;使之参入寻址。

27确定超高速缓冲存储器的控制或屏蔽RAM。全1数据初始准备结束;接着将进行中断矢量之后的任何初始准备。键盘控制器测试正在进行或失灵。

28确定超高速缓冲存储器的控制或者特别的8042键盘控制器。完成中断矢量之后的初始准备;即将调定单色方式。CMOS电源故障/检查总和计算正在进行。

29.已调定单色方式,即将调定彩色方式。CMOS配置有效性的检查正在进行。

2A使键盘控制器作初始准备。已调定彩色方式,即将进行ROM测试前的触发奇偶性。置空64K基本内存。

2B使磁碟驱动器和控制器作初始准备。触发奇偶性结束;即将控制任选的视频ROM检查前所需的任何调节。屏幕存储器测试正在进行或失灵。

2C检查串行端口,并使之作初始准备。完成视频ROM控制之前的处理;即将查看任选的视频ROM并加以控制。屏幕初始准备正在进行或失灵。

2D检测并行端口,并使之作初始准备。已完成任选的视频ROM控制,即将进行视频ROM回复控制之后任何其他处理的控制。屏幕回扫测试正在进行或失灵。

2E使硬磁盘驱动器和控制器作初始准备。从视频ROM控制之后的处理复原;如果没有发现EGA/VGA就要进行显示器存储器读/写测试。检测视频ROM正在进行。

2F检测数学协处理器,并使之作初始准备。没发现EGA/VGA;即将开始显示器存储器读/写测试。.

30建立基本内存和扩展内存。通过显示器存储器读/写测试;即将进行扫描检查。认为屏幕是可以工作的。

31检测从C800:0至EFFF:0的选用ROM,并使之作初始准备。显示器存储器读/写测试或扫描检查失败,即将进行另一种显示器存储器读/写测试。单色监视器是可以工作的。

32对主板上COM/LTP/FDD/声音设备等I/O芯片编程使之适合设置值。通过另一种显示器存储器读/写测试;却将进行另一种显示器扫描检查。彩色监视器(40列)是可以工作的。

33.视频显示器检查结束;将开始利用调节开关和实际插卡检验显示器的关型。彩色监视器(80列)是可以工作的。

34.已检验显示器适配器;接着将调定显示方式。计时器滴答声中断测试正在进行或失灵。35.完成调定显示方式;即将检查BIOSROM的数据区。停机测试正在进行或失灵。

36.已检查BIOSROM数据区;即将调定通电信息的游标。门电路中A-20失灵。

37.识别通电信息的游标调定已完成;即将显示通电信息。保护方式中的意外中断。

38.完成显示通电信息;即将读出新的游标位置。RAM测试正在进行或者地址故障>FFFFH。

39.已读出保存游标位置,即将显示引用信息串。.

3A.引用信息串显示结束;即将显示发现信息。间隔计时器通道2测试或失灵。

3B用OPTI电路片(只是486)使辅助超高速缓冲存储器作初始准备。已显示发现<ESC>信息;虚拟方式,存储器测试即将开始。按日计算的日历时钟测试正在进行或失灵。

3C建立允许进入CMOS设置的标志。.串行端口测试正在进行或失灵。

3D初始化键盘/PS2鼠标/PNP设备及总内存节点。.并行端口测试正在进行或失灵。

3E尝试打开L2高速缓存。.数学协处理器测试正在进行或失灵。

40.已开始准备虚拟方式的测试;即将从视频存储器来检验。调整CPU速度,使之与外围时钟精确匹配。

41中断已打开,将初始化数据以便于0:0检测内存变换(中断控制器或内存不良)从视频存储器检验之后复原;即将准备描述符表。系统插件板选择失灵。

42显示窗口进入SETUP。描述符表已准备好;即将进行虚拟方式作存储器测试。扩展CMOSRAM故障。

43若是即插即用BIOS,则串口、并口初始化。进入虚拟方式;即将为诊断方式实现中断。.44.已实现中断(如已接通诊断开关;即将使数据作初始准备以检查存储器在0:0返转。)BIOS中断进行初始化。

45初始化数学协处理器。数据已作初始准备;即将检查存储器在0:0返转以及找出系统存储器的规模。.

46.测试存储器已返回;存储器大小计算完毕,即将写入页面来测试存储器。检查只读存储器ROM版本。

47.即将在扩展的存储器试写页面;即将基本640K存储器写入页面。

48.已将基本存储器写入页面;即将确定1MB以上的存储器。视频检查,CMOS重新配置。

49.找出1BM以下的存储器并检验;即将确定1MB以上的存储器。.

4A.找出1MB以上的存储器并检验;即将检查BIOSROM数据区。进行视频的初始化。

4B.BIOSROM数据区的检验结束,即将检查<ESC>和为软复位清除1MB以上的存储器。.4C.清除1MB以上的存储器(软复位)即将清除1MB以上的存储器.屏蔽视频BIOSROM。.4D。已清除1MB以上的存储器(软复位);将保存存储器的大小。.

4E若检测到有错误;在显示器上显示错误信息,并等待客户按<F1>键继续。开始存储器的测试:(无软复位);即将显示第一个64K存储器的测试。显示版权信息。

4F读写软、硬盘数据,进行DOS引导。开始显示存储器的大小,正在测试存储器将使之更新;将进行串行和随机的存储器测试。.

50将当前BIOS监时区内的CMOS值存到CMOS中。完成1MB以下的存储器测试;即将高速存储器的大小以便再定位和掩蔽。将CPU类型和速度送到屏幕。

51.测试1MB以上的存储器。.

52所有ISA只读存储器ROM进行初始化,最终给PCI分配IRQ号等初始化工作。已完成1MB以上的存储器测试;即将准备回到实址方式。进入键盘检测。

53如果不是即插即用BIOS,则初始化串口、并口和设置时种值。保存CPU寄存器和存储器的大小,将进入实址方式。.

54.成功地开启实址方式;即将复原准备停机时保存的寄存器。扫描“打击键”

55.寄存器已复原,将停用门电路A-20的地址线。.

56.成功地停用A-20的地址线;即将检查BIOSROM数据区。键盘测试结束。

57.BIOSROM数据区检查了一半;继续进行。.

58.BIOSROM的数据区检查结束;将清除发现<ESC>信息。非设置中断测试。

59.已清除<ESC>信息;信息已显示;即将开始DMA和中断控制器的测试。.

5A..显示按“F2”键进行设置。

5B..测试基本内存地址。

5C..测试640K基本内存。

60设置硬盘引导扇区病毒保护功能。通过DMA页面寄存器的测试;即将检验视频存储器。测试扩展内存。

61显示系统配置表。视频存储器检验结束;即将进行DMA#1基本寄存器的测试。.

62开始用中断19H进行系统引导。通过DMA#1基本寄存器的测试;即将进行DMA#2寄存器的测试。测试扩展内

温馨提示

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

评论

0/150

提交评论