嵌入式系统设计及应用Word下载.doc
- 文档编号:13041125
- 上传时间:2022-10-03
- 格式:DOC
- 页数:10
- 大小:534.50KB
嵌入式系统设计及应用Word下载.doc
《嵌入式系统设计及应用Word下载.doc》由会员分享,可在线阅读,更多相关《嵌入式系统设计及应用Word下载.doc(10页珍藏版)》请在冰豆网上搜索。
本次课程设计主要是通过J2ME开发一个手机短信收发系统,以实现短信的收发功能。
通过设计,进一步加深对J2ME的原理、技术、在Eclipse环境下的开发以及无线消息转发流程的掌握,增强对嵌入式系统应用与开发的认识。
本次课程设计需要实现的功能包括:
(一)短信的发送
当用户在主菜单界面选择发送短信的功能时,系统为用户提供文本消息编辑器。
当用户在消息编辑文本框中输入要发送的文本消息并指定了发送目的地后,系统能够将用户的文本信息发送到指定的目的地址。
(二)短信的接收
当用户运行程序时,系统能够异步接收到发来的文本消息。
当有短信到来时,接收端的屏幕显示收到一条短信,提示用户进行查看。
(三)短信的存储
系统需要设计一个收件箱,用来存储接收到的短信,方便用户进行短信的查询。
二、设计环境及要求
本次设计需要安装的环境包括:
(一)WTK
WTK的全称是SunJ2MEWirelessToolkit——Sun的无线开发工具包。
这一工具包设计目的是为帮助开发人员简化J2ME的开发过程。
使用其中的工具可以开发与JavaTechnologyfortheWirelessIndustry(JTWI,JSR185)规范兼容的设备上运行的J2ME应用程序。
该工具箱包含了完整的生成工具、实用程序以及设备仿真器。
WTK是用来开发MIDP的,为了让MIDlet可以顺利编译和执行,WTK必须具有CLDC和MIDP的类库,WTK可以帮助我们省去额外安装调试这些类库的时间。
本次课程设计安装的是sun_java_wireless_toolkit-2_5_2-ml-windows.exe。
(二)Eclipse平台
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
J2ME环境的配置过程:
下载eclipse-SDK-3.1-win32.zip,解压缩eclipse-SDK-3.1-win32.zip将eclipseme.feature_1.5.0_motosdk_site.zip和eclipseme.feature_1.7.9_site.zip拷入eclipse目录。
安装用Eclipse开发J2ME程序的插件,进行EclipseMe插件相应的配置。
三、设计内容与步骤
(一)内容介绍
1.J2ME
J2ME的全称是Java2MicroEdition(Java2技术微型版),是由美国SUN公司提出的JAVA技术规范。
J2ME是为了能够开发运行在小型设备、独立设备、互联移动设备、嵌入式设备上的JAVA应用程序而被提出的。
J2ME是建立在一个由概要描述、配置、JAVA虚拟机和操作系统等部分组成的标准架构之上的,这些内容共同组成了完整的J2ME实时运行环境。
它的技术核心是由一个JAVA虚拟机(JVM)及一套适合运行在上述设备环境上的API接口构成。
2.J2ME平台体系结构
J2ME平台是由配置(Configuration)和简表(Profile)构成的。
配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。
简表是针对一系列设备提供的开发包集合。
在J2ME中还有一个重要的概念是可选包(OptionalPackage),它是针对特定设备提供的。
J2ME中有两个最主要的配置,分别是ConnectedLimitedDevicesConfiguration(CLDC)和ConnectedDevicesConfiguration(CDC)。
它们是根据设备的硬件性能进行区分的,例如处理器、内存容量等。
J2ME体系结构框图如图1所示。
3.MIDlet
MIDlet是JavaMECLDC执行模型的核心。
MIDlet相当于CLDC/MIDP(MobileInformationDeviceProfile,移动信息设备描述)中的应用程序,他处理用户输入的内容,并且显示输出内容。
MIDlet还负责管理与系统的交互,同时通过将系统的控制暂停并让位给发起中断的应用程序,来响应对资源的请求。
所有MDIlet都必须实现4个方法:
OptionalPackages
HostOperatingSystem
Profiles
Configurations
Java虚拟机
图1J2ME体系结构框图
MIDlet构造方法——当系统需要构造MIDlet实例的时候就会调用这个方法。
构造方法通常什么也不做,它将初始化工作延时给startApp方法负责。
startApp方法——当应用程序启动或者继续执行的时候,AMS(ApplicationManagementSoftware,应用程序管理软件)会调用此方法。
startApp应该执行所有必要的引导指令来初始化应用程序,并呈现应用程序的第一个屏幕。
简单的应用程序可以选择在该方法内完成所有这些操作;
较复杂的应用程序可以讲这些操作放在相互独立的一系列方法内,然后在该方法中调用。
pauseApp方法——当系统因为任何原因必须中断MIDlet时(例如有电话或者消息呼入,或者启动了另一个应用程序),AMS会调用此方法。
MIDlet此时应当释放任何不需要的资源。
destroyApp方法——当应用程序必须退出的时候,AMS会调用此方法。
4.MIDlet的生命周期
MIDlet有三个状态,分别是pause、active和destroyed。
在启动一个MIDlet的时候,AMS会首先创建一个MIDlet实例并使得他处于pause状态,当startApp()方法被调用的时候MIDlet进入active状态,也就是所说的运行状态。
在active状态调用destroyApp(Booleanunconditional)或者pauseApp()方法可以使得MIDlet进入destroyed或者pause状态。
在destroyed状态的MIDlet必须释放了所有的资源,并且保存了数据。
如果unconditional为false的时候,MIDlet可以在接到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。
5.通过无线消息API实现短信收发
无线消息API包括:
SMS(ShortMessagingService)、EMS(EnhancedMessageService)、MMS(MultimediaMessagingService)。
SMS是最早的短信服务标准,它是目前也是迄今为止普及率和使用率最高的一种短信业务。
SMS的特点是:
短信的长度被限定在160字节之内(纯文本,包括文字和数字),如果是二元非文本短信(例如图片和铃声),它的长度则为140字节,此外手机短信又有着设定保留功能,即使用户关机或不在服务区时,只要一进入网络即可收到。
SMS短信也是一种存储和转发服务。
也就是说,短信并不是直接从发送人发送到接收人,而始终通过SMS中心进行转发的。
如果接收人处于未连接状态(可能电话已关闭),则消息将在接收人再次连接时发送。
SMS短信具有消息发送确认的功能。
这意味着SMS与寻呼不同,用户不是简单地发出短信然后相信消息已发送成功;
而是短信发送人可以收到返回消息,通知他们短信是否已经发送成功。
EMS比起SMS来,EMS的优势是除了可以像SMS那样发送文本短信之外,还可以发送简单的图像、声音和动画等信息。
MMS可以用于传送文字、图片、动画、音频和视频等多媒体信息。
本文设计的短信收发系统主要采用SMS来实现。
(二)具体设计步骤
1.类设计
短信收发系统共包含四个类。
类之间的关系图2所示:
Inbox
Receiver
SMSMIDlet
SenderForm
图2类关系图
SMSMIDlet类——该类是应用程序的主类,控制应用程序的生命周期。
SenderForm类——该类提供了编辑短信的用户界面和发送信息的功能。
Receiver类——该类提供了打开消息连接及接受短信的功能。
Inbox类——该类描述了收件箱,提供了查看接受的短信的功能。
2.短信发送与接收的过程
发送端:
创建无线消息的客户连接;
调用连接对象的newMessage方法创建一个消息对象;
设置消息对象的内容;
使用连接对象的send方法发送消息;
短信发送线程执行体,建立连接并发送短信。
publicvoidrun(){
try{
StringsmsUrl="
sms:
//"
+receiverAddress+"
:
"
+desPort;
MessageConnectionmsgConn=(MessageConnection)Connector.open(smsUrl);
TextMessagetextMessage=(TextMessage)msgConn.newMessage(MessageConnection.TEXT_MESSAGE);
textMessage.setPayloadText(messageContent);
msgConn.send(textMessage);
msgConn.close();
}
catch(IOExceptionioe){
midlet.showError("
发送信息错误!
\n"
+ioe.toString());
}
接收端:
创建无线消息服务器端连接;
设置消息监听器;
当有消息到达时,监听器将回调MessageListener接口中的notifyIncomingMessage方法。
在该方法中,连接对象调用receive方法接收消息;
在端口port打开一个sms连接,并启动一个接收消息的线程。
publicMessageConnectionopenConnection(Stringport)throws
IOException{
msgConn=(MessageConnection)Connector.open("
//:
+port);
pendingMessages=0;
//没有处理的信息的个数
dead=false;
//创建消息接收线程,并启动
Threadt=newThread(this);
t.start();
//调用run()方法
returnmsgConn;
四、设计结果与数据处理
最终系统运行的结果如下图所示。
(一)首先,运行该程序,打开两个手机终端。
如图3所示。
图3
图4图5
(二)使用终端1向终
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 设计 应用