科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道一个.NET平台下通用的串口操作类

一个.NET平台下通用的串口操作类

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

     1. 动机   应用程序开发语言为C#   应用程序要求既能在PDA上运行,又能在PC上运行,具备良好的兼容性   应用程序要求尽可能多的兼容不同PDA上的红外线设备   。

作者:中国IT实验室 来源:中国IT实验室 2007年9月30日

关键字: 平台 编程

  • 评论
  • 分享微博
  • 分享邮件
  

  1.   动机

  应用程序开发语言为C#

  应用程序要求既能在PDA上运行,又能在PC上运行,具备良好的兼容性

  应用程序要求尽可能多的兼容不同PDA上的红外线设备

  。net自带的SerialPort在HP某型号PDA上操作红外线设备时,只能接受,不能发射

  2.   目标

  具备良好的兼容性,既能够在PC上运行也能够在PDA上运行。

  挡在PDA上运行时,尽可能多的兼容红外设备。

  3.   局限性

  单线程

  仅提供send/receive模式的接口,无事件驱动机制

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

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

  在HP某PDA上测试时,不管串口是否为红外设备,均调用此函数启用红外功能,均能够工作正常。

  在SIEMENS某PDA上测试时,如果串口为一般COM接口,并且调用了此函数,那么串口不能正常工作,屏蔽此函数后,一切正常。

  5.   源码

    本文源代码下载:Download!

  6.   补充

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

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

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件