我正在寫一個應用程序,它需要將數據發送到連接到COM端口的串行設備。 我很困惑,處理這種設備的最佳方式是什麼?處理跨平臺程序的COM端口的最佳方法?
我應該用C++編寫通信模塊還是應該用Java編寫這個模塊?
我想在Windows和Linux上運行應用程序。
我正在寫一個應用程序,它需要將數據發送到連接到COM端口的串行設備。 我很困惑,處理這種設備的最佳方式是什麼?處理跨平臺程序的COM端口的最佳方法?
我應該用C++編寫通信模塊還是應該用Java編寫這個模塊?
我想在Windows和Linux上運行應用程序。
COM端口只是一個普通的管道。 API預計相當簡單。在C++中,世界有更多的寫入端口的經驗。
其他問題將是 - 你知道它是什麼端口號?有幾種方法可以找出哪一個是你的,比如在Windows上設置API。
我的建議是,如果你想運行你的應用程序在Linux和Windows,去爲JAVA !.你可以在不需要編譯的情況下運行你的程序。否則你必須爲Windows和Linux分發單獨的二進制文件。
同時在windows和linux中用於訪問C++中的SerialPort的編程模型,因爲我初步是一個Windows C++開發人員,您可以使用CreateFile WIn32 Api訪問串行端口。
您希望使用單個二進制文件在Linux和Windows上使用哪種串行通信庫? – 2010-07-13 06:25:30
我沒有任何關於!那就是爲什麼推薦使用JAVA進行跨平臺開發。 有一種叫做minigw的東西,但你仍然編譯你的應用程序! – thatsalok 2010-07-13 06:40:24
你可以通過指定windows代碼的#ifndef「_WINDOWS_CODE」來編寫C++模塊,否則就可以編寫linux代碼的一部分。
而在VC++編譯擺在projecty設置 和GC的(_WINDOWS_CODE)宏++從項目文件
刪除宏在Linux上,我會建議libserial。你也可以考慮使用Python。有一個多平臺pySerial模塊。如果您決定使用Java,rxtx是一個多平臺庫。在Windows上,您可以使用Windows API for serial communications,並使用#ifndef
與libserial結合使用,如@Dharma建議的那樣。
將我寫的通訊模塊 C++或應我寫這篇文章的JAVA?
你更熟悉哪些?你受限於這兩種語言嗎?你也可以在pyserial中使用python。
你是做這個個人項目嗎?是爲了工作嗎?有人正在與你一起工作嗎? 他們更熟悉哪些?
對於C++,您可以使用Boost.Asio。
對於Java ...我不知道。
SOrry中斷,但我認爲他的應用程序是基於多操作系統... C++在這種情況下有很大的負面影響! – thatsalok 2010-07-13 06:11:19
@thatsalok:我不同意。我總是製作使用COM端口的多操作系統C++軟件。 'C++'完全適合這個任務。 – ereOn 2010-07-13 06:29:40