DVB-S的TKGS子系统UI设计与实现_第1页
DVB-S的TKGS子系统UI设计与实现_第2页
DVB-S的TKGS子系统UI设计与实现_第3页
DVB-S的TKGS子系统UI设计与实现_第4页
DVB-S的TKGS子系统UI设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

DVB-S的TKGS子系统UI设计与实现毕业论文目录摘要 错误!未定义书签。Abstract 错误!未定义书签。绪论TOC\o"1-5"\h\z课题背景 1课题研究的目的和意义 1国内外研究概况 1课题主要研究内容 2本章小结 2数字机顶盒相关理论\o"CurrentDocument"\h数字电视系统 3数字电视基本概念 3数字卫星电视系统 3\o"CurrentDocument"\h数字机顶盒简介 3数字机顶盒基本概念 3当前数字机顶盒发展概况 3DVB标准简介 4\o"CurrentDocument"\hDVB-S 4\o"CurrentDocument"\hDVB-C 4\o"CurrentDocument"\hDVB-T 5本章小结 5基于SPHE1506的DVB-S软硬件系统构成DVB-S硬件系统 6DVB-S主板架构图 6\o"CurrentDocument"\hromter模块 7串口调试模块 8DVB-S软件系统 9DVB-S软件系统架构图 9DVB-S系统文件目录结构 9OSD技术原理 10OSD技术原理 10OSD的寄存器 12OSD的显示规则 12本章小结 13TKGS子系统及其UI实现TKGS子系统 14TKGS子系统规则 14TKGS子系统操作模式 14TKGS子系统流程控制 15TKGS子系统菜单结构 17DVB-S系统流程 20\o"CurrentDocument"\h开发相关目录和文件 22\o"CurrentDocument"\h相关目录 22相关文件 23uiDesign工具使用以及code生成 24\o"CurrentDocument"\huiDesign工具 24\o"CurrentDocument"\huiDesign绘制TKGS子系统UI 26\o"CurrentDocument"\huiDesign生成code资源 29code资源的结构 30TKGS子系统UI代码实现 33TKGS子系统软件实现 33code资源的整合使用 35\o"CurrentDocument"\hTKGSUI调用 36本章小结 365总结与展望全文总结 37展望 37致谢 错误!未定义书签。\o"CurrentDocument"\h参考文献 38\o"CurrentDocument"\h附录 40\o"CurrentDocument"\h附录1:硬件实物图 40\o"CurrentDocument"\h附录2:英文缩写 41#∕*WindowandControlscommondatastructure集/S七τ?UCt__win_contr^l_struct_t_{HWNDhandle;∕*DynamicgerClassType_etype;∕*Typecfthe,UINT32Ustyle√∕*CommonstyUINTl6pstyXej∕*ParUcuIarsbUINΓ16state;■∕*StetesOftheStri3C⅛.UIMT8noxmia.1—font_1≡tyle:4;UINTBfocτιs—EQil七与tyle:4;UINTSclick^font_s"tyle:4;UINT8disa±)lefontstyle:4;}wincontrolstrstylet;TUT16XcoordinateIKT16y『∕=tYcoordinateUIMT1I6width;∕*Widthofa门UINT1I6h。土gh∙b;∕*HeightofarUI∣WT,32region;∕*Regionindu>void*parmm;∕*Pointertoit!void»sul>pa.i?am;Pointertoit!}?end_win_control_struct_t_?;typsdefstruct_win_con-trol_struet_t_WXnCθHatXOl_"t;图3.18aWinControl_t结构体最终,一个menu的所用的所有资源都被整合到WinControl_t类型结构体中。这个结构体描述了menu的位置大小、类型、风格、句柄、区域等信息。typedefstruct_STRUCT_APEIiET{

