主题:[讨论]请教串口编程问题
我要编写一个查找系统可用端口的程序。其中有个要求:能够实时监测出可用端口的变化情况,比如当程序运行中,拔掉某一个串口线,程序应该反映出可用串口的减少。
我的程序如下:
public class test1 extends Thread{
public static Vector com;
public static int []com_sort = new int[100];
public static int sizecom;
public test1()
{
com = new Vector();
}
public void run()
{
while(true)
{
try{
sleep(3000);
}
catch(Exception ex)
{
}
Enumeration en = CommPortIdentifier.getPortIdentifiers();
test1.sizecom=0;
com.removeAllElements();
while (en.hasMoreElements())
{
//System.out.println("has more");
CommPortIdentifier qortId = (CommPortIdentifier)en.nextElement();
//如果端口类型是串口,则打印出其端口信息
if (qortId.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
String temp = qortId.getName();
String getNum = temp.substring(3,temp.length());
int Num = Integer.parseInt(getNum);
System.out.println("NUM"+Num);
com.addElement(new Integer(Num));
test1.sizecom++;
}
}
System.out.println("Totalcom "+test1.sizecom);
}
}
public static void main(String args[])
{
test1 tt = new test1();
tt.start();
}
}
可是当我在运行过程中,拔掉串口线之后,Totalcom仍然不变。
小弟新手,求大虾指教,多谢!
我的程序如下:
public class test1 extends Thread{
public static Vector com;
public static int []com_sort = new int[100];
public static int sizecom;
public test1()
{
com = new Vector();
}
public void run()
{
while(true)
{
try{
sleep(3000);
}
catch(Exception ex)
{
}
Enumeration en = CommPortIdentifier.getPortIdentifiers();
test1.sizecom=0;
com.removeAllElements();
while (en.hasMoreElements())
{
//System.out.println("has more");
CommPortIdentifier qortId = (CommPortIdentifier)en.nextElement();
//如果端口类型是串口,则打印出其端口信息
if (qortId.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
String temp = qortId.getName();
String getNum = temp.substring(3,temp.length());
int Num = Integer.parseInt(getNum);
System.out.println("NUM"+Num);
com.addElement(new Integer(Num));
test1.sizecom++;
}
}
System.out.println("Totalcom "+test1.sizecom);
}
}
public static void main(String args[])
{
test1 tt = new test1();
tt.start();
}
}
可是当我在运行过程中,拔掉串口线之后,Totalcom仍然不变。
小弟新手,求大虾指教,多谢!