天天看點

序列槽程式設計利器:Pcomm lite 序列槽庫介紹

泡CSDN論壇時過一陣子就會看到提問關于序列槽程式設計的,有用API的,有用mscomm的。其實用了Pcomm lite,很多問題都不會碰到,隻需要打開序列槽,建個線程收資料,然後隻需要關注自己要收發的資料就行了。

PComm Lite是家叫moxa的公司出的,做了幾十年工業序列槽卡、序列槽伺服器之類裝置了。提供的pcomm易用性、可靠性久經考驗。下載下傳位址:http://www.moxa.com/product/download_pcommlite_info.htm

目前最新版是Version 1.5 Released 2010-09-20 支援XP/win7, 32/64bit的庫都有,開發環境支援VC/VB/Delphi。

注意可以會搜到另外一個Version 2.6. Released Jul 8, 2008是WIN9x/NT4用的,不要看版本号高下錯了。國外工業上還有很多老系統在用。

用起來很簡單,pcomm.h/pcomm.lib兩個檔案複制到項目目錄并引用,pcomm.dll丢到windows\system32下。

整個庫包含50多個函數,最常用的也就10來個:

打開、關閉、設波特率的:sio_open ()、sio_close()、sio_baut()

發送資料的:sio_putch(),sio_write() 

接收資料的:sio_getch(),sio_read()

查詢輸入輸出緩沖區狀态的:sio_iqueue(), sio_oqueue()

有時可能要設讀寫逾時:sio_SetReadTimeouts(), sio_SetWriteTimeouts()

這些函數見名知義,用法查一下PComm.chm就行了。

接收資料一般免不了要開線程的,在接收線程裡sio_iqueue()看一下有沒有資料,有就處理,沒就Sleep()一會。接收資料時它至少會幫你緩沖幾十k,一般也不會丢資料。也可以用sio_term_irq()指定接收一定長資料資料就調用一個CALLBACK函數。

這些基本就齊活了。需要控制DTS/RTS、自動流控件有都有,甚至還有Xmoderm/Ymoderm/Zmoderm發送檔案。如果要Modbus之類的協定就要自己寫了。

繼續閱讀