⑴ 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 多线程读写同一串口
串口本来是单向的,所以,读的时候肯定写不了(相反亦然)、一个程序(线程)写了别的肯定写不了。
所以,一个线程读、另一线程写。通过事件通知上层。 你懂。