Kunne det være der skal oprettes et CommPortIdentifier Objekt for hver kommunikationsport førend den statiske funktion getPortIdentifiers kan kikke i den pool af objekter efter kommunikationsporte? Hvis du har acces til kildekoden til CommPortIdentifier ville det ytre sig som en static variabel der er en arrayliste (eller vektor/hashmap,/...) i klassen, som ethvert nyoprettet CommPortIdentifier objekt indsætter sig selv i.
Ovenstående er gætteri, men forekommer mig sandsynligt, da klassen ellers skulle være istand til at negotiere med alle mulige (og fremtidige) styresystemer (unix, linux, Windows, mainframes) for at finde deres porte.
Der skal ihvertfald foretages en form for installation/initiering. se: http://java.sun.com/products/javacomm/reference/faqs/index.html " Q: My application does not find any ports when it enumerates available ports. Q: BlackBox gives me a message that says "No serial ports found!"
A: In order for the Java communications API to find ports the file javax.comm.properties must be in the correct place. The preferred location is in <jdk>/lib. See the installation instructions for alternate locations and further information. "
Jeg har brugt Javax.comm til en COM port via USB til at programmere til en mobiltelefon. Der registrerede den mit usb kabel som en COM port (oftest port 3 eller 4, da jeg har alm. com porte i), som der "bare" skulle sendes data til. Men det kræver at du har et USB kabel der bliver installeret som COM for at kunne benytte den protokol.
class Port { private static String portName; private static SerialPort port; private static OutputStreamWriter out; private static InputStreamReader in;
public static void open() throws Exception { //open the connection via the serial line try { CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier("COM3"); port = (SerialPort)portId.open("SMS Transceiver", 10); port.setSerialPortParams(19200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); out = new OutputStreamWriter(port.getOutputStream(), "ISO-8859-1"); in = new InputStreamReader(port.getInputStream(), "ISO-8859-1"); System.out.println("open port\n"); // for debugging } catch (Exception e) { SMS.showText("could not open port:" + e); System.exit(0); } }
Har netop fået løst problemet... Fik hjælp af en lærer...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.