symbian串行通信

串行通信是一种用于两台设备间(典型情况下是距离较近)传输数据的低级别点对点技术。Series60支持红外线和蓝牙上的串行通信。Series60实现的中心是串行通信服务器(Serial Communication Server,又称Comms服务器或C32)。它使用Symbian OS客户端/服务器框架,提供对串行硬件的访问,并且是通用的和共享的。通用是指红外线和蓝牙串行通信使用相同的API,共享是指多个客户端线程可以安全地并发使用同一个串行端口。

Series60中所有的串行通信都使用下列基本步骤实现:

1.装载串行设备驱动器

2.启动Comms服务器

3.连接到Comms服务器

4.装载一个comms模块(又称CSY: “Comms SYstem”)----Comms服务器的插件,它将决定使用哪种类型的串行端口(红外线or蓝牙)

5.打开一个串行端口

6.配置此串行端口

7.从端口读写数据

8.最后关闭端口

通信过程中会涉及到几个重要的类,下面简单介绍之:

1.RCommServ

串行通信服务器会话类。它描述了同Comms服务器的会话。提供了连接到服务器函数、装载/卸载不同comms模块函数、查询有效端口名字和数量函数等。

同comms服务器间的会话是不可共享的。此类不能被继承。继承自RSessionBase。

Members
Defined in RCommServ:
Connect(), CreateThreadInCommProc(), GetPortInfo(), LoadCommModule(), NumPorts(), RCommServ(), UnloadCommModule(), Version(), __DbgCheckHeap(), __DbgFailNext(), __DbgMarkEnd(), __DbgMarkHeap(), __DbgSetTraceMask()
Inherited from RHandleBase:
Attributes(), Close(), Duplicate(), FullName(), Handle(), HandleInfo(), Name(), SetHandle(), SetHandleNC(), iHandle
Inherited from RSessionBase:
CreateSession(), EAutoAttach, EExplicitAttach, Open(), Send(), SendReceive(), SetReturnedHandle(), ShareAuto(), ShareProtected(), TAttachMode

2.RComm

继承自RSubSessionBase,描述了一个子会话,使用某一个端口同C32服务器通信。提供的函数均通过操作端口来实现通信,包括打开、关闭、读写、端口配置和性能检测等。一旦使用了某端口来通信,就不能再改变此端口。

下面是串行通信步骤的详解:

1.装载串行设备驱动器

有两个部分需要装载:一个物理驱动器(直接与硬件交互)和一个逻辑驱动器(提供物理驱动器上的API)。它们的名字是固定的,在这里属于全局性定义。注意,用于模拟器生成(WINS)的物理设备驱动器和用于目标生成的不同。

// Physical device driver names
#if defined (__WINS__)
_LIT (KPddName, "ECDRV");
#else
_LIT (KPddName, "EUART1");
#endif
// Logical device driver names
_LIT (KLddName, "ECOMM");

时间: 2024-08-05 18:45:51

symbian串行通信的相关文章

Symbian系统开发专题

symbian入门系列:applicatoin对象研究 symbian入门系列: framework symbian入门系列: document对象分析 Symbian学习总结-基础篇-Symbian C++中的异常处理 Symbian框架 Symbian游戏编程应用程序开发 Symbian开发工具Carbide简介 Symbian内存管理的二十二条军规 Symbian学习笔记(21)--原来还有这个工具wsdl2cpp,访问webserv Symbian学习笔记(20)--用gSOAP更简单地

FreeBSD中使用串行通信进行远程内核调试

探索在不影响系统性能的情况下,如何远程调试正在目标计算机上运行的 FreeBSD 内核.本文讨论如何使用串行通信端口设置调试环境.如何编译经过修改的内核代码.如何进行调试,并介绍了一些故障诊断提示. 引言 FreeBSD 是从 BSD 衍生而来的高级操作系统,BSD 则是加利福尼亚大学伯克力分校开发的 UNIX 版本.它提供了很高的性能,与其他系统的兼容性更强,并且需要的系统管理更少.FreeBSD 包含了内核级的状态式 (Stateful) IP 防火墙以及许多其他服务,如 IP 代理网关.访

