簡體   English   中英

如何讓Java在Linux中使用串口?

[英]How do I get Java to use the serial port in Linux?

我們使用通過串行端口管理pinpad的java應用程序。 這與Sun Comm.jar,提供的dll和屬性文件在Windows上完美配合。

現在我們正在嘗試在Linux上使用這個解決方案(實際上它確實在該領域的各種其他版本的Linux上運行) - 使用Ubuntu服務器模式。

經過多次嘗試 - 血液,汗水和幾乎眼淚,我們有這樣的場景:

Java版本1.4.2_17 Linux - Ubuntu Comm libs - 由sun提供的Comm3,其中指定了默認驅動程序

外部comm測試顯示了comm端口:/ dev / ttyS0和/ dev / ttyS1但java應用程序說無法打開端口/ dev / ttyS1

(使用RXRT文件產生無效的端口錯誤)

有沒有人能夠在linux上使用java 1.4.2進行串口通信,並找到了我可以在我的場景中應用的解決方案?

非常感激

菲爾

我知道這是一個老問題,但我創建了一個Java包和本機庫,允許串行端口讀寫,目前只在同步模式下。

它是開源的,可以在GitHub上找到:

j232 - Java源代碼

libj232 - j232的本機庫。

維基頁面在這里

請注意,這是一個僅限Linux的軟件包和庫。

確保您使用具有訪問串行端口權限的用戶。 某些發行版將串行端口放在uucp組中,因此請確保該用戶屬於該組。

我做完這件事已經有一段時間了。 我記得你不能只將/ dev / ttyS0作為文件和I / O打開。

我記得也和Sun IO罐子有同樣的問題。

我記得解決的解決方案是在C中創建一個小的命令行程序,它將stdin回顯到串口和串口到stdout。 然后,我從我的java進程啟動了這個程序。 我沒有代碼,但網上有很多關於寫入linux串口的c程序的例子。

我們幾年來一直在Windows和Linux上使用SerialIO庫進行Java串行通信,效果很好(不,我不適合他們:-)):

http://serialio.com/products/serialport/serialport.php

這些庫不會自動檢測Linux上的可用串行端口 - 您必須手動配置它們。

我們沒有太大變化,所使用的庫中沒有任何變化。 但刪除串口對象上使用EventListener修復了問題。

這實際上允許我們的代碼在linux上運行(jre1.4.2,slackware和Suns Comm3驅動程序),這在Windows上不是問題 - 奇怪。

菲爾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM