動機
應用程序開發語言為C#
應用程序要求既能在PDA上運行又能在PC上運行具備良好的兼容性
應用程序要求盡可能多的兼容不同PDA上的紅外線設備
net自帶的SerialPort在HP某型號PDA上操作紅外線設備時只能接受不能發射
目標
具備良好的兼容性既能夠在PC上運行也能夠在PDA上運行
擋在PDA上運行時盡可能多的兼容紅外設備
局限性
單線程
僅提供send/receive模式的接口無事件驅動機制
關鍵技術問題及典型測試案例
最關鍵的是對EscapeCommFunction的調用當串口為紅外設備時必須調用此函數才能確保串口工作正常當串口為一般的COM口時出於兼容性的考慮切勿調用此函數
在HP某PDA上測試時不管串口是否為紅外設備均調用此函數啟用紅外功能均能夠工作正常
在SIEMENS某PDA上測試時如果串口為一般COM接口並且調用了此函數那麼串口不能正常工作屏蔽此函數後一切正常
源碼
本文源代碼下載Download!
補充
自定義的serialport類雖然對ir有較大的兼容性但畢竟測試范圍有限不能保證對所有的設備都能夠兼容因此最初的想法是對net自帶的SerialPort對象調用EscapeCommFunction函數但苦於無法得到對象的Handle對象一直沒有實現如果可以的話將能享受到更強大的串口功能
當然該類遠未完善希望大家能夠盡可能的測試並給出意見)
From:http://tw.wingwit.com/Article/program/net/201311/11343.html