⑴ java如何通過串口IC讀卡器讀取IC卡號
讀取IC讀卡器分很多種,有種最簡單的是直接連電腦,使用串口助手軟體,選定特定的波特率,就可以接收IC卡號(有些是像RFIC的就需要對其解碼)
上面問題解決後,重點的是java如何做一個串口助手,眾所周知,java是運行在虛擬機上,也就是要運行在window的一個進程上,如果要java讀寫串口的話,肯定需要對它進行驅動編寫,而不僅僅是載入個jar包就能解決的。
幸運的是SUN公司已經幫我們解決了這個問題,你可以到sun公司網站上下載javacomm20-win32.zip的壓縮包,裡面就包含了串口的驅動(.dll文件)以及對應的jar包,下載後把.dll文件放到你<JDK路徑>/bin,通過jar包提供的api你就可以操作串口相關的介面了。這里一遍關於java串口使用的文章,希望能提供給您:http://blog.csdn.net/kabini/article/details/1601324
⑵ java串口,讀取和發送數據
publicstaticvoidprocess(){
try{
EnumerationportList=CommPortIdentifier.getPortIdentifiers();
while(portList.hasMoreElements())
{
CommPortIdentifierportId=(CommPortIdentifier)portList.nextElement();
if(portId.getPortType()==CommPortIdentifier.PORT_SERIAL)//如果埠類型是串口則判斷名稱
{
if(portId.getName().equals("COM1")){//如果是COM1埠則退出循環
break;
}else{
portId=null;
}
}
}
SerialPortserialPort=(SerialPort)portId.open("Serial_Communication",1000);//打開串口的超時時間為1000ms
serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);//設置串口速率為9600,數據位8位,停止位1們,奇偶校驗無
InputStreamin=serialPort.getInputStream();//得到輸入流
OutputStreamout=serialPort.getOutputStream();//得到輸出流
//進行輸入輸出操作
//操作結束後
in.close();
out.close();
serialPort.close();//關閉串口
}catch(PortInUseExceptione){
e.printStackTrace();
}catch(){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
⑶ java 多線程讀寫同一串口
串口本來是單向的,所以,讀的時候肯定寫不了(相反亦然)、一個程序(線程)寫了別的肯定寫不了。
所以,一個線程讀、另一線程寫。通過事件通知上層。 你懂。