UINT16 focused__item;UHNIIi_6 noofcontrols/WiRControl_t *controlList;}STRUCT_APPLET;∣ -图3.18bSTRUCT_APPLET结构体这个结构体描述了menu中获得焦点的子控件的标识,所有子控件信息的数组首地址STB_IDM_TKGSSet_control以及子控件个数。它会被添加到STB_IDM_TKGSSet_window结构体中。structwincontrolstructextUHNEanormal—font_style:4;UHNEafocxis_font_style:4;UHNEanormal—font_style:4;UHNEafocxis_font_style:4;UIHT8clickfontstyle:4;UIHT8disablefontstyle:4;}win_contrc>l_str_5tyle_t;INT16INT16UINT16UINTl6UINT32voidvoidstructx;∕*V;WidtLhJ∕*height;∕*region;*pa.ram;*Vnhn=mm:∕*XcoordinateoftYcoordinateoftWidthofarectaHeightofarectcRegionindex*/PointertoitsPointertoits≡P'chiFONTSize_tFONTSize_tFONTSize_tFONTSizetnormaJfontsizeffocosfontsize;clickfontsize;disablefontsize;}w±ncontrolfontsizet;}?end_win_control_struct_ex_t_?;t,ypedθfstruct_win_co:ntro1_stjzllct_ex--tIWirLCoritrolExt;HWNDhandle;∕*DynamicgeneratClassType_etype;∕*TypeofthewideUINT32c与七yle;∕*Commonstyles<UINTl6p_style;∕*ParticularstylesUINT16state/∕*Statesofthewiιstruct图3.28cWinControlEx_t结构体menu中的各个自控都对应一个WinControlEx_t类型结构体,这个结构体包含了控件的所有信息,如位置坐标、大小、颜色、背景、所用到字串资源、所用到的图片资源等,最后这些控件都被添加到STB_IDM_TKGSSet_control数组中去了,而这个数组有添加到STB_IDM_TKGSSet_applet中,STB_IDM_TKGSSet_applet又被添加到STB_IDM_TKGSSet_window中。#includer'gni_eng/gui_en.gi.ne∙h''typθ<⅛efθnvun{STB_E_IDC_ICON_TKGSSGt_Title_MiddlefSTB_E_IDC_rEXT_TKGSSet_TextBox_Titie,STB_E_IDM_TKGSSET_MAXjr}STB_IDM_TKGSSeJt;-©xtern.WinContr-olEx_tSTBIDMTKGSS^tcontrol[]√externSTRUCT_APPLETSTB_rDL^jTKGSSetipplet;externWinControl_tSTB_IDM_TKGSSet_window;图3.29STB_IDM_TKGSSet_t结构体这个结构体描述了STB_IDM_TKGSSet_control中各个子控件的索引下标。STB_E_IDC_ICON_TKGSSet_Title_Middle和带有STB_IDC_TKGSSet_Title_Middle地址的控件对应,STB_E_IDC_TEXT_TKGSSet_TextBox_Title和带有STB_IDC_TKGSSet_TextBox_Title地址的控件对应,因为他们的位置序号是相同的,这种做法在系统中很普遍,非常方便。以后就可以通过索引下标来获得相应的控件了。4.5TKGS子系统UI代码实现经过前面的努力,可以开始着手代码实现了。下面就WinControlEx_t的显示过程做详细介绍。TKGS子系统软件实现编写dvbs_gui_object_tkgs_set_visible_location.c分别在application/dvb_s/gui_objects和/application/dvb_s/include/guiobj下添加dvbs_gui_object_tkgs_set_visible_location.c文件和dvbs_gui_object_tkgs_set_visible_location.h文件。为了将添加的C语言文件能够编译进系统,需要修改相应的Makefile。前也介绍过,在application/Makefile中添加:SOURCE+=dvbs_gui_object_tkgs_set_visible_location.c至此,dvbs_gui_object_tkgs_set_visible_location.c就能被编译进系统中去了。实现stDvbGuiPopMsg结构体变量typedefstruct_GUl_object_Definition_tIUINT8bCanBeFocused;UTNT32dUpdatePeriod; ∕∕100Mini-secondperunitGUIOfcj≡⊂t-≡,kU-ncPtrl:fpGU工OlbjeU"tOnC!ιo≡a■七∣≡;GUIObjectFLLncPtrEpGUHObjectOnDestroy;GUHQbject-FuncPtrfpGUIQbjecWhFqcased;GUIObjectFuncPtrfpGUIObjectOnI*oseFocus;GUIObjectTimerFnncPtrfpGUIObjectOnTiπιerUpdate;GUIObject-EVentFuncP-trfpGUIOk>JectOrLEvent;}GUI_Object__Definition_t;3.30GUI_Object_Definition_t结构体每一个独立的menuobject都对应一个GUI_Object_Definition_t类型结构体,该结构体描述了这个menu的生存周期,其各个成员功能如下:bCanBeFocused:标识menu创建后是否处于焦点状态dUpdatePeriod:标识menu刷新重绘的时间间隔fpGUIObjectOnCreate:创建menu时调用该函数fpGUIObjectOnDestroy:销毁menu是调用该函数fpGUIObjectOnFocused:menu获得焦点时调用fpGUIObjectOnLoseFocus:menu失去焦点时调用fpGUIObjectOnTimerUpdate:menu定时到期是调用(过了dUpdatePeriod)fpGUIObjectOnEvent:menu接收到消息是调用因此,要实现一个menu的显示就要在dvbs_gui_object_tkgs_set_visible_location.c提供GUI_Object_Definition_t类型结构并实现相关函数。3)stDvbGuiPopMsg添加至dvb_gui_object_table.h创建menu的工作一般是在fpGUIObjectOnCreate中完成的,但是在实际中并不去直接调用stDvbGuiPopMsg的这个成员,而是将stDvbGuiPopMsg添加到dvb_gui_object_table.h中去,通过引用dvb_gui_object_table.h里面相关内容来实现创建。这样就实现了所有menu的统一管理。在dvb_gui_object_table.h添加:externGUI_Object_Definition_tstDvbTKGSSet;GUI_Object_Definition_t*Dvb_GUI_Obj_List[DVB_GUIOBJ_MAX]={&stDvbGuiMainMenu, &stDvbTKGSSet, };typedefenum{DVB_GUIOBJ_MAINMENU=0, DVB_GUIOBJ_TKGS_SET DVB_GUIOBJ_MAX,}GUI_Object_ID;上述代码中斜粗体是自己添加的内容Dvb_GUI_Obj_List中添加的位置序号要和GUI_Object_ID中的位置序号相同,这是因为DVB_GUIOBJ_TKGS_SET就是用来记录stDvbTKGSSet在Dvb_GUI_Obj_List中的索引下标的。code资源的整合使用前面讲到了menu的创建,但具体怎么应用那些资源还没有提及,下面就介绍些怎样将code资源应用到程序中去。激活区域g_dDvbRegionHdl[u32RegionId]在第3章OSD技术中曾讲到,菜单式绘制在OSD区域上的,因此创建menu先要有OSD区域。而区域在uiDesign中就是windows中的子项,每个menu都会有相关的区域信息,都整合在了STB_IDM_TKGSSet_window结构体中。执行函数:GUI_FUNC_CALL(GEL_GetRegionIndex(&STB_IDM_TKGSSet_window,&dRegionId));GUI_FUNC_CALL(GEL_CreateRegion(STB_region_info,dRegionId,&g_u32RegionHdl);这样就创建出STB_IDM_TKGSSet_window对应的区域了,g_u32RegionHdl返回区域的句柄。而实际中比不这样做,为了统一管理,把所有区域句柄放在g_dDvbRegionHdl全局数组中,通过调用u32RegionId=Dvb_GUI_ActivateRegion(&STB_IDM_TKGSSet_window);g_u32RegionHdl=g_dDvbRegionHdl[u32RegionId];创建menu有了绘图的区域就可以创建menu了,调用函数:GUI_FUNC_CALL(GEL_CreateMenu(&STB_IDM_TKGSSet_window,g_u32RegionHdl));这样menu就创建出来了。menu参数设置menu创建后,有时候需要给menu中指定控件设置参数,就需要调用相关函数,设置参数前需要先获取控件对应的句柄:GUI_FUNC_CALL(GEL_GetHandle(STB_IDM_TKGSSet_control,STB_E_IDC_TEXT_TKGSSet_TextBox_Title,&(h_Text_LocTitle)));IDC_TEXT_TKGSSet_TextBox_Title就是该控件在STB_IDM_TKGSSet_control数组中的索引下标。然后在设置参数:GUI_FUNC_CALL(GEL_SetStrType(h_Text_LocTitle,GEL_DYN_STR_NATIVE));GUI_FUNC_CALL(GEL_SetParam(h_Text_LocTitle,PARAM_STATIC_STRING,“TKGS”));这样就将STB_IDC_TKGSSet_TextBox_Title中的文字字体设为何本地一致,文字内容设为TKGS(原来为SetVisibleLocation)。显示menu前面只是创建了menu,只是menu相关数据信息已经存在于内存中了,相应的区域也有了,并没有显示出来,调用函数:GUI_FUNC_CALL(GEL_ShowMenu(&STB_IDM_TKGSSet_window));至此,menu就被显示出来了。然后实现其它几个函数,只是业务逻辑上不同,对菜单的操作基本上没啥差别,先获取控件句柄,设置参数,然后掉函数销毁或重绘:GUI_FUNC_CALL(GEL_DestroyMenu(&STB_IDM_TKGSSet_window,TRUE));GUI_FUNC_CALL(GEL_SendMsg(h_Text_LocTitle,WM_PAINT,0));TKGSUI调用经过前面的铺垫,现在可以创建menu了。在系统的代码中需要创建(测试的话可以选你喜欢的位置)调用函数:SYSAPP_GOBJ_CreateGUIObject(stDvbInst.dSystemApplicationIndex,DVB_GUIOBJ_TKGS_SET);至此,menu的创建就实现了。所有这些实现代码远不止这些,不可能一一列举出来,这里只简单描述了创建显示流程,而其真正的业务还没做,所有这些具体的代码清单都列在附件2中。4.6本章小结本章主要介绍了TKGS系统项目,首先介绍了TKGS的规则,项目相关的操作模式和TKGS在系统中的流程控制;然后介绍TKGS菜单结构,揭示了最终开发出来的UI界面效果;接下来讲解了uiDesign工具的使用,绘制TKGSUI菜单,将UI工程Generation成code资源,并解释了各种code的组织形式;接着介绍了UImenu在屏幕上绘制的主要流程,主要是stDvbTKGSSet结构体变量的实现,其中包含了menu的生存周期;最后介绍了如何将code资源应用到程序中去,其实就是在stDvbTKGSSet变量中的函数中使用。TKGS的具体开发流程在本章完完整整的揭示了出来。至此,课题的主要内容也介绍完了。5总结与展望全文总结本文主要完成的工作有:根据课题研究内容,介绍了数字电视、数字机顶盒的相关理论和DVB标准,主要包括数字机顶盒的基本概念和当前的发展概况,DVB的三个标准DVB-S、DVB-C、DVB-T。针对TKGS子系统要求,介绍了TKGS子系统的软硬件系统构成。针对UI设计中广泛使用的OSD技术,介绍了课题研究中的相关软硬件实现。根据TKGS标准规则制定了TKGS系统的控制流程,包括待机时、后台工作、手动点击开始升级、出厂设置和配置页面结束五个流程;根据用户需求确定了TKGS的操作模式,包括主要有AUTO/CUSTOMER/OFF三种模式。分析设计了TKGS的菜单结构,主要涉及到三个菜单Menu:tkgs_start_upgrade、tkgs_editor和kgs_set_visible_location。TKGS大部分的用户操作的业务逻辑都在这三个Menu中实现。利用uiDesign工具设计出UI,并通过Generate操作生成UI相关的资源code;最后进行UI操作代码编写、代码汇总整合和调试。课题还存在一些不足:对整个DVB-S系统的把握还不够,研究中出现一些bug还没有解决;对TKGS标准规则理解还不透彻,对于底层开发的阐述有所欠缺。展望TKGS解决了DVB-S不能实时更新问题,其各种操作模式方便用户自由选择更新方式,极大地方便了用户的生活体验。TKGS的规则不仅能提供实时更新的信息,还能携带多种节目排序信息,用户不用再自己一个个对节目排序,可以通过节目排序信息流中选取一个或者几个排序方式。而且TKGS标准还可以提供其他相关的信息开发增值业务,也可以将这种规则应用到其他应用中,像DVB-C、DVB-T中都可以借鉴。参考文献胥静.嵌入式系统设计开发实例详解[M].北京:北京航空航天大学出版社,2004:10-23刘开文,刘远航.地面广播数字电视技术[J].北京:人民邮电出版社,2003:1-10谢瀚.数字电视机顶盒软件中间件的研发与实现[M].东南大学出版社,2005:1-8LonczewkiFrank,JaegerRudoif.AnextensibieSet-TopBoxArchitectureforinteractiveandbroadcastServicesofferingsophisticatedUserGuidance[J].IEEEMuitimediaandExpo,2000:112-124CicioraWS.Insidethesettopbox[J].IEEEspectrum,1995:70-75许贤铭.数字电视机顶盒可视化开发工具的设计与实现[J].武汉:华中科技大学,2008:8杨建华.数字电视原理与应用[M].北京:北京航空航天大学,2009:4-20URL:/view/16791.htm?fr=wordsearch.卢官明,宗昉.数字电视原理[M].北京:机械工业出版社,2009:5-8邓圻贵.数字机顶盒原理、应用与维修[M].北京:人民邮电出版社,2008:6-15URL:/subview/73510/5082257.htm?fr=aladdinURL:/view/1543830.htm?fr=wordsearch张耀丹.数字电视机顶盒应用软件的研究与设计[D].2008年5月:23-33URL:/view/141149.htm?fr=wordsearchNassR.Set-topboxes:fewstandardsbutarosyoutlook,ElectronicDesign[J],1995:101-110金益鉴.地面数字高清电视中嵌入式PVR系统设计与开发[M].中国科学技术大学,2009:11-23AnthonyJ.Massa.EmbeddedSoftwareDevelopmentWithEcos[J],2007:6-11宋靖涛,王匡,张明.DVB系统软件升级规范[J].中国有限电视,2009年第07期:629-630URL:/view/1152875.htm?fr=wordsearch郑林水,郁亮,陈惠明.在数字视频广播(DVB)接收机中实现软件自动更新[J].上海大学学报,2010年第11卷1期:11-14蒋巨平.嵌入式可配置实时操作系统eCos开发与应用[M].北京:机械工业出版社,2008:4-16Bovet.D.P.,Cesati,M.UnderstandingtheLinuxKernel[J].O’ReillyMedia,Inc.2007:8-15StanleyB.Lippman,JoséeLajoie,BarbaraE.Moo.C++Primer,FourthEdition[M].AddisonWesleyProfessional,February14,2005:12-15胡铁乔.DVB-C机顶盒在线升级原理及实现[J].中国名航学院学报,2008年10月第24卷第5期:34-38ISO/IEC13818-11994,recommendationH.222.0,GenericCodingOfMovingPicturesandAssociatedAudio[J]:Systems,1540,Sun.13Nov:1221-1256Rubini,Alessan

温馨提示

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

评论

0/150

提交评论