嵌入式操作系统Symbian简介

symbian是一个操作系统,C++是其原生编程语言.它为软件开发人员提供了操作系统的全面功能.当然对C++的熟悉程度直接影响了开发人员对其的使用,因为Symbian OS下的开发会广泛运用C++的高级特征和面向对象设计.我们暂且认为大家对C++都有了相应的了解,而且已经亲身经历了某些项目开发,因此,以后文中如使用到C++范畴中的概念词汇,不会对其做特殊解释说明. 1.了解Symbian OS 目前,市场上的Symbian Os手机都是基于3种针对C++程序员开发的用户界面:Nokia Seri

在 C++ Builder中利用串行通信控件编程

摘要:串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛.本文介绍了在C++ Builder中如何利用串行通信控件进行串行通信编程. 一.引言 目前,在用计算机进行数据传输时,常用的是串行通信方式.用C++ Builder来编写串行通信程序时,可以调用Windows API函数,也可以利用VB中的MSComm控件. 利用 API函数编写实际应用程序时,往往要考虑多线程的问题,这样编出来的程序不但十分庞大,而且结构比较复杂,继承性差,维护困难.但是使用串行通信控

Symbian倒在3G的门槛上

两.三个月前,三星和索尼爱立信再次强调彻底放弃Symbian系统的时候,有人就说过,如今Symbian是否开源已经没有区别,因为只有诺基亚一个真正像样的手机厂商在支持它. 但是没想到短短几十天后,Symbian基金会就正式宣布,基金会官方网站Symbian.org于12月17日关闭,而Symbian智能手机操作系统将会重新回归封闭.如今,12月17日已过,Symbian.org终于像某些被和谐的美帝网站一样,正式退出历史舞台. 这样的命运,绝非一语成谶.Symbian于智能手机的未来,早在iOS

用Win32 API实现串行通信

串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛.我们可以利用Windows API 提供的通信函数编写出高可移植性的串行通信程序. 在Win16中,可以利用OpenComm.CloseComm和WriteComm等函数打开.关闭和读写串口.但在Win32中,串口和其他通信设备均被作为文件处理,串口的打开.关闭和读写等操作所用的API函数与操作文件的函数相同.可通过CreateFile函数打开串口,通过CloseFile函数关闭串口,通过CommProp.D

在Vista系统上搭建Symbian开发环境的实践

大家都很清楚,Symbian并不是一个很容易安装的开发环境,最近我将OS换成Vista以后,又遇到了前所未有的麻烦.折腾了一个晚上总算是跑通了,下面把过程总结一下,希望下回重装系统时不用太费劲了. 第一步,按网上的资料安装所需的软件,要注意两个方面: 一是版本别弄错了,如下: JDK 1.6.0_04 (jdk-6u4-windows-i586-p.exe) Perl 5.6.1 (ActivePerl-5.6.1.638-MSWin32-x86.msi) 然后,就是正常安装Carbide C+

建立Symbian开发环境的方法Nokia版

最近终于有时间看看论坛,发现好多同志都在问同一个问题:应该如何配置Symbian的开发环境.我在这里说一下正确的方式.在Symbian开发社区里大家都是用这个方式建立Symbian开发环境的. 第一步.到Nokia论坛注册,下载最新的sdk.第二步.到http://www.activestate.com网站下载最新的Active Perl Script 安装程序.我发贴的时候最新的应该是ActivePerl 5.6.1.638了. 注意:你不必安装JRE,那个东西我们从来都不用. 第三步.建立一

遍历Symbian某目录下的所有文件

遍历Symbian某目录下的所有文件应该是Symbian中常用到的功能模块,比如你想写一个类似"程序管理器"的程序,那么首先的任务就是要先知道某目录下到底有那些文件,然后再筛选出你所需要的文件. 遍历Symbian某目录下的所有文件有两种方法 ① 我们首先学习点预备知识 查看SDK HELP中的GetDir()方法,你会看到如下的内容: GetDir() TInt GetDir(const TDesC& aName,TUint anEntryAttMask,TUint anEn