為了從RS485讀取數(shù)據(jù),由于暫時沒有硬件設(shè)備,系統(tǒng)是win7,故采用Virtual Serial Port Drive(VSPD)這塊虛擬串口軟件代替。并下載sscom3exe模擬串口通信軟件。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、南江網(wǎng)站維護、網(wǎng)站推廣。
新建eclipse工程,添加comm.jar或者RXTXcomm.jar包。因為javacomm20-win3zip包里有樣例SimpleRead.java,可以通過這個例子測試串口是否正確。
TCP/IP直接用Socket開發(fā)即可(性能要求好的就是使用NIO),或者你去看看Apache的Mina類庫,Mina直接支持了TCP/IP和串口。
串口的話只能用JAVA調(diào)用,然后通過關(guān)閉、打開來判斷。
有需要可以找廣州泰尚信息系統(tǒng)有限公司,專門做門禁一卡通的場家。
那么在java開發(fā)中發(fā)送數(shù)據(jù)的時候使用OutputStream,而其write()的參數(shù)是字節(jié)數(shù)組、int整形。如果使用字節(jié)數(shù)組發(fā)送的時候,通??梢灾苯訉懗蒾ut.write(1234.getBytes())。這樣一來單片機讀到的數(shù)據(jù)則是31 32 33 34。
發(fā)送的16進制串要先轉(zhuǎn)換為byte[]然后writer 接受方read()后要把字節(jié)在轉(zhuǎn)換成16進制串。
JAVA不能直接同硬件底層打交道,這種情況只能編寫本地程序,如用C/C++,并編譯為動態(tài)鏈接庫,在JAVA中調(diào)用庫【利用本地方法】。只用JAVA無法實現(xiàn)。
我自己的電腦上有一段源代碼,就是基于TCP聊天小代碼,能進行相互之間的消息接受。我的代碼是直接傳輸字符串的,不是16進制滴。嗯,也貼出來看看吧!運行服務(wù)器,c1,c2就可以了,c1與c2可進行通信。
要說是幾進制,那么肯定是2進制嘛。在硬件層面上看,串行通信的數(shù)據(jù)肯定是一位一位的傳的,一次一般可以傳8位。也可以設(shè)置是一次傳9位,但多出來的一位一般來說是校驗位,所以說數(shù)據(jù)還是8位,即一個字節(jié)。
1、導入支持java串口通信的jar包:在maven項目的pom.xml中添加RXTXcomm的依賴 或者 下載RXTXcomm.jar并導入到項目中。
2、text.getText().trim();getText是用來獲取text中輸入的字符串的,trim()是用來將獲得的字符串兩端的空格符去掉的。
3、java通過串口就可以跟讀卡器建立串口通信。
4、通過CommPort的getInputStream()可以取得端口的輸入流,它是java.io.InputStream接口的一個實例。我們可以用標準的InputStream的操作接口來讀取流中的數(shù)據(jù),就像通過FileInputSteam讀取文件的內(nèi)容一樣。