diff --git a/lib/jna.jar b/lib/jna.jar new file mode 100644 index 0000000000000000000000000000000000000000..55ca1eb4e308338763b7170743a7f7d1179a2c47 Binary files /dev/null and b/lib/jna.jar differ diff --git a/lib/purejavacomm.jar b/lib/purejavacomm.jar new file mode 100644 index 0000000000000000000000000000000000000000..2fc07fd7087e30b949f8293ac8e05ef34f11d171 Binary files /dev/null and b/lib/purejavacomm.jar differ diff --git a/nbproject/project.properties b/nbproject/project.properties index 9904b55757cdf655835f68f29577d875999e47ed..5fa7ece3b14a6babd8f7e908b842ded8aafc0d5c 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -27,10 +27,14 @@ dist.javadoc.dir=${dist.dir}/javadoc endorsed.classpath= excludes= file.reference.commons-net-3.1.jar=lib/commons-net-3.1.jar +file.reference.jna.jar=lib/jna.jar +file.reference.purejavacomm.jar=lib/purejavacomm.jar includes=** jar.compress=false javac.classpath=\ - ${file.reference.commons-net-3.1.jar} + ${file.reference.commons-net-3.1.jar}:\ + ${file.reference.jna.jar}:\ + ${file.reference.purejavacomm.jar} # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false diff --git a/src/com/t_oster/liblasercut/drivers/Lasersaur.java b/src/com/t_oster/liblasercut/drivers/Lasersaur.java index d3ca1a2e757cf47ad98f8e45ed05ac987292ce4d..d71c36710e3de4d2ad7394e519535837eec0118f 100644 --- a/src/com/t_oster/liblasercut/drivers/Lasersaur.java +++ b/src/com/t_oster/liblasercut/drivers/Lasersaur.java @@ -29,6 +29,8 @@ import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.Locale; +import purejavacomm.CommPort; +import purejavacomm.CommPortIdentifier; /** * This class implements a driver for the LAOS Lasercutter board. Currently it @@ -386,9 +388,15 @@ public class Lasersaur extends LaserCutter { ByteArrayOutputStream buffer = null; pl.taskChanged(this, "checking job"); checkJob(job); - buffer = new ByteArrayOutputStream(); - out = new BufferedOutputStream(buffer); - pl.taskChanged(this, "buffering"); + pl.taskChanged(this, "connecting"); + CommPortIdentifier cpi = CommPortIdentifier.getPortIdentifier(this.getComPort()); + if (cpi == null) + { + throw new Exception("Error: Could not Open COM-Port '"+this.getComPort()+"'"); + } + CommPort port = cpi.open("VisiCut", 10000); + out = new BufferedOutputStream(port.getOutputStream()); + pl.taskChanged(this, "sending"); out.write(this.generateInitializationCode()); pl.progressChanged(this, 20); if (job.contains3dRaster()) { @@ -405,7 +413,7 @@ public class Lasersaur extends LaserCutter { pl.progressChanged(this, 80); out.write(this.generateShutdownCode()); out.close(); - System.out.write(buffer.toByteArray()); + port.close(); pl.taskChanged(this, "sent."); pl.progressChanged(this, 100); }