다음은 Enumeration for devices에 대해 구현 한 코드입니다. 나는 모든 직렬 장치를 감지하고 표시 할 수 있습니다. 그러나 다른 장치를 연결 한 다음이 기능을 다시 호출하려고하면 코드를 처음 실행하는 동안 항상 연결된 장치가 표시됩니다.Javax.comm을 사용하여 java의 모든 직렬 장치를 다시 열거하십시오.
코드 Snipet :
public void Listports() {
Enumeration ports = null;
ports = CommPortIdentifier.getPortIdentifiers();
CommPortIdentifier portId = null;
{
while (ports.hasMoreElements()) {
portId = (CommPortIdentifier) ports.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
System.out.println(portId.getName());
}
}
}
}
예를 들면, 함수의 첫 번째 호출에서 COM1 및 COM3 표시된다, 즉.
이제 직렬 장치가 COM27에로드되었다고 가정하십시오. 따라서 코드를 다시 실행하면 COM1과 COM3 만 표시되고 COM27 만 표시됩니다.
코드를 처음 실행하기 전에 COM27에서 시리얼 장치가 로딩됩니다. 이제 처음 실행하면 COM1, COM3, COM27이 표시됩니다. 이제 COM27 장치를 제거하고 위의 코드를 다시 실행하십시오. COM27이 연결되어 있음을 보여줍니다.
이 점에 대한 도움은 크게 감사드립니다.
감사합니다, Abhi
포트가 연결되어 있는지 실제로 테스트하는 코드를 게시하지 않았다면 사용 가능한 포트를 열거하십시오. – Peter
자세히 설명해 주시겠습니까? (PortId.getPortType() == CommPortIdentifier.PORT_SERIAL) 실제로 테스트 중인지 여부 직렬 장치가 연결되어 있습니다, 나는 뭔가를 놓치고 있습니까 ?? – Abhi4ever