串行通信是一种用于两台设备间(典型情况下是距离较近)传输数据的低级别点对点技术。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
![]()
如果喜欢symbian 串行通信请收藏或告诉您的好朋友.
阅读(114) | 评论(0) | 转发(0) |