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


     

    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对象,一直没有实现,如果可以的话,将能享受到更强大的串口功能。

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

  • 相关阅读:
    微信小程序中的WXS语法
    小程序 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogramRoot` 目录内
    Linux 远程连接sftp与ftp
    MySQL使用方法
    Rsync+Inotify实时同步环境部署
    inotify+rsync实时同步
    rsync备份
    C# 基于ef的2种简单的仓储封装和工作单元 net core3.1 ---sqlserver 2019
    xshell个人免费版下载使用
    Git 命令之 git add、git commit
  • 原文地址:https://www.cnblogs.com/swnuwangyun/p/623469.html
Copyright © 2020-2023  润新知