Hallo,
sitze gerade vor einem Fehler in meinem Java-Programm und finde die Fehlerursache nicht.
Hintergrund: Habe eine serielle Relaiskarte von Conrad und probiere sie anzusteuern.
Folgender Code:
Soweit mein Code-Auszug. Was ich erreichen will ist das 6. Relais auf Karte 1 anzuschalten. Funktioniert aber irgendwie nicht.
Könnte es ein Timing-Problem sein?
Für die, die die Relaiskarte nicht kennen (Das wird wol die Mehrheit sien), hier die Anleitung:
www.netzmafia.de/skripten/hardware/relais/967720-an.pdf
Hat jemand eine Idee?
Danke,
Sebastian
sitze gerade vor einem Fehler in meinem Java-Programm und finde die Fehlerursache nicht.
Hintergrund: Habe eine serielle Relaiskarte von Conrad und probiere sie anzusteuern.
Folgender Code:
Code:
System.setSecurityManager(null);
String driverName = "com.sun.comm.Win32Driver";
try{
javax.comm.CommDriver commDriver = (javax.comm.CommDriver)Class.forName( driverName).newInstance();
commDriver.initialize();
} catch (Exception e) {
e.printStackTrace();
}
cPort = "COM5";
try {
portId = CommPortIdentifier.getPortIdentifier(cPort);
sPort = (SerialPort) portId.open("ComPort", 2000);
sPort.setSerialPortParams(19200,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
sPort.enableReceiveTimeout(2000);
outs = sPort.getOutputStream();
byte[] Byte = new byte[4];
Byte[0] = 3; // Byte 0: Kommando
Byte[1] = 1; // Byte 1: Platinenadresse
Byte[2] = 64; // Byte 2: Relais
Byte[3] = Byte[0] ^ Byte[1] ^ Byte[2];
// Byte 3: CHecksumme (XOR) --> Byte[3] = Byte[0] ^ Byte[1] ^ Byte[2]
for (int i = 0; i < 4; i++){
outs.write(Byte);
Thread.sleep(100);
}
Thread.sleep(2000);
sPort.close();
} catch (Exception e) {
e.printStackTrace();
}
Soweit mein Code-Auszug. Was ich erreichen will ist das 6. Relais auf Karte 1 anzuschalten. Funktioniert aber irgendwie nicht.
Könnte es ein Timing-Problem sein?
Für die, die die Relaiskarte nicht kennen (Das wird wol die Mehrheit sien), hier die Anleitung:
www.netzmafia.de/skripten/hardware/relais/967720-an.pdf
Hat jemand eine Idee?
Danke,
Sebastian