• 葛红亮:老“马”识途,中马关系不会逆转 2019-07-18
  • 让协商民主优势得以充分发挥 2019-07-16
  • QFII政策调整引增量资金入场 “成长+大消费”或成布局重点 2019-07-10
  • [大红包]——有神论者是客观唯心主义派别的三种世界观。无神论者是主观唯心主义、客观唯物主义和主观唯物主义三个派别的九种世界观!!!! 2019-07-10
  • 一语惊坛(6月8日):友谊勋章是给国际友人的最高荣誉。 2019-07-08
  • 【理上网来辉煌十九大】不忘初心,续写民族复兴新辉煌 2019-07-08
  • 【端午节民俗地图】河南鲁山端午槲坠:深山槲叶悠悠香 2019-07-05
  • 与香港市民携手 以社区活动保护环境 2019-07-05
  • 起底“网络黑手” 谁盗走了你的个人信息? 2019-06-29
  • 汕尾,一座不想离开的城文章中国国家地理网 2019-06-29
  • 吸引港澳多所学校报名参赛 2019-06-25
  • 县名解析——黄河新闻网 2019-06-24
  • 【理上网来喜迎十九大】美国丹佛大学孙晶:中国是世界“平稳的基石” 2019-06-23
  • 国家统计局:服务业企业经营收入增长加快 利润增长 2019-06-22
  • 速度与趣萌 萌娃自行车赛不用踏板 2019-06-12
  • 河南今天11选5走势图 > 技术文章 > Symbian > 基于Nokia S60的游戏开发之五

    快乐12选5任选六中多钱:基于Nokia S60的游戏开发之五

    河南今天11选5走势图 2005年12月22日 芯瓣            评论:0条 我来说两句

    河南今天11选5走势图 www.9e4g.com   在这一讲中中,将讨论Symbian OS的通讯组件。必须强调的是,从一个游戏开发者的角度来看,通讯技术是非常重要的。 最后介绍如何接收补充的游戏数据。

      通讯体系结构

      智能电话的移动特性和通讯技术的飞跃发展决定了它们对通讯??榈男枨?。 全世界都在使用智能电话,但是每个国家或者地区可用的通讯服务可能会有很大的差异。 现有的服务和技术不断地发展,而且新的技术层出不穷。 这些事实就要求智能电话通讯??榫哂辛榛钚院屠┱剐?,因此Symbian OS的通讯体系结构是基于这些思想来设计的。 它由几个小的??樽槌?,并且支持可以在运行期间装载的可插入式???。 而且通讯设置可以在系统不重新启动的情况下就进行更改。

      Symbian OS 6.1版本支持多种通讯技术,图1中都作了介绍。 特定的智能电话的可用的技术取决于它的硬件解决方案。 例如诺基亚7650或者诺基亚3650没有串行的数据线,但是可以通过蓝牙技术支持串行通讯。




    图1 Series 60通讯技术



      Symbian OS的通讯体系结构基于三个通讯服务器:ETEL、C32和ESOCK。 服务器提供的通讯服务是异步操作,因此它们需要被封装到活动对象里。一个客户应用程序一般产生三个不同的活动对象:一个用于传送数据、一个用于接收数据还有一个用于应用程序端通讯引擎。通讯??榈墓叵等缤?所示。




    图2 Symbian OS的通讯组件



      ETEL是一个电话通讯服务器,用于应用程序访问各种电话硬件和服务,例如GSM手机、模拟调制解调器和传真通讯服务。 这个服务器使用可动态装载的插入式???-电话通讯服务器???TSYs),把硬件特定的信息转化为应用程序可理解的格式。 这个服务器的客户端应用编程接口定义在etel.h头文件中,它主要由RTelServer、RPhone、RLine和RCall类组成。

      串行通讯服务器

      串行通讯服务器(C32)为它的客户端提供一个串行端口应用编程接口。这个服务器使用通讯服务器插入式???CSYs)处理实际的通讯协议。Symbian OS提供多个CSY???,例如处理RS232和红外线串行通讯。应用程序开发者还可以使用串行协议??橛τ帽喑探涌诶纯⒆远ㄒ錍SY???,自定义CSY??槎ㄒ逶赾s_port.h头文件中。

      串行通讯服务器使用方法都是很相似的,不管是否使用了CSY???。首先在初始化阶段,客户端加载所需要的驱动程序,打开服务器并且装载CSY???。在实际的设备已经打开并且配置之后,服务器准备发送并接收数据。最后,需要释放所有的资源。 串行通讯服务器的客户端应用编程接口定义在c32comm.h头文件中,主要由RComm和RCommServ类组成。 下面的代码是一个红外线串行通讯初始化阶段的示例。



      上面的示例代码可以通过加载ECUART CSY??槔创覫RCOMM模式切换到RS232,同时使用COMM:0端口代替IRCOMM:0。 RComm::Open中的ECommExclusive枚举防止其他的RComm客户端使用这个端口。

      可以使用RComm:Write和RComm::Read方法向端口写数据和从端口读取数据,它们都是使用一个TRequestStatus和一个描述符作为参数。 当传递完成时,生成一个事件作为活动对象,这个事件的TRequestStatus被传送到传递方法,这就使活动对象的RunL被调用。描述符参数通常是一个8位描述符,因此如果被传送的数据是文本的话,这个描述符需要被转换为Unicode。 数据传送方法可能还使用其它的一些参数,指定数据传送的最大长度或者时间等特征。

      对于应用程序来说,使用红外线进行通讯是一个很简易的方法,但是支持IrComm的主要原因便于以前的应用程序的转化,使之可以更容易地使用串行端口来进行通讯。和其它IrDA协议相比,IrComm不利的一面是它不提供所有的IrDA服务。 例如,使用IrComm的最大数据传送速度只有9600比特/秒,这显然对于众多传送大量数据的终端游戏来说是不够快的。

      套接字服务器

      套接字服务器(ESOCK)提供一个使用套接字的通讯协议的接口。 对于所有的协议和指定协议行为,客户端应用编程接口都是相同的。 套接字服务器使用TCP/IP、IrDA和蓝牙这些协议???,它们可在运行期间动态装载。 一个协议??榭赡馨喔鲂?。 例如IrDA??榭赡馨嫉腎rMUX、IrTinyTP、IrLAP、IrLMP和IrObex协议。 对应于TSY和CSY??榈墓残槟?榭梢杂捎τ贸绦蚩⒄呖?。

      套接字服务器的客户端应用编程接口的主要的类是RSocketServ和RSocket。 可以看到它们与RCommServ和Rcomm很相像。 RSocketServ处理一个服务器的会话,提供可用的协议的信息,但是不提供任何数据传送服务--它们由套接字类RSocket提供。 因为客户端应用编程接口对于所有协议都是相同的,某种单一协议的属性和语义与TProtocolDesc结构是有区别的。RSocketServer::GetProtocolInfo方法可用于读取当前装载的协议的信息。 套接字服务器至少需要两个不同的套接字。 一个用于监听进入连接请求,另一个用于建立一个连接和传送数据。 套接字服务器的客户端应用编程接口定义在es_sock.h头文件中。

      最吸引游戏开发者眼球的套接字服务器协议是蓝牙技术。 它提供了一个相对快速的、近程的解决方案,并且是免费使用的,因此很适合用于开发游戏。 与红外线通讯相比,蓝牙的优势是它有更大的活动半径以及在终端之间不需要任何可见的连接。

      如图3所示蓝牙由一个协议组组成。 Symbian OS 6.1版支持蓝牙1.0版,并且提供给应用程序完全访问RFCOMM、L2CAP和SDP协议的权限。 RFCOMM协议模拟串行通讯,因此简化了从原有应用程序的转化为使用蓝牙技术的过程。 应用程序的通常选择是使用逻辑链路控制和适应协议(L2CAP),提供给应用程序更加强大的函数来控制蓝牙连接。 服务发现协议(SDP)允许应用程序查询服务和服务提供商。通常当创建一个新的连接的时候,SDP搜索要求的终端并且建立连接设置。 Symbian OS还提供一个完整的用户界面组件来搜索可用的蓝牙终端。 它使用Symbian OS的通知框架,在应用程序窗口上产生一个对话类型组件并且把可用的终端作为一个列表来显示。




    图3 蓝牙堆栈



      游戏数据接收

      为了支持游戏接收额外的游戏数据,Series 60能让第三方游戏使用MIME类型在OS中注册它们的数据文件格式。 MIME类型被像WML浏览器和消息应用程序这样的通讯应用程序来使用,用于弄清楚一个具有某种特定类型的文件应该被保存在什么路径。 例如这个文件可以包含用于一个游戏的新的等级、武器或者图形。
    在Series 60中,用于游戏的MIME类型是下面这种格式:application/x-NokiaGameData-,这其中的是Symbian OS游戏应用程序的UID的最后八个数字。MIME类型在Symbian OS应用程序信息文档aif文件中声明:


      DATATYPE结构中的优先级指定当前的应用程序是如何处理这些数据格式。 EDataTypePriorityHigh应用于不能被其它应用程序处理的数据格式。

      接收数据的目的路径在名为.ini的ini文件中指定。 这个文件需要使用Unicode格式,并且它包含SDDataDir=,在这里是用于接收文件的路径。 这个路径是相对于默认游戏数据目录c:\nokia\games的。 当一个游戏被安装时,ini文件需要被复制到\System\SharedData目录下,它可以通过在一个游戏的pkg文件中指定路径来实现。

      Series 60指定一个用于游戏数据文件的遵循MIME类型的标准头结构。 头格式的结构在图4中说明。 Data类型字段可用于指定游戏内部的文件类型。 Name字串是一个Unicode字串,可用于指定一个用户可见的文本来显示菜单中的数据选项。 Data ID和Data版本是用于指定文件数据的类型和版本的号码。 NGDX字段必须包含ASCII字串"NGDX"。




    图4用于游戏数据文件的标准头

    (www.9e4g.com)
    读取...
    相关报道
    评 论
    文章导航 Navigation
    精彩评论 Commentmore...
    赞助商链接 Support
    特别推荐 Recommend
  • 葛红亮:老“马”识途,中马关系不会逆转 2019-07-18
  • 让协商民主优势得以充分发挥 2019-07-16
  • QFII政策调整引增量资金入场 “成长+大消费”或成布局重点 2019-07-10
  • [大红包]——有神论者是客观唯心主义派别的三种世界观。无神论者是主观唯心主义、客观唯物主义和主观唯物主义三个派别的九种世界观!!!! 2019-07-10
  • 一语惊坛(6月8日):友谊勋章是给国际友人的最高荣誉。 2019-07-08
  • 【理上网来辉煌十九大】不忘初心,续写民族复兴新辉煌 2019-07-08
  • 【端午节民俗地图】河南鲁山端午槲坠:深山槲叶悠悠香 2019-07-05
  • 与香港市民携手 以社区活动保护环境 2019-07-05
  • 起底“网络黑手” 谁盗走了你的个人信息? 2019-06-29
  • 汕尾,一座不想离开的城文章中国国家地理网 2019-06-29
  • 吸引港澳多所学校报名参赛 2019-06-25
  • 县名解析——黄河新闻网 2019-06-24
  • 【理上网来喜迎十九大】美国丹佛大学孙晶:中国是世界“平稳的基石” 2019-06-23
  • 国家统计局:服务业企业经营收入增长加快 利润增长 2019-06-22
  • 速度与趣萌 萌娃自行车赛不用踏板 2019-06-12
  • 二八杠输精光 三合中特是什么 福建22选5五行走势图 好运快3是什么 中国福利彩票3d88期 2019双色球走势图 最准确的六肖中特网站 深圳风采历史开奖记录 2o14体彩p3藏机诗汇总 河北时时彩一定牛推荐号 澜色大乐透12067 36选7体育彩票走势图 内蒙古时时彩今日走势图 五子棋段位制最高为 二肖中特提前公开