(通信与信息系统专业论文)tetra数字集群终端语音功能的开发.pdf_第1页
(通信与信息系统专业论文)tetra数字集群终端语音功能的开发.pdf_第2页
(通信与信息系统专业论文)tetra数字集群终端语音功能的开发.pdf_第3页
(通信与信息系统专业论文)tetra数字集群终端语音功能的开发.pdf_第4页
(通信与信息系统专业论文)tetra数字集群终端语音功能的开发.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(通信与信息系统专业论文)tetra数字集群终端语音功能的开发.pdf.pdf 免费下载

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

文档简介

j t 塞奎亟塞堂亟堂篮淦塞空塞揸噩 中文摘要 随着1 e n 渔数字集群通信在我国不断地发展,t e n 认数字集群终端的需求 量将会逐步增大。目前,外国厂商生产的t e t r a 终端的价格都比较昂贵,超出了 一般用户可以承受的范围,而我国从事t e 订t a 终端研发的厂家又比较少,因此从 事n t r a 终端的研发具有很重要的意义。 此次所开发的t e 吼终端是一种智能移动终端,它除了具有传统t e l l t a 移 动终端的所具备的一切功能外,还拥有g 1 s 等功能。本论文以t e 仉数字集群移 动智能终端的语音功能的开发为中心展开研究。 本文首先简单介绍了t e 数字集群通信系统及其特点:其次描述了t e t j l a 智能移动终端的硬件结构、软件结构。它的硬件主要由m m i 板和t e 讯气主板构 成,m m i 板提供了人机交互的接口,咖a 主板实现了t e n 认的协议栈,它们 之间通过串口连接。它的软件主要包含w i nc e 嵌入式操作系统、t e t r as e n ,e r 以及电话程序等。电话程序实现了此终端的语音功能。t e 砸认s e f v e r 是一个后台 程序,负责电话程序与t e 认主板之间的信息传递;再次,对一个智能手机的电 话程序进行了深入的分析;最后,通过借鉴智能手机的电话程序的编程思想,实 现了t e 吼智能移动终端的各项语音功能。 关键词:t e 订渔:电话程序;智能移动终端 分类号:t n 9 2 9 5 2 j 立銮亟太堂亟堂僮j 金塞旦s ! 腆i a b s t r a c t w i t l lt h ed e v e l o p m e mo ft e t i 己ad i g i t a l 协m k i n gc o m m u n i c a t i o ni no l l rc o l l l l n y l cr a i r e m e n tf o rt e m u d i g i t a lt e 衄i n a lw i u b ei n c r e 嬲i n gs t e pb ys t e p 黜c e m l y t h et e t r at e m d n a l s ,w h i c ha r em a d eb yf o r e i g nm a i l u f a c t i l r e s ,a r et o oe x p e i l s i v e ,a i l d o r d i n a r yp e o p l ec a i ln o ta 肺r d f u r t h e n n o r e ,血er e s e a r c ha n dd e v e l o p m e mo ft e t r a t e m i n a l si ss c a r e s o ,m et l l i n g so f 诧s e a r c ha 1 1 dd e v e l o p m e n to ft e t r at 锄i i l a l sa r e v e r yc m c i a i t h et e t r at e n n i n a l ,w h i c hw c 谢l ld e v e l o p ,i sak i n do f 锄a r tm o b i l et e 咖i n a l , h 恤c hn o to i l l yc a l lb eu s e d 嬲an o 彻a lt e t r am o b i l et e 肋i n a l ,b u ta l s oh 嬲s o m e s p e c i a lf u i l c t i o n s ,s u c ha sg i s 1 1 1 et 1 1 e s i si sf o c u s e do nd e v e l o p m e n to fv o i c em n c t i o n f o rt e t r ad i g i “t m k i n gs m a r tm o b i l et e m i n a l f i r s t l y ,t h em e s i si m r o d u c e sn l et e n 认d 垮t a lt n l n k i n gc o m m u n j c a t i o ns y s l e ma i l d i t sc h m c t e r i s t i c s e c o n d l mi td e s c r i b e s 也es o f i _ w a r ea i l dh a r d w a r ea r c h i t e c t l l r eo ft h e t e t r as m a r tm o b i l et er i 】a i n a l t h eh a r d w a r ec o n s i s t so fm m ib o a r da n dt e t r am a i n b o a r d ,m m is 诅n d sf o rm a i lm a c h i n ei n t e r f k e ,t e t r am a i nb o a r di m p l e m e n t st h e t e t r ap r o t o c o ls t a c k 1 1 1 e ya r ec o n n e c t e d b ys e r i a lp o r t 髓es o 胁a r cc o n s i s t so f w i n d o w sc ee m b e d d e d0 p e r a t i n gs y s t e m ,t e t r as e e r ,t e l c p h o n cp r o g r 锄,e t c t e l e p h o n ep r o 掣锄i m p l e m e n t st h ev o i c e c t i o no ft h et c m i n a l t e t r as e e ri sa b a c k 乎0 1 1 1 1 dp r o g r 锄,w h i c h i s r e s p o n s i b l ef o r 仃a n s f b r r i n gi n f b 肌a t i o nb e 脚e c n t e l e p h o n ep m g r 锄a n dt e n 认m a i nb o 盯d n i r d l y at e l e p h o n ep r o g r a mo fs m a n p h o n ei sr c s e a r c h e di nd e p t h ;f i n a l l y ,ii m p l 锄e n t e dm ev o i c e 缸1 c t i o no f t e t r a s m a n m o b i l et e m l i n a lb yr e f e r e n c et ot h ei d e ao f t t l et e l 印h o n ep r o g r 锄 1 ( e y w o r d s :t e 吼;t e l e p h o n ep m g r 锄;s m a nm o b i l et e m i n a l c l a s s n 0 :t n 9 2 9 5 2 致谢 本论文的工作是在我的导师孙昕副教授的悉心指导下完成的,孙昕副教授严 谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年来 孙老师对我的关心和指导。 孙昕副教授悉心指导我们完成了实验室的科研工作,在学习上和生活上都给 予了我很大的关心和帮助,在此向孙老师表示衷心的谢意。 孙昕副教授对于我的科研工作和论文都提出了许多的宝贵意见,在此表示衷 心的感谢。 在实验室工作及撰写论文期间,马浩、杜硕等同学对我论文中的语音功能研 究工作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢我所在的实习公司的各位领导以及一起上作过的同事。我能够顺 利完成实习工作,与他们的热情帮助和不断的鼓励是密不可分的。 最后还要感谢我的家人,他们的理解和支持使我能够在学校专心完成我的学 生2 。 j e 塞窑逼太堂亟堂僮i 金毫崖 序 随着我国数字集群移动通信系统的建设,对于依托数字集群移动通信共网的 各种应用系统也出现了新的应用方式。由于t e t r a 数字集群共网只是一个无线应 用的平台,不同行业在该平台上有不同的应用,目前还没有一套完全面向不同行 业综合应用的“移动终端”,因此必须对t e t r a 数字集群移动终端进行开发,将其 应用至不同行业的实际工作中。 此次开发的语音功能是面向奥运数字集群通信系统一体化智能移动终端项目 中的一部分。该项目得到了北京市科委、北京市教育委员会产学研合作项目、海 淀园创新基金等的大力支持。本项目主要是要开发一套具有较强的通信处理能力、 系统扩展能力和数据处理能力,并能够满足公安、交通等特种行业应用的用户终 端系统。该终端可以为公安和交通在日常工作和紧急事件处置中,发挥重要作用。 j b 哀銮通太堂亟堂僮诠塞 li l 直 1 引言 目前,国外在数字集群通信系统的建设和应用方面已经很成熟,芬兰的诺基 亚、美国的摩托罗拉等大型公司已经开发出了多种型号的数字集群终端,而我国 在数字集群终端的研制方面还比较落后。另外,国外生产的数字集群终端的价格 都比较昂贵,这样就无形地阻止了我国的一些企业和单位对集群终端的大量使用。 因此,研制我国具有自主知识产权的数字集群终端具有很重要的意义。同时,数 字集群终端的研制还能够为北京2 0 0 8 年奥运会提供强有力的技术保障和应用支 持。 1 1 概述【1 1 集群通信诞生于2 0 世纪7 0 年代,是一种共享资源、分担费用、共用信道设 备及服务的多用途、高效能的无线通信系统。集群通信使用多信道共用机制。用 来缓解频率资源紧缺的状况。集群通信是处理紧急或突发事件的最有效的调度指 挥通信工具,适用于一些对于指挥、调度功能有较高要求的公安、水利、交通、 司法、民航、铁路等部门。 集群通信的主要原理是通过中央集中控制管理系统信道,并以动态方式迅速 把空闲信道分给需要发起呼叫的用户,以实现通过少量的信道为大量的用户提供 通信服务的目的。集群通信系统有模拟和数字之分,目前,由于数字通信的迅速 发展,模拟集群通信系统显示出了频带利用率低、不能提供高速率数据服务、保 密性差、移动设备成本高、网管控制存在一定的问题等诸多缺点,已经不能满足 信息时代人们对通信的需求,所以现在在国际上广泛研究和应用的均是数字集群 移动通信系统。 数字集群通信系统利用了当今先进的数字通信技术。它采用数字信令方式、 语音数字编码技术,使得网络内传输的全部是数字信号,从而实现了系统的接续 速度快、可靠性高。数字集群通信系统除具有无线通信的语音功能外,调度功能 强是其突出的优点,同时它还具有一些更适合指挥调度网的功能,如紧急呼日q 、 动态呼叫限时、动态重组等等。由于其所拥有的诸多优点,使它在专用指挥调度 通信领域一直扮演着十分重要的角色。目前国际上主要的数字集群通信系统标准 主要有:m o t o r o l a 的i d e n 、以色列的f i m a 和欧洲通信标准协会( e t s i ) 推荐的全欧集群通信1 1 1 r a 。在这些系统标准中,t e t r a 数字集群系统以其完 善的公开信令和标准将会成为最受欢迎的数字集群系统。 北塞奎适盘坐亟堂焦迨窑 ji l直 1 2t e 认数字集群系统【2 】 t e 认系统是欧洲电信协会( e t s i ) 制定的数字集群标准。t e 系统可 提供集群、非集群以及具有话音、电路数据、短数据信息、分组数据业务、直接 模式( 移动台对移动台) 的通信,并支持多种附加业务。它的主要优点是兼容性 好、开放性好、频率利用率高、保密功能强。 在数字集群移动通信系统体制中,t e t r a 数字集群移动通信系统的网络结构 在容量上有较大灵活性,适用于大、中、小容量系统。t e t r a 大量借鉴了g s m 概念,基于 m a 方式,采用与g s m 类似的逻辑信道,载波带宽2 5 k h z ,分4 个时隙,工作频段为4 0 0 m h z 和8 0 0 m h z 。它采用较先进的a c e l p 话音编码和j i 4 d o p s k 调制,支持蜂窝式连续覆盖。 欧洲电信标准协会正在努力实现t e n 认标准的第二版,以使t e 吼的性能 再有一个提高。其主要目标有两个方面:一是使附加特性标准化,以建立和改进 t e t r a 在i n t e m e t 上的许多应用:二是提供与其它网络的互通能力。 t e t r a 数字集群系统可在同一技术平台上提供指挥调度、数据传输和电话服 务,它不仅提供多群组的调度功能,而且还可以提供短数据信息服务、分组数据 服务以及数字化的全双工移动电话服务。t e t r a 数字集群系统还支持功能强大的移 动台脱网直通( d m o ) 方式,可实现鉴权、空中接口加密和端对端加密。t e t r a 数 字集群系统同时还具有虚拟专网功能,可以使一个物理网络为互不相关的多个组 织机构服务。t e t r a 数字集群系统具有丰富的业务种类、更高的频率利用率、高通 信质量、灵活的组网方式,许多新的应用( 如车辆定位、图像传输、移动互联网、 数据库查询等) 都已在t e t r a 中得到实现。因此,近两年t e t r a 数字集群系统在 欧洲乃至世界得到了快速的发展。 1 3t e 啊渔数字集群系统的特点 ( 1 ) 虚拟网概念 可使多个功能要求不同的机构共用一个基础网络,各机构只要配置调度台和 移动台后,便可建立自己的虚拟网,并可像在传统的专用网中一样工作。 ( 2 ) 直通工作方式 该方式指移动台不经网络基础设施便可相互通信的工作模式。这种工作方式 适合未设置集群基站地区及覆盖范围外的地区使用,即在t e t r a 数字集群系统中, 脱网工作的移动台可以与未脱网工作的移动台保持通信联络。 ( 3 ) 互连特性 2 j e 壶奎适太堂砸堂焦论塞 lj i直 为了保证与其它系统和设备楣互联接,t e t r a 定义了各种标准接口:移动台和 手机的数据设备接口;与各种公众网的p s t n 、i s d n 、p d n 接口;与不同t e t r a 厂 家设备的i s i 接口;与其它专网的p a b x 接口;l a n w a n 及计费管理接口。 ( 4 ) 多业务特性 t e t r a 支持话音业务和多种数据业务。话音业务包括个呼、组呼和紧急呼叫: 数据业务包括短数据消息、状态消息、分组数据消息和电路交换数据等。短数据 消息用于传送调度员的简短指令及车辆定位信息;状态消息用于跟踪设备和数据 库状态:分组数据多用于传送电子邮件和数据库查询:电路交换数据则用于需要 快速传送大量数据的业务( 如视频图像传送等) 。 1 4 论文的主要工作 本文介绍了面向奥运数字集群通信系统一体化智能移动终端语音功能的开发 方法和开发流程。 第二章首先介绍了终端的硬件构成和软件架构,然后介绍终端的语音功能,最 后介绍了开发过程中使用到的工具;第三章详细介绍了电话程序的各方面的内容; 第四章介绍了各项语音功能的开发过程;第五章详细介绍了各项语音功能在 t e n 综测仪上的测试结果;第六章对全文进行了总结。 j e 哀奎堑太堂硇堂缱i 金塞21 星至b 蟹能整动终进厘遥置功篚 2 1 概述 2t e 啊t a 智能移动终端及语音功能 由于t e t r a 智能移动终端( 以下简称“终端”) 是一个嵌入式设备,所以需 要为它选择一款嵌入式操作系统。目前,比较流行的嵌入式操作系统分别为: w i n d o w sc e ;嵌入式l i n u x 等。l i n l 】) 【是一个开放源代码的操作系统,在价格上极 具竞争力,它的内核小,效率高。但是,与w i n d o w s c e 相比,它还存在一些弱点: 第一,开发难度较高,需要很高的技术实力;第二,核心调试工具不全,调试不 太方便,尚没有很好的用户图形界面;第三,与某些商用操作系统一样,嵌入式 l i n u x 占用较大的内存;当然,可以去掉部分无用的功能来减小使用的内存,但是 如果不仔细,将引起新的问题;第四,有些l i n u x 的应用程序需要虚拟内存,而嵌 入式系统中并美誉或不需要虚拟内存,所以并非所有的l i 肌x 应用程序都可以在嵌 入式系统中运行。鉴于以上原因,所开发的终端选择w i n d o w sc e 作为操作系统。 2 1 1w i n d o w sc e 嵌入式操作系统 w i n d o w sc e 是微软开发的一个开放的、可升级的3 2 位嵌入式操作系统,是基 于掌上型电脑类的电子设备操作系统。它是精简的w i n d o w s9 5 。w i n d o w sc e 的图 形用户界面相当出色。其中c e 中的c 代表袖珍( c o m p a c t ) 、消费( c o n s u m e r ) 、 通信能力( c o n n e c t i v i t y ) 和伴侣( c o m p a n i o n ) ;e 代表电子产品( e l e c t r o n i c s ) 。 与w i n d o w s9 5 9 8 、w i n d o w sn t 不同的是,w i n d o w sc e 是所有源代码全部由微 软自行开发的嵌入式新型操作系统,其操作界面虽来源于w i n d o w s9 5 9 8 ,但 w i n d o w sc e 是基于w i n 3 2a p i 重新开发的、新型的信息设备平台。w i n d o w sc e 具 有模块化、结构化和基于w i n 3 2 应用程序接口以及与处理器无关等特点。w i n d o w s c e 不仅继承了传统的w i n d o w s 图形界面,并且在w i n d o w sc e 平台上可以使用 w i n d o w s9 5 9 8 上的编程工具( 如v i s u a lb a s i c 、v i s u a lc + + 等) 、使用同样的 函数、使用同样的晃面风格,使绝大多数的应用软件只需简单的修改和移植就可 以在w i n d o w sc e 平台上继续使用 w i n d o w sc e 的特点有: ( 1 ) 具有灵活的电源管理功能,包括睡眠唤醒摸式。 ( 2 ) 使用了对象存储( o b j e c ts t o r e ) 技术,包括文件系统、注册表及数据 4 韭壅窑适右堂亟主堂筮j 盒塞 21 星! b 蛰驻整弛终端厘妥置功能 厍。 ( 3 ) 拥有良好的通信能力。 广泛支持各种通信硬件,亦支持直接的局域网连接以及拨号连接,并提供与 p c 、内部网以及i n t e r n e t 的连接,还提供与w i n d o w s9 x n t 的最佳集成和通信。 ( 4 ) 支持嵌套中断。 允许更高优先级别的中断首先得到响应,而不是等待低级别的i s r 完成。这 使得该操作系统具有嵌入式操作系统所要求的实时性。 ( 5 ) 更好的线程响应能力。 对高级别i s t ( 中断服务线程) 的响应时间上限的要求更加严格,在线程响应 能力方面的改进,帮助开发人员掌握线程转换的具体时间,并通过增强的监控能 力和对硬件的控制能力帮助他们创建新的嵌入式应用程序。 ( 6 ) 2 5 6 个优先级别。 可以使开发人员在控制嵌人式系统的时序安排方面有更大的灵活性。 ( 7 ) w i n d o w sc e 的a p i 是w i n 3 2a p i 的一个子集。 支持近1 5 0 0 个w i n 3 2a p i 。有了这些a p i ,足可以编写任何复杂的应用程序。 当然,在w i n d o w sc e 系统中,所提供的a p i 也可以随具体应用的需求而定。 2 2t e t r a 智能移动终端 2 2 1 r e n 渔智能移动终端的硬件结构 所开发的终端除了具有传统的t e t r a 数字集群终端所具有的功能外,还具有 g i s 等功能。它与目前流行的智能手机以及具有通话功能的p d a 有很大的相似之 处。在硬件方面,它主要由m m i 板、t e 渔主板以及g i s 模块组成。它们之间 的连接关系,如图2 1 所示。 图2 1 终端硬件结构 f i 舀2 1h a r d w a r es t r u c t u r co f t e m l i n a l m m i 板和r e n 渔主板之间以及g i s 模块和m m i 板之问都是通过r s 2 3 2 串 韭塞銮适太堂亟堂僮诠塞 21 垦工b 蟹能整动釜塑厘适置功篮 口进行连接。m m i 板的主要功能是提供一种人机交互的接口;g i s 模块主要负责 接收终端的地理位置信息:t e 限a 主板实现了硼a 的协议栈,即唧r a 中的 语音、数据等各项功能。针对每种功能,t e n 认主板都提供一组接口指令。图2 2 示出了,t m o 模式的双工主叫通话过程。位于带箭头上方的内容表示了该次呼叫 过程用到的所有接口指令。当m m i 板或t e t r a 主板要发送一条指令时,它首先 将这条指令封装在一个帧中,然后,通过串口将这个帧发送出去。 t a 3 应答 匣立7 0 呼叫娃立确认一3 m i 应答 r 盘一6 9 通话结束申请一9 t a 应簪 旺文一7 0 通话结束指争一5 “i 鹰咎报文一6 9 图2 21 m o 模式的双工主叫呼叫过程 f 9 2 2c a l lp r o c e d u f e o f d u p i e xc a l i i n gu n d e r t m o m o d e 当用户发起一个t m o 模式的双工呼叫时。m m i 板将给t e t r a 主扳发送一个呼叫申请一8 指令,这个指令包含了被叫用户的号码以及这个呼叫的类型职工呼叫。当t e 耵t a 主板收 到这条指令后,它将给m m i 板回复一个1 b 应答报文7 0 指令,通知m m 【板它已经收到了 上一条指令。当m m i 板收到这条指令后,它就进入一种等待呼叫建立的状态。如果呼叫可以 正常建立,t e t r a 主板将给m 卜哇l 板发送一个砰叫建立确认- 3 指令,通知m m i 板允许建立呼 叫。m m i 板收到这条指令后将给t e t f 认主扳回复一条m m i 应答报文6 9 。至此,呼叫建立 过程结束,通话过程开始,主叫用户就可以和被叫刚户进行通话。在通话结束后,如果主叫 用户主动申请结束呼叫,那么m m l 板将给t 盯r a 主板发送一条通话结束申请一9 指令。t e t r a 主板收到这条指令后,将先后给m m i 板回复两条指令,1 b 应答报文- 7 0 和通话结束指令一5 。 m m i 板收到通话结束指令5 后将给t e t r a 主扳回复一条m m i 应答报文6 9 指令。至此,整 个通话过程结束。 2 2 2t e 认智能移动终端的软件结构 终端的操作系统为w i n d o w sc e5 o 嵌入式操作系统,它是通过微软的p l a t f o m b u i l d e r5 0 软件进行定制的。其他的应用程序都运行在这个操作系统上。 终端的整个软件结构如图2 3 所示。 6 韭塞銮适太差亟堂焦j 盆塞 21 垦! b 智能整勃经弱厘迢童功能 甲婿 f e r 融兜r 靶 妯,c e 0 r s 2 3 2 0 t e t r 主板 图2 3 终端的软件结构 f i g 2 3s o f t 、v a r es t r u c t u r eo f t e 肋i n a l 终端的软件结构由三层构成,最低层是w i n d o 噶c e 嵌入式操作系统,中间层 是t e 矸us e n ,e r ,最上层是一系列的应用程序。应用程序和t e t r as e r v 钉通过微 软消息队列( m s m q :m i c r o s o f tm e s s a g eq u e u e ) 进行通信。上层的应用程序提供 了一种人机交互的接口,例如,通过电话程序,用户可以拨打n t r a 网络的电话; 通过g i s 程序,用户可以看到自己的当前位置。t e l 限as e e r 是一个后台程序, 在整个软件结构中,它起到了桥梁和纽带的作用,正是通过它才使得最上层的应 用程序和汀r a 主板能够有机地联系起来。它的作用为: ( 1 ) 读取应用程序发送到消息队列中消息,将消息中有用的内容添加到一个接 口指令的相应字段并将该指令发送给t e l r i 认主板。 ( 2 ) 接收t e t i u 主板发送的接口指令并对指令进行解析。将解析获得的有用 的内容封装成一个消息并发送到相关的消息队列。应用程序读取了这个消息后, 就可以执行对应的操作。 2 3 r e n 认智能移动终端的语音功能 t e n 认数字集群标准中定义了许多种语音功能。此次开发中,将通过一个电 话程序来实现下列功能: ( 1 ) 个呼 主叫用户和被叫用户之间的一对一的通话。个呼又分为单工带摘挂机呼叫、 单工不带摘挂机呼叫、双工个呼。当建立个呼时,只要被叫用户应答,系统的无 线资源立即被占用。当系统的所有信道都被占用时,之后到达的呼叫将被置入排 7 韭塞窑适盔堂亟堂焦盐塞2i 星工b 置能整动终弱丛语置功能 队序列,一旦无线信道空闲,就将其分配给第一个优先级最高的排队用户。 ( z ) 组呼 允许系统中的一组终端进行通信。当一个用户发起组呼时,该组内的其他成 员可以接收到这个呼叫。系统可以自动处理呼叫的建立和释放。组呼的通话范围 不只是局限于一个基站,它可以扩展至全网范围内,但是在组呼进行之前,必须 在终端上事先编组。 ( 3 ) 紧急呼叫 用户处在紧急状态时发起的个呼和组呼。紧急呼叫对接入无线资源具有最高 的优先级,这样就保证了在任何情况下都能建立呼叫。当无线资源全部被占用时, 紧急呼叫能让系统自动释放低优先级呼叫占用的无线资源。 ( 4 ) 语音广播呼叫 允许主叫设备进行讲话,而被叫设备只能接听。 ( 5 ) 电话互联业务 允许t e t i t a 终端与p s t n 队b x 网的任何电话进行通信。 ( 6 ) 动态重组。 允许调度台利用无线方式对移动台重新编组。 ( 7 ) 迟后进入 在组呼过程中,迟来的移动台可以加入一个正在进行的组呼。 2 4 开发工具 2 4 1e m b e d d e dv i s u a lc + + 4 0 由于终端的操作系统是微软的w i i l d o w sc e5 o 嵌入式操作系统,所以在开发 应用程序时,需要选择微软的e m b e d d e dv i s u a ic + + 4 o + s p 4 ( 以下简称e v c4 o ) 作为开发工具。 e v c4 o 是微软公司推出的开发w i n d o w sc e 平台下程序的可视化工具,是 e m b e d d e dv i s u a lt o o l s 的重要组成部分。利用e v c4 o ,用户可以开发出规模较大、 功能复杂的w i n d o w sc e 应用程序和流式驱动程序。e v c4 o 具有的新特性为: ( i ) 高效智能的开发环境 ( 2 ) 内置的某些特性提高了编辑代码速度 ( 3 ) 更快的编译输出 ( 4 ) 编译后优化代码 ( 5 ) 更容易组合和扩充控 s j e 立交通塞堂亟堂焦盈塞21 曼王b 鸳能整动堡塑盈语音功能 ( 6 ) c l a s s e w 能自动动态更新 ( 7 ) 允许编译后的应用程序延时加载d l l 和传统的桌面开发工具v i s u a lc h6 o 相比,e v c 4 0 也独具一些为嵌入式开 发而设计的特点,表l 列举了两者的不同。 表lv i s u a l c + + 6 0 和e v c4 0 的比较f 3 】 t a b i e 】c o m p a r cb e t w e e nv i s u a lc 抖6 0a n de v c 4 o 【3 】 不同点 v i s u a l c 十+ 6 oe v c 4 o a p iw i n 3 2a p lw i n 3 2a p i 的子集 运行时c 运行时库标准c 运行时库的子集 编译器c c 抖编译器为( x 8 6 ) 模拟器提供的x 8 6 c c + + 编译器:为a r m 设备 提供的c l a r md c + 十编译 器;为m i p s 和m i p s f p 设备 提供的c l m i p sc c + + 编译 器;为p o w e r p c 设备提供的 c l p p cc c 什编译器;为 s u p e rh 设备提供的s h c l c c + + 编译器 开发工具通用开发工具使用和w i n d o w s 环境类似的 开发工具,还附加了一些为 w i n d o w sc e 设备提供的远程 开发调试工具,并具有能生成 w i n d o w sc e 格式资源的资源 编辑器,能生成4 色位图等 w i n d o w sc e 格式的资源 m f c 类库支支持微软基础类w i n d o w sc em f c 是标准 持m f c 类库的子集 活动模板库支持活动模板库( a c t i v e支持大多数a t l 类 支持 t e m p l a t el i b r a r ya t l ) 标准模板库支持标准模板库 不支持 支持 总之,s u a lc + + 6 o 和e v c4 o 之间的差异是由于它们适用的范围造成的, 前者主要台式机的程序开发中,而后者主要用于嵌入式设备的程序的开发中。 9 韭塞窑堑塞堂亟主堂焦盐塞21 曼! b 蛰篚整勐终塑盈遥童功能 2 4 2 微软消息队列( m s m q ) m s m q ( m i c r o s o rm e s s a g eq u e u e ) 是w i n d o w s 操作系统中消息应用程序的基 础,是用于创建分布式、松散连接的消息通讯应用程序的开发工具。消息队列和 电子邮件有着很多相似处,他们都包含多个属性,用于保存消息,消息类型中都 指出发送者和接收者的地址;然而他们的用处却有着很大的区别:消息队列的发 送者和接收者是应用程序,而电子邮件的发送者和接收者通常是人。利用m s m o , 应用程序开发人员可以通过发送和接收消息方便地与应用程序进行快速可靠的通 信。消息处理为您提供了有保障的消息传递和执行许多业务处理的可靠的防故障 方法。m s m q 与x m lw e bs e r v i c e s 和n e tr e m o t i i 】g 一样,是一种分布式开发技 术。但是在使用x m lw e bs e r v i c e s 或n e tr e m o t i n g 组件时,c l i e n t 端需要和s e r v e r 端实时交换信息,s e r v e r 需要保持联机。m s m q 则可以在s e n ,e r 离线的情况下工 作,将m e s s a g e 临时保存在c 1 i e m 端的消息队列中,以后联机时再发送到s e r v e r 端处理。m s m q 不适合于c l i e n t 需要s e r v c r 端及时响应的这种情况,m s m q 以异 步的方式和s e r v e r 端交互,不用担心等待s e r v e r 端的长时间处理过程。 在终端语音功能的开发过程中,需要创建两个消息队列,一个消息队列用于 存放电话程序发送而被t e t r a s e r v e r 读取的消息,另一个消息队列用于存放 t e t r as e r 他r 发送而被电话程序读取的消息。另外,对消息队列进行操作的各种 函数都被封装在c m s m q 类中。通过c m s m q 对象可以执行创建消息队列,删除 消息队列,向消息队列发送消息,从消息队列中读取消息等一系列操作。 1 0 3 1电话程序的界面 3 电话程序的开发 电话程序的界面的布局,如图3 1 所示。电话程序的界面,如图3 2 所示。 系统信息医 主信息匠 次信息区 蠡半键匠功艟健区 功能键l 功能链2 功能键3 功能键4 任务栏 图3 1 电话程序界面的布局 f i 吕3 1s n | l i c t u r co f t e l e p h o n ep r o g r 枷s h o w 图3 2 电话程序界面 f 皓3 2t c l e p h o n ep r o g m ms h o w 电话程序的界面由系统信息区、主信息区、次信息区、数字按钮区、功能按 钮区、任务栏六个区域组成。 ( 1 ) 系统信息区 该区域主要包含了音量、帮助、关闭按钮。通过音量按钮可以调节系统的音 量,通过帮助按钮可以获取有关电话的帮助信息,通过关闭按钮可以隐藏电话程 序。 ( 2 ) 主信息区 该区域用于显示各种提示信息。例如,当用户在输入电话号码时,此处将显 示“正在输入”以及输入的号码;当有来电时,此处将显示“来电”,主叫方的号 码等。 ( 3 ) 次信息区 该区域的最左边用于显示呼叫建立后的呼叫类型,例如,组呼、紧急呼叫等。 它的右边显示通话的持续时间。 ( 4 ) 数字按钮区 该区域包含了0 9 十个数字以及和# 按钮。通过这些按钮用户可以方便输入各 种号码。 ( 5 ) 功能按钮区 该区域可以显示的按钮包括:拨出、接听、挂断、电话簿、通话记录、话机 设置等。由于这个区域仅包含四个位置,所以具体显示那些按钮是由主信息区的 内容决定。 ( 6 ) 任务栏 该区域用于显示信号强度等图标。 由于终端的语音功能比较丰富,所以仅有电话程序界面上的按钮还远远不够, 为此终端上还设置了p t t 、紧急呼叫、接听、挂断等物理按键。 3 2 电话程序中使用的类 由于电话程序是一个面向对象的程序,所以它使用的函数和变量都被封装在 不同的类中。通过将这些类的对象进行有机的组合,就可以实现电话程序各种功 能。电话程序定义了如下一些类: ( 1 ) c s t a t e : c s 诅t e 为整个电话程序的核心,它是对电话程序在某个时刻所处的状态的一种 抽象。它有三个派生类,分别为:c 掘l e s t a t e ( 空闲状态) 、c i n p u t s t a t e ( 输入状态) 、 c o i l l i n e s t a t e ( 通话状态) 。当电话程序刚打开时,它所处的状态由c i d l e s t a c e 类进 行描述;当用户正在通话时,电话程序所处的状态由c o l 】l i n e s t a t e 类进行描述;除 了以上两个状态以外,电话程序的其他状态都由c i n p u t s t a t e 类进行描述。电话程 序的这三个状态,在一定的事件驱动下可以相互转换。具体转换结果是由一个二 维数组决定。 c s 诅t e 的主要的成员函数为b o o lp r o c e s s i n p u t ( m e s s a g et 慢 m e s s a g e t y p e ,i n tp a r a l n ) ,该函数负责处理电话程序收到的各种消息。 c s 诅t e 的主要成员变量为mh 哟a r r a y 【m a xn 师o 】,该数组变量负责保存一 1 2 韭立銮适盍堂亟堂僮途塞 3童运霆崖鳆珏蕴 个状态包含的c i i l = f o ,它最多可以包含7 个。 ( z ) c 溉k c s t a c k 类具有下列功能: 负责管理电话程序的状态转换。当需要切换到一个新的状态时,前一个状 态需要被压入状态堆栈;当一个状态终止时,需要判断栈顶的状态是否有 效,如果栈顶的状态有效则将电话程序设定为该状态;如果栈顶的状态无 效,则首先将这个状态从堆栈中弹出,然后再对堆栈中的下一个状态进行 判断,直到找到一个有效的状态并将它恢复。 接收u i 、c h a 衄e i 的事件触发的各种消息并命令当前状态对这些消息进行 处理。 c s t a c k 类的主要成员函数分别为: v o i dp r o c e s s i n p u t ( m e s s a g e j y p em e s s a g e t y p e ,i n tp 8 r a l n ) 。该函数可以 接收u i 、c l l a i l i l e l 的事件触发的各种消息 p o p u p o 。该函数可以将一个状态从状态堆栈中弹出。 p u s h ( c s t a t e + p s t 甜e ) 。该函数可以将一个状态压入状态堆栈中。 c s t a t e c r c a t e s t a t c ( s t a - j y p es t a t e t y p e ) 。当电话程序需要进行状态 转换时,这个函数负责创建一个新状态。 c s t a c k 类主要的成员变量分别为: c p m a yms c a f e l i s t 。状态堆栈,负责保存电话程序的一系列状态。 c s t a t e + mp a c t i v e s t a t e 。这个变量负责记录电话程序的当前状态。 ( 3 ) c c h a l l e l m a l l a g c r 在电话程序中,当它处于通话状态时,称它具有一个激活的信道,当它处于 非通话状态时,称它没有信道。 c c h a n n c l m a i l a g e r 类负责信道的创建和维护。c c l l a 肌e l m a n a g e r 还具有下列职 责: 负责创建两个消息队列,一个队列存放电话程序发送给勰as e f y e f 的 消息,另一个队列存放t e 耶渔s e r v e r 发送给电话程序的消息。 负责创建一个线程,该线程负责监听m s m q 消息,这些消息包括对方来 电、对方接听、对方挂断等事件。当一个事件发生时,c c h a l l n e l m a i l a g e r 将会产生一个消息并将这个消息发给u i 。 负责将用户触发的事件转换为m s m q 消息并将它们发送给卿a s e r v e r ,这些事件包括用户拨出一个呼叫、挂断一个来电等。 c c h a n n e i m a n a g e r 类的主要成员函数分别为: m s m q 操作函数:i i l i t m s m q o ;c l o s e q 咖e o 等。 j s 塞銮适盔堂亟堂焦诠塞 电适程庄煎珏蕉 电话操作函数:0 i l p i c k u p o :o n p h o n e o u t ( ) 等。 信道操作函数:c c h a i l n e l g e t c l 姗e l ( c h a l l i l e l _ t 押ec h 煳d t y p e ) ;b 0 0 l c 1 0 s e c l 抛m e l ( c c h 髓n e l + p c l 姗e ) ; c c h a l l n e l c r e a t e c h a n n e l ( c h 籼e l j 卯ec h a n n e l t y p e ) ;i n tg e t c h a l l l l e l c o u n t o 等。 消息响应函数:b o o lp r o c e s s i n p u “m e s s a g e _ _ t y p em e s s a g e t y p e ,i n t p a r a l l l l 。 c c h 咖e l m 柚a g c r 类主要成员变量分别为: c s p e a l ( e r m | j 磁n g s p e a l ( 舒。该指针指向来电时创建的s p e a k e ,它用来 保存来电的这个用户的各种信息 c s p e a k e r + i 叫p h o n e o u t s p e a l ( e r 。该指针指向拨出时创建的s p e a k e r ,它用 来保存被拨叫的这个用户的各种信息。 “) c s p e a k e r 这个类是对通话中的用户一种抽象。当用户要拨出个电话时,电话程序将 创建一个mp p h o n e o u t s p e a k e f 对象;当用户接收到一个来电时,电话程序将创建 一个l p r i n g s p e a k e r 。 c s p e a l ( e r 类的主要成员函数分别为: c s 仃i n gg e t n a i l l e o ,获取名字。 c s 缸n gg e t n 啪b e r o 。获取电话号码。 c s p e a k e f 类的主要成员变量分别为: c s 砸n g 埘l s p e a k e 烈a m e ,该变量存放用户的姓名。 c s t r i n gm - p h o n e n u 加b c r ,该变量存放用户的号码。 ( 5 ,c c l a n n e l 该类负责记录实际通话信道的状态,维护c s p e a l ( e r 对象。这个类有两个派生类, 分别为:c a c t i v e c h a n n e i ,c o t l l e r c h a n n e l 。当电话程序接收到一个来电或用户要 拨出一个电话,它将会创建一个c a c t i v c c l 岫e l 对象。 该类的主要的成员函数分别为: i f l i t ( c s p e a k e r 4 p s p e a k e r ) ,该函数用于创建一个用户。 c t i n l eg c t o l l l i i l e ,r h e o ,该函数用于获取通话的持续时间。 该类的主要的成员变量分别为:c h a n n e l t y p emc h a n n e j t ) ,p e 。 ( 6 ) c u i m a n a g e

温馨提示

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

评论

0/150

提交评论