Hallo zusammen,
Ich möchte über Java die Parallele Schnittstelle ansteuern.
Hierzu gibt es die Java Comm API:
http://java.sun.com/products/javacomm/index.jsp
http://java.sun.com/products/javacomm/javadocs/javax/comm/package-summary.html
(Diese API muss man sich erstmal herunterladen und installieren, steht alles in der Readme)
Zunächst habe ich die Parallele Schnittstelle gesucht und geöffnet:
Wie man erkennen kann habe ich den Modus auf LPT_MODE_SPP gesetzt.
Mein Problem ist nun aber, wie kann ich einzelne PINS an der Schnittstelle 1 oder 0 setzen?
Mein erster Versuch ging in diese Richtung:
Aber das funktioniert nicht. Ich weiß auch nicht wirklich welche bytes ich senden muss um die jeweiligen PINS anzusprechen. Ich hab ein Messgerät an die Schnittstelle angeschlossen, und das zeigt immer 1 an, ich hab auch einmal in einer schleife alle möglichen integer übergeben, aber das hat auch nix gebracht.
Hoffentlich hat jemand von euch eine IDee...
Danke im Vorraus
-hever-
Ich möchte über Java die Parallele Schnittstelle ansteuern.
Hierzu gibt es die Java Comm API:
http://java.sun.com/products/javacomm/index.jsp
http://java.sun.com/products/javacomm/javadocs/javax/comm/package-summary.html
(Diese API muss man sich erstmal herunterladen und installieren, steht alles in der Readme)
Zunächst habe ich die Parallele Schnittstelle gesucht und geöffnet:
Code:
/** Searches and opens the Parallel-Port
* -1 - Not sucessfully (No Port was found)
* -2 - Not sucessfully (Port is already in use)
* 1 - Port sucessfully opened
*
* (Port name and some IO-Parameters could be implemented)
*/
public int Open() {
//Gets "all" Ports in a List of them
m_PortList = CommPortIdentifier.getPortIdentifiers();
//Browses iterates list of Ports
while( m_PortList.hasMoreElements() ) {
//Gets one Port
m_PortId = (CommPortIdentifier) m_PortList.nextElement();
//Checks if selected Port is the Parallel-Port
if( m_PortId.getPortType() == CommPortIdentifier.PORT_PARALLEL ) {
try {
//Tries to get ownership of the Parallel-Port and opens it
m_ParalellPort = (ParallelPort) m_PortId.open("ParallelPortControl", 5000);
m_ParalellPort.setMode(m_ParalellPort.LPT_MODE_SPP);
} catch( PortInUseException e) {
//Port is in use
return -2;
} catch (UnsupportedCommOperationException e) {
return -2;
}
//Port sucessfully opened
return 1;
}
}
Wie man erkennen kann habe ich den Modus auf LPT_MODE_SPP gesetzt.
Mein Problem ist nun aber, wie kann ich einzelne PINS an der Schnittstelle 1 oder 0 setzen?
Mein erster Versuch ging in diese Richtung:
Code:
try {
outputStream = m_ParalellPort.getOutputStream();
} catch (IOException e) {}
try {
outputStream.write((byte) 1);
} catch (IOException e) {}
Aber das funktioniert nicht. Ich weiß auch nicht wirklich welche bytes ich senden muss um die jeweiligen PINS anzusprechen. Ich hab ein Messgerät an die Schnittstelle angeschlossen, und das zeigt immer 1 an, ich hab auch einmal in einer schleife alle möglichen integer übergeben, aber das hat auch nix gebracht.
Hoffentlich hat jemand von euch eine IDee...
Danke im Vorraus
-hever-