swnuwangyun-曲终人散成一梦,繁华落尽原是空

专注于:移动设备(Windows Mobile),射频识别(RFID, EPC),嵌入式系统。还有技术攻关,呵呵!

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  61 随笔 :: 1 文章 :: 118 评论 :: 5 引用

 

1.   动机

  1. 应用程序开发语言为C#
  2. 应用程序要求既能在PDA上运行,又能在PC上运行,具备良好的兼容性
  3. 应用程序要求尽可能多的兼容不同PDA上的红外线设备
  4. .net自带的SerialPortHP某型号PDA上操作红外线设备时,只能接受,不能发射

2.   目标

  1. 具备良好的兼容性,既能够在PC上运行也能够在PDA上运行。
  2. 挡在PDA上运行时,尽可能多的兼容红外设备。

3.   局限性

  1. 单线程
  2. 仅提供send/receive模式的接口,无事件驱动机制

4.   关键技术问题及典型测试案例

最关键的是对EscapeCommFunction的调用,当串口为红外设备时,必须调用此函数才能确保串口工作正常。当串口为一般的COM口时,出于兼容性的考虑,切勿调用此函数。

  1. HPPDA上测试时,不管串口是否为红外设备,均调用此函数启用红外功能,均能够工作正常。
  2. SIEMENSPDA上测试时,如果串口为一般COM接口,并且调用了此函数,那么串口不能正常工作,屏蔽此函数后,一切正常。

5.   源码
SerialPort Source Code

6.   补充

自定义的SerialPort类虽然对IR有较大的兼容性,但毕竟测试范围有限,不能保证对所有的设备都能够兼容。因此最初的想法是对.net自带的SerialPort对象调用EscapeCommFunction函数,但苦于无法得到对象的Handle对象,一直没有实现,如果可以的话,将能享受到更强大的串口功能。

当然,该类远未完善,希望大家能够尽可能的测试并给出意见:)

posted on 2007-01-18 10:17 swnuwangyun 阅读(2477) 评论(4)  编辑 收藏 网摘 所属分类: 移动设备

评论

#1楼 2007-01-18 10:21 zz[未注册用户]
用C#进行互操作,不如直接用C++
  回复  引用    

#2楼[楼主] 2007-01-18 10:24 swnuwangyun      
那为了运行在PDA和PC上,需要分别用VC和EVC来写2套相同的系统吧?
  回复  引用  查看    

#3楼 2007-01-18 13:14 sanhe[未注册用户]
好!
  回复  引用    

高手
  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 623469




相关文章:

相关链接: