From 24488d2a914d38048a0fec5d90f39048a0bc3dbe Mon Sep 17 00:00:00 2001 From: hedgecrw85 Date: Mon, 9 Mar 2015 15:51:09 -0500 Subject: [PATCH] Lots of updates/fixes. Finished updating Windows. --- INSTALL | 108 +++++++++- README | 11 +- build.gradle | 1 + src/main/cpp/Linux/Makefile | 11 +- src/main/cpp/Linux/SerialPort_Linux.cpp | 2 +- src/main/cpp/OSX/Makefile | 11 +- src/main/cpp/OSX/SerialPort_OSX.cpp | 2 +- src/main/cpp/Windows/Makefile | 79 ++++--- src/main/cpp/Windows/SerialPort_Windows.cpp | 80 +++++++- .../com/fazecast/jSerialComm/SerialPort.java | 194 ++++++++++++++++-- .../jSerialComm/SerialPortDataListener.java | 13 ++ .../fazecast/jSerialComm/SerialPortEvent.java | 35 ++++ .../jSerialComm/SerialPortPacketListener.java | 6 + .../resources/Windows/x86/jSerialComm.dll | Bin 101888 -> 102400 bytes .../resources/Windows/x86/jSerialComm.exp | Bin 2784 -> 3286 bytes .../resources/Windows/x86/jSerialComm.lib | Bin 5304 -> 6144 bytes .../resources/Windows/x86_64/jSerialComm.dll | Bin 121856 -> 122368 bytes .../resources/Windows/x86_64/jSerialComm.exp | Bin 2707 -> 3191 bytes .../resources/Windows/x86_64/jSerialComm.lib | Bin 5164 -> 5972 bytes .../fazecast/jSerialComm/SerialPortTest.java | 18 ++ .../resources/Windows/x86/jSerialComm.dll | Bin 101888 -> 0 bytes .../resources/Windows/x86/jSerialComm.exp | Bin 2784 -> 0 bytes .../resources/Windows/x86/jSerialComm.lib | Bin 5304 -> 0 bytes .../resources/Windows/x86_64/jSerialComm.dll | Bin 121856 -> 0 bytes .../resources/Windows/x86_64/jSerialComm.exp | Bin 2707 -> 0 bytes .../resources/Windows/x86_64/jSerialComm.lib | Bin 5164 -> 0 bytes 26 files changed, 479 insertions(+), 92 deletions(-) create mode 100644 src/main/java/com/fazecast/jSerialComm/SerialPortDataListener.java create mode 100644 src/main/java/com/fazecast/jSerialComm/SerialPortEvent.java create mode 100644 src/main/java/com/fazecast/jSerialComm/SerialPortPacketListener.java delete mode 100644 src/test/resources/Windows/x86/jSerialComm.dll delete mode 100644 src/test/resources/Windows/x86/jSerialComm.exp delete mode 100644 src/test/resources/Windows/x86/jSerialComm.lib delete mode 100644 src/test/resources/Windows/x86_64/jSerialComm.dll delete mode 100644 src/test/resources/Windows/x86_64/jSerialComm.exp delete mode 100644 src/test/resources/Windows/x86_64/jSerialComm.lib diff --git a/INSTALL b/INSTALL index 8c0bc2e..c048054 100644 --- a/INSTALL +++ b/INSTALL @@ -1,31 +1,119 @@ -------------- - ALL SYSTEMS -------------- +---------- + BUILDING +---------- -Make sure proper JDK version installed for backward compatibility, targeting Java 1.6 (JDK 1.6) +Building this library yourself is not advised (at least not for distribution) since it requires native compilation across multiple platforms. It is recommended to simply use the pre-built jSerialComm library in your application. For installation/usage instructions, please skip ahead to the "USAGE" section. -On any OS, make sure JDK_HOME is set +If you do choose to build this library for your specific system, the recommended methodology is to use Gradle coupled with the Java SDK, version 1.6 (for backward compatibility). + +Java SDK 1.6 can be downloaded from http://www.oracle.com/technetwork/java/archive-139210.html +Gradle can be downloaded from https://gradle.org/ + +Once the Java SDK 1.6 has been installed, ensure that you have an environment variable called JDK_HOME set to the base directory of your JDK installation. Once this has been done, refer to the section corresponding to your specific Operating System for further instructions. + +Please note, if you would like to edit any of the source code or view it in an IDE (such as Eclipse), you can automatically build the Eclipse project files by entering the following on a command line or terminal from the base directory of this project (.../jSerialComm/): gradle eclipse +You can then Import the project using the "Existing Project into Workspace" import tool in Eclipse. (Note that if you use Eclipse as an IDE, you will probably want to install the CDT plugin (http:....) for proper handling of the C/C++ source code) ------------ LINUX/UNIX ------------ -g++ make glibc-devel.x86_64 glibc-devel.i686 libstdc++-devel.x86_64 libstdc++-devel.i686 +Ensure that the following tools are installed on your Linux distribution: g++ make glibc-devel.x86_64 glibc-devel.i686 libstdc++-devel.x86_64 libstdc++-devel.i686 -readlink -f /usr/bin/java : export everything up to /jre/... Ex: export JDK_HOME=/usr/lib/jvm/java-1.6.0-openjdk.x86_64 +Ensure that the JDK_HOME environment variable has been set for the 1.6 version of your Java SDK. The correct directory can usually be found by entering the following command: readlink -f /usr/bin/java +Export the result of this command UP TO BUT NOT INCLUDING the /jre/... portion using the 'export' command. For example, if 'readlink' produced "/usr/lib/jvm/java-6-jdk/jre/bin/java" as an output, the export command would look like: export JDK_HOME=/usr/lib/jvm/java-6-jdk +Change directories to the following project directory: ".../jSerialComm/src/main/cpp/Linux/" + +Run the following commands in order: + +make +cd ../../../.. +gradle build + +The resulting jSerialComm library can be found in the project directory ".../jSerialComm/build/libs/" under the name "jSerialComm-{VERSION}.jar" + + +---------- + MAC OS X +---------- + +Ensure that Xcode is installed on your system. If it is not, it can be downloaded via the App Store. + +Ensure that the JDK_HOME environment variable has been set for the 1.6 version of your Java SDK. The correct directory can usually be found by entering the following command: readlink -f /usr/bin/java +Export the result of this command UP TO BUT NOT INCLUDING the /jre/... portion using the 'export' command. For example, if 'readlink' produced "/usr/lib/jvm/java-6-jdk/jre/bin/java" as an output, the export command would look like: export JDK_HOME=/usr/lib/jvm/java-6-jdk + +Change directories to the following project directory: ".../jSerialComm/src/main/cpp/OSX/" + +Run the following commands in order: + +make +cd ../../../.. +gradle build + +The resulting jSerialComm library can be found in the project directory ".../jSerialComm/build/libs/" under the name "jSerialComm-{VERSION}.jar" --------- WINDOWS --------- -First, call C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/vcvarsall.bat" x64 or x86 before building +Ensure that the Visual Studio C++ Compiler is installed on your system. If it is not, you can download a free version (Visual C++ 2010 Express) from https://www.visualstudio.com/downloads/download-visual-studio-vs. +Open up a command prompt (Run->'cmd') and change to the following project directory: "...\jSerialComm\src\main\cpp\Windows\" +On Windows, the Visual Studio Compiler must be configured to build either 32- or 64-bit binaries but never both at the same time. Therefore, you will have to build binaries for the two architectures separately. +For the following commands, {VC_DIRECTORY} is the installation directory of your Visual Studio C++ Compiler (for example: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC). Run the following commands in order: -gradle eclipse +{VC_DIRECTORY}\vcvarsall.bat x64 +nmake win64 +{VC_DIRECTORY}\vcvarsall.bat x86 +nmake win32 +cd ..\..\..\.. gradle build -Located in build/lib \ No newline at end of file +The resulting jSerialComm library can be found in the project directory "...\jSerialComm\build\libs\" under the name "jSerialComm-{VERSION}.jar" + + +------- + USAGE +------- + +In order to use the jSerialComm library in your own project, you must simply include the jSerialComm JAR file in your build path and import it like any other java package using "import com.fazecast.jSerialComm.*;" + +Alternatively, you can automatically add jSerialComm to your project as a dependency from the Maven Central Repository. Use the following dependency declaration depending on your build system: + +Maven: + + + com.fazecast.jSerialComm + jSerialComm + 1.0.0 + + +Ivy: + + + +Grape: + +@Grapes( + @Grab(group='com.fazecast.jSerialComm', module='jSerialComm', version='1.0.0') +) + +Gradle: + +'com.fazecast.jSerialComm:jSerialComm:1.0.0' + +Buildr: + +'com.fazecast.jSerialComm:jSerialComm:jar:1.0.0' + +SBT: + +libraryDependencies += "com.fazecast.jSerialComm" % "jSerialComm" % "1.0.0" + +Leiningen: + +[com.fazecast.jSerialComm/jSerialComm "1.0.0"] diff --git a/README b/README index 08e3293..fcd7009 100644 --- a/README +++ b/README @@ -1,2 +1,9 @@ -# jSerialComm -Platform-independent serial port access for Java +------------------------------------------------------------ + jSerialComm + ------------ + A platform-independent serial port access library for Java +------------------------------------------------------------ + +For building and/or installation instructions, please refer to the INSTALL file + +For usage examples, please refer to the Usage Wiki at https://github.com/Fazecast/jSerialComm/wiki/Usage-Examples diff --git a/build.gradle b/build.gradle index 75bddf5..2adf252 100644 --- a/build.gradle +++ b/build.gradle @@ -9,6 +9,7 @@ version = '1.0.0' sourceCompatibility = 1.6 targetCompatibility = 1.6 +javadoc.options.links("http://docs.oracle.com/javase/7/docs/api/") //compileJava.options.bootClasspath = "C:/Program Files/Java/jre6/lib/rt.jar" jar { diff --git a/src/main/cpp/Linux/Makefile b/src/main/cpp/Linux/Makefile index e8f40ba..f3790aa 100644 --- a/src/main/cpp/Linux/Makefile +++ b/src/main/cpp/Linux/Makefile @@ -17,8 +17,7 @@ JFLAGS := -source 1.6 -target 1.6 -Xlint:-options LIBRARY_NAME := libjSerialComm.so SOURCES := SerialPort_Linux.cpp JAVA_SOURCE_DIR = ../../../../src/main/java/com/fazecast/jSerialComm -RESOURCE_DIR1 = ../../../../src/main/resources/Linux -RESOURCE_DIR2 = ../../../../src/test/resources/Linux +RESOURCE_DIR = ../../../../src/main/resources/Linux BUILD_DIR = ../../../../bin/Linux JAVA_CLASS_DIR = $(BUILD_DIR)/../com/fazecast/jSerialComm OBJECTSx86 = $(BUILD_DIR)/x86/$(SOURCES:.cpp=.o) @@ -40,15 +39,13 @@ all : linux32 linux64 linux32 : ARCH = -m32 linux32 : checkdirs $(BUILD_DIR)/x86/$(LIBRARY_NAME) $(DELETE) -rf $(BUILD_DIR)/x86/*.o - $(COPY) $(BUILD_DIR)/x86/*.* $(RESOURCE_DIR1)/x86 - $(MOVE) $(BUILD_DIR)/x86/*.* $(RESOURCE_DIR2)/x86 + $(COPY) $(BUILD_DIR)/x86/*.* $(RESOURCE_DIR)/x86 # Builds 64-bit Linux libraries linux64 : ARCH = -m64 linux64 : checkdirs $(BUILD_DIR)/x86_64/$(LIBRARY_NAME) $(DELETE) -rf $(BUILD_DIR)/x86_64/*.o - $(COPY) $(BUILD_DIR)/x86_64/*.* $(RESOURCE_DIR1)/x86_64 - $(MOVE) $(BUILD_DIR)/x86_64/*.* $(RESOURCE_DIR2)/x86_64 + $(COPY) $(BUILD_DIR)/x86_64/*.* $(RESOURCE_DIR)/x86_64 # Rule to create build directories checkdirs : $(BUILD_DIR)/x86 $(BUILD_DIR)/x86_64 $(JAVA_CLASS_DIR) @@ -79,4 +76,4 @@ $(JNI_HEADER) : $(JAVA_CLASS) # Suffix rule to get from *.java -> *.class $(JAVA_CLASS) : - $(JAVAC) $(JFLAGS) -d $(JAVA_CLASS_DIR)/../../.. $(JAVA_SOURCE_DIR)/$(basename $(notdir $@)).java + $(JAVAC) $(JFLAGS) -d $(JAVA_CLASS_DIR)/../../.. -cp $(JAVA_SOURCE_DIR)/../../.. $(JAVA_SOURCE_DIR)/$(basename $(notdir $@)).java diff --git a/src/main/cpp/Linux/SerialPort_Linux.cpp b/src/main/cpp/Linux/SerialPort_Linux.cpp index fd69126..9c29be3 100644 --- a/src/main/cpp/Linux/SerialPort_Linux.cpp +++ b/src/main/cpp/Linux/SerialPort_Linux.cpp @@ -99,7 +99,7 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNati // Configure the port parameters and timeouts if (Java_com_fazecast_jSerialComm_SerialPort_configPort(env, obj) && Java_com_fazecast_jSerialComm_SerialPort_configFlowControl(env, obj) && - Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj)) + Java_com_fazecast_jSerialComm_SerialPort_configEventFlags(env, obj)) env->SetBooleanField(obj, env->GetFieldID(env->GetObjectClass(obj), "isOpened", "Z"), JNI_TRUE); else { diff --git a/src/main/cpp/OSX/Makefile b/src/main/cpp/OSX/Makefile index 128bd38..ee44b6e 100644 --- a/src/main/cpp/OSX/Makefile +++ b/src/main/cpp/OSX/Makefile @@ -17,8 +17,7 @@ JFLAGS := -source 1.6 -target 1.6 -Xlint:-options LIBRARY_NAME := libjSerialComm.jnilib SOURCES := SerialPort_OSX.cpp JAVA_SOURCE_DIR = ../../../../src/main/java/com/fazecast/jSerialComm -RESOURCE_DIR1 = ../../../../src/main/resources/OSX -RESOURCE_DIR2 = ../../../../src/test/resources/OSX +RESOURCE_DIR = ../../../../src/main/resources/OSX BUILD_DIR = ../../../../bin/OSX JAVA_CLASS_DIR = $(BUILD_DIR)/../com/fazecast/jSerialComm OBJECTSx86 = $(BUILD_DIR)/x86/$(SOURCES:.cpp=.o) @@ -40,15 +39,13 @@ all : osx32 osx64 osx32 : ARCH = -m32 osx32 : checkdirs $(BUILD_DIR)/x86/$(LIBRARY_NAME) $(DELETE) -rf $(BUILD_DIR)/x86/*.o - $(COPY) $(BUILD_DIR)/x86/*.* $(RESOURCE_DIR1)/x86 - $(MOVE) $(BUILD_DIR)/x86/*.* $(RESOURCE_DIR2)/x86 + $(COPY) $(BUILD_DIR)/x86/*.* $(RESOURCE_DIR)/x86 # Builds 64-bit OSX libraries osx64 : ARCH = -m64 osx64 : checkdirs $(BUILD_DIR)/x86_64/$(LIBRARY_NAME) $(DELETE) -rf $(BUILD_DIR)/x86_64/*.o - $(COPY) $(BUILD_DIR)/x86_64/*.* $(RESOURCE_DIR1)/x86_64 - $(MOVE) $(BUILD_DIR)/x86_64/*.* $(RESOURCE_DIR2)/x86_64 + $(COPY) $(BUILD_DIR)/x86_64/*.* $(RESOURCE_DIR)/x86_64 # Rule to create build directories checkdirs : $(BUILD_DIR)/x86 $(BUILD_DIR)/x86_64 $(JAVA_CLASS_DIR) @@ -79,4 +76,4 @@ $(JNI_HEADER) : $(JAVA_CLASS) # Suffix rule to get from *.java -> *.class $(JAVA_CLASS) : - $(JAVAC) $(JFLAGS) -d $(JAVA_CLASS_DIR)/../../.. $(JAVA_SOURCE_DIR)/$(basename $(notdir $@)).java + $(JAVAC) $(JFLAGS) -d $(JAVA_CLASS_DIR)/../../.. -cp $(JAVA_SOURCE_DIR)/../../.. $(JAVA_SOURCE_DIR)/$(basename $(notdir $@)).java diff --git a/src/main/cpp/OSX/SerialPort_OSX.cpp b/src/main/cpp/OSX/SerialPort_OSX.cpp index 31e03ad..4e3cabf 100644 --- a/src/main/cpp/OSX/SerialPort_OSX.cpp +++ b/src/main/cpp/OSX/SerialPort_OSX.cpp @@ -95,7 +95,7 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNati // Configure the port parameters and timeouts if (Java_com_fazecast_jSerialComm_SerialPort_configPort(env, obj) && Java_com_fazecast_jSerialComm_SerialPort_configFlowControl(env, obj) && - Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj)) + Java_com_fazecast_jSerialComm_SerialPort_configEventFlags(env, obj)) env->SetBooleanField(obj, env->GetFieldID(env->GetObjectClass(obj), "isOpened", "Z"), JNI_TRUE); else { diff --git a/src/main/cpp/Windows/Makefile b/src/main/cpp/Windows/Makefile index ce5c177..6837b8d 100644 --- a/src/main/cpp/Windows/Makefile +++ b/src/main/cpp/Windows/Makefile @@ -6,85 +6,82 @@ LDFLAGS = /DLL /LTCG /NOASSEMBLY /NOLOGO INCLUDES = /I"$(JDK_HOME)/include" /I"$(JDK_HOME)/include/win32" LIBRARIES = Advapi32.lib DELETE = @del /q /f -RMDIR = @rmdir /q /s -MKDIR = @mkdir +RMDIR = @rd /q /s +MKDIR = @md COPY = @copy /y MOVE = @move /y PRINT = @echo FULL_CLASS = com.fazecast.jSerialComm.SerialPort -JAVAC = "$(JDK_HOME)/bin/javac" -JAVAH = "$(JDK_HOME)/bin/javah" -jni +JAVAC = "$(JDK_HOME)\bin\javac" +JAVAH = "$(JDK_HOME)\bin\javah" -jni JFLAGS = -source 1.6 -target 1.6 -Xlint:-options LIBRARY_NAME = jSerialComm.dll SOURCES = SerialPort_Windows.cpp -JAVA_SOURCE_DIR = ../../../../src/main/java/com/fazecast/jSerialComm -RESOURCE_DIR1 = ../../../../src/main/resources/Windows -RESOURCE_DIR2 = ../../../../src/test/resources/Windows -BUILD_DIR = ../../../../bin/Windows -JAVA_CLASS_DIR = $(BUILD_DIR)/../com/fazecast/jSerialComm -OBJECTSx86 = $(BUILD_DIR)/x86/$(SOURCES:.cpp=.o) -OBJECTSx86_64 = $(BUILD_DIR)/x86_64/$(SOURCES:.cpp=.o) -JNI_HEADER = ../com_fazecast_jSerialComm_SerialPort.h -JAVA_CLASS = $(JAVA_CLASS_DIR)/SerialPort.class +JAVA_SOURCE_DIR = ..\..\..\..\src\main\java\com\fazecast\jSerialComm +RESOURCE_DIR = ..\..\..\..\src\main\resources\Windows +BUILD_DIR = ..\..\..\..\bin\Windows +JAVA_CLASS_DIR = $(BUILD_DIR)\..\com\fazecast\jSerialComm +OBJECTSx86 = $(BUILD_DIR)\x86\$(SOURCES:.cpp=.obj) +OBJECTSx86_64 = $(BUILD_DIR)\x86_64\$(SOURCES:.cpp=.obj) +JNI_HEADER = ..\com_fazecast_jSerialComm_SerialPort.h +JAVA_CLASS = $(JAVA_CLASS_DIR)\SerialPort.class # Define phony and suffix rules .PHONY: all win32 win64 checkdirs clean .SUFFIXES: -.SUFFIXES: .cpp .o .class .java .h +.SUFFIXES: .cpp .obj .class .java .h # Default build target not possible due to different architecture compilers all : $(PRINT). $(PRINT) Must specify a target (either win32 or win64), but not both at the same time since different versions of the Microsoft Compiler are required for difference architectures. $(PRINT). - $(PRINT) NOTE: Before attempting to use this Makefile, make sure that you have called 'vcvarsall.bat' for your intended architecture. This file can normally be found in "C:/Program Files (x86)/Microsoft Visual Studio [version]/VC/". + $(PRINT) NOTE: Before attempting to use this Makefile, make sure that you have called 'vcvarsall.bat' for your intended architecture. This file can normally be found in "C:\Program Files (x86)\Microsoft Visual Studio [version]\VC\". $(PRINT). $(PRINT) Example: To build 64-bit Windows libraries, you would call: - $(PRINT) C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/vcvarsall.bat x64 - $(PRINT) mingw32-make + $(PRINT) C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat x64 + $(PRINT) nmake $(PRINT). # Builds 32-bit Windows libraries -win32 : checkdirs $(BUILD_DIR)/x86/$(LIBRARY_NAME) - $(DELETE) "$(BUILD_DIR)"\\x86\\*.o - $(COPY) "$(BUILD_DIR)"\\x86\\*.* "$(RESOURCE_DIR1)"\\x86 - $(MOVE) "$(BUILD_DIR)"\\x86\\*.* "$(RESOURCE_DIR2)"\\x86 - $(DELETE) ".."\\*.h - $(RMDIR) "$(BUILD_DIR)/.." +win32 : checkdirs $(BUILD_DIR)\x86\$(LIBRARY_NAME) + $(DELETE) $(BUILD_DIR)\x86\*.obj + $(COPY) $(BUILD_DIR)\x86\*.* $(RESOURCE_DIR)\x86 + $(DELETE) ..\*.h + $(RMDIR) $(BUILD_DIR)\.. # Builds 64-bit Windows libraries -win64 : checkdirs $(BUILD_DIR)/x86_64/$(LIBRARY_NAME) - $(DELETE) "$(BUILD_DIR)"\\x86_64\\*.o - $(COPY) "$(BUILD_DIR)"\\x86_64\\*.* "$(RESOURCE_DIR1)"\\x86_64 - $(MOVE) "$(BUILD_DIR)"\\x86_64\\*.* "$(RESOURCE_DIR2)"\\x86_64 - $(DELETE) ".."\\*.h - $(RMDIR) "$(BUILD_DIR)/.." +win64 : checkdirs $(BUILD_DIR)\x86_64\$(LIBRARY_NAME) + $(DELETE) $(BUILD_DIR)\x86_64\*.obj + $(COPY) $(BUILD_DIR)\x86_64\*.* $(RESOURCE_DIR)\x86_64 + $(DELETE) ..\*.h + $(RMDIR) $(BUILD_DIR)\.. # Rule to create build directories -checkdirs : $(BUILD_DIR)/x86 $(BUILD_DIR)/x86_64 -$(BUILD_DIR)/x86 : +checkdirs : $(BUILD_DIR)\x86 $(BUILD_DIR)\x86_64 +$(BUILD_DIR)\x86 : $(MKDIR) "$@" -$(BUILD_DIR)/x86_64 : +$(BUILD_DIR)\x86_64 : $(MKDIR) "$@" # Rule to build 32-bit library -$(BUILD_DIR)/x86/$(LIBRARY_NAME) : $(JNI_HEADER) $(OBJECTSx86) +$(BUILD_DIR)\x86\$(LIBRARY_NAME) : $(JNI_HEADER) $(OBJECTSx86) $(LINK) $(LDFLAGS) /MACHINE:X86 /OUT:$@ $(OBJECTSx86) $(LIBRARIES) # Rule to build 64-bit library -$(BUILD_DIR)/x86_64/$(LIBRARY_NAME) : $(JNI_HEADER) $(OBJECTSx86_64) +$(BUILD_DIR)\x86_64\$(LIBRARY_NAME) : $(JNI_HEADER) $(OBJECTSx86_64) $(LINK) $(LDFLAGS) /MACHINE:X64 /OUT:$@ $(OBJECTSx86_64) $(LIBRARIES) -# Suffix rules to get from *.cpp -> *.o -$(BUILD_DIR)/x86/%.o : %.cpp - $(COMPILE) $(CFLAGS) $(INCLUDES) $< -Fo$@ -$(BUILD_DIR)/x86_64/%.o : %.cpp - $(COMPILE) $(CFLAGS) $(INCLUDES) $< -Fo$@ +# Suffix rules to get from *.cpp -> *.obj +$(OBJECTSx86_64) : $(*B).cpp + $(COMPILE) $(CFLAGS) $(INCLUDES) $? -Fo$@ +$(OBJECTSx86) : $(*B).cpp + $(COMPILE) $(CFLAGS) $(INCLUDES) $? -Fo$@ # Rule to build JNI header file $(JNI_HEADER) : $(JAVA_CLASS) - $(JAVAH) -d .. -classpath $(JAVA_CLASS_DIR)/../../.. $(FULL_CLASS) + $(JAVAH) -d .. -classpath $(JAVA_CLASS_DIR)\..\..\.. $(FULL_CLASS) # Suffix rule to get from *.java -> *.class $(JAVA_CLASS) : - $(JAVAC) $(JFLAGS) -d $(JAVA_CLASS_DIR)/../../.. $(JAVA_SOURCE_DIR)/$(basename $(notdir $@)).java + $(JAVAC) $(JFLAGS) -d $(JAVA_CLASS_DIR)\..\..\.. -cp $(JAVA_SOURCE_DIR)\..\..\.. $(JAVA_SOURCE_DIR)\$(*B).java diff --git a/src/main/cpp/Windows/SerialPort_Windows.cpp b/src/main/cpp/Windows/SerialPort_Windows.cpp index 09c1d2a..977fc13 100644 --- a/src/main/cpp/Windows/SerialPort_Windows.cpp +++ b/src/main/cpp/Windows/SerialPort_Windows.cpp @@ -202,7 +202,7 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNati // Configure the port parameters and timeouts if (Java_com_fazecast_jSerialComm_SerialPort_configPort(env, obj) && Java_com_fazecast_jSerialComm_SerialPort_configFlowControl(env, obj) && - Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj)) + Java_com_fazecast_jSerialComm_SerialPort_configEventFlags(env, obj)) env->SetBooleanField(obj, env->GetFieldID(env->GetObjectClass(obj), "isOpened", "Z"), JNI_TRUE); else { @@ -312,7 +312,7 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou timeouts.ReadIntervalTimeout = MAXDWORD; timeouts.ReadTotalTimeoutMultiplier = MAXDWORD; timeouts.ReadTotalTimeoutConstant = readTimeout; - timeouts.WriteTotalTimeoutConstant = 10; + timeouts.WriteTotalTimeoutConstant = writeTimeout; break; case (com_fazecast_jSerialComm_SerialPort_TIMEOUT_READ_SEMI_BLOCKING | com_fazecast_jSerialComm_SerialPort_TIMEOUT_WRITE_SEMI_BLOCKING): // Read/Write Semi-blocking timeouts.ReadIntervalTimeout = MAXDWORD; @@ -330,7 +330,7 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou timeouts.ReadIntervalTimeout = 0; timeouts.ReadTotalTimeoutMultiplier = 0; timeouts.ReadTotalTimeoutConstant = readTimeout; - timeouts.WriteTotalTimeoutConstant = 10; + timeouts.WriteTotalTimeoutConstant = writeTimeout; break; case (com_fazecast_jSerialComm_SerialPort_TIMEOUT_READ_BLOCKING | com_fazecast_jSerialComm_SerialPort_TIMEOUT_WRITE_SEMI_BLOCKING): // Read Blocking/Write Semi-blocking timeouts.ReadIntervalTimeout = 0; @@ -349,7 +349,7 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou timeouts.ReadIntervalTimeout = MAXDWORD; timeouts.ReadTotalTimeoutMultiplier = 0; timeouts.ReadTotalTimeoutConstant = 0; - timeouts.WriteTotalTimeoutConstant = 10; + timeouts.WriteTotalTimeoutConstant = 0; break; } @@ -357,6 +357,78 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou return SetCommTimeouts(serialHandle, &timeouts); } +JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configEventFlags(JNIEnv *env, jobject obj) +{ + jclass serialCommClass = env->GetObjectClass(obj); + HANDLE serialPortHandle = (HANDLE)env->GetLongField(obj, env->GetFieldID(serialCommClass, "portHandle", "J")); + + // Get event flags from Java class + int eventsToMonitor = env->GetIntField(obj, env->GetFieldID(serialCommClass, "eventFlags", "I")); + int eventFlags = 0; + if (((eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_AVAILABLE) > 0) || + ((eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_RECEIVED) > 0)) + eventFlags |= EV_RXCHAR; + if ((eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_WRITTEN) > 0) + eventFlags |= EV_TXEMPTY; + + // Change read timeouts if we are monitoring data received + if ((eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_RECEIVED) > 0) + { + COMMTIMEOUTS timeouts = {0}; + timeouts.ReadIntervalTimeout = MAXDWORD; + timeouts.ReadTotalTimeoutMultiplier = MAXDWORD; + timeouts.ReadTotalTimeoutConstant = 1000; + timeouts.WriteTotalTimeoutMultiplier = 0; + timeouts.WriteTotalTimeoutConstant = 0; + SetCommTimeouts(serialPortHandle, &timeouts); + } + else + Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj); + + // Apply changes + return SetCommMask(serialPortHandle, eventFlags); +} + +JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_waitForEvent(JNIEnv *env, jobject obj) +{ + jclass serialCommClass = env->GetObjectClass(obj); + HANDLE serialPortHandle = (HANDLE)env->GetLongField(obj, env->GetFieldID(serialCommClass, "portHandle", "J")); + OVERLAPPED overlappedStruct = {0}; + overlappedStruct.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + if (overlappedStruct.hEvent == NULL) + { + CloseHandle(overlappedStruct.hEvent); + return -1; + } + + // Wait for a serial port event + DWORD eventMask, numBytesRead; + if (WaitCommEvent(serialPortHandle, &eventMask, &overlappedStruct) == FALSE) + { + if (GetLastError() != ERROR_IO_PENDING) // Problem occurred + { + // Problem reading, close port + CloseHandle(serialPortHandle); + serialPortHandle = INVALID_HANDLE_VALUE; + env->SetLongField(obj, env->GetFieldID(env->GetObjectClass(obj), "portHandle", "J"), (jlong)INVALID_HANDLE_VALUE); + env->SetBooleanField(obj, env->GetFieldID(env->GetObjectClass(obj), "isOpened", "Z"), JNI_FALSE); + } + else if (GetOverlappedResult(serialPortHandle, &overlappedStruct, &numBytesRead, TRUE) == FALSE) + { + // Problem reading, close port + CloseHandle(serialPortHandle); + serialPortHandle = INVALID_HANDLE_VALUE; + env->SetLongField(obj, env->GetFieldID(env->GetObjectClass(obj), "portHandle", "J"), (jlong)INVALID_HANDLE_VALUE); + env->SetBooleanField(obj, env->GetFieldID(env->GetObjectClass(obj), "isOpened", "Z"), JNI_FALSE); + } + } + + // Return type of event if successful + CloseHandle(overlappedStruct.hEvent); + return ((eventMask & EV_RXCHAR) > 0) ? com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_AVAILABLE : + (((eventMask & EV_TXEMPTY) > 0) ? com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_WRITTEN : 0); +} + JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_closePortNative(JNIEnv *env, jobject obj) { // Purge any outstanding port operations diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPort.java b/src/main/java/com/fazecast/jSerialComm/SerialPort.java index 81ae3b0..03b8dce 100644 --- a/src/main/java/com/fazecast/jSerialComm/SerialPort.java +++ b/src/main/java/com/fazecast/jSerialComm/SerialPort.java @@ -39,7 +39,7 @@ import java.io.OutputStream; * @see java.io.InputStream * @see java.io.OutputStream */ -public class SerialPort +public final class SerialPort { // Static initializer loads correct native library for this machine static @@ -145,11 +145,18 @@ public class SerialPort static final public int TIMEOUT_READ_BLOCKING = 0x00000100; static final public int TIMEOUT_WRITE_BLOCKING = 0x00001000; + // Serial Port Listening Events + static final public int LISTENING_EVENT_DATA_AVAILABLE = 0x00000001; + static final public int LISTENING_EVENT_DATA_RECEIVED = 0x00000010; + static final public int LISTENING_EVENT_DATA_WRITTEN = 0x00000100; + // Serial Port Parameters - private volatile int baudRate = 9600, dataBits = 8, stopBits = ONE_STOP_BIT, parity = NO_PARITY; + private volatile int baudRate = 9600, dataBits = 8, stopBits = ONE_STOP_BIT, parity = NO_PARITY, eventFlags = 0; private volatile int timeoutMode = TIMEOUT_NONBLOCKING, readTimeout = 0, writeTimeout = 0, flowControl = 0; private volatile SerialPortInputStream inputStream = null; private volatile SerialPortOutputStream outputStream = null; + private volatile SerialPortDataListener userDataListener = null; + private volatile SerialPortEventListener serialEventListener = null; private volatile String portString, comPort; private volatile long portHandle = -1l; private volatile boolean isOpened = false; @@ -168,6 +175,8 @@ public class SerialPort { inputStream = new SerialPortInputStream(); outputStream = new SerialPortOutputStream(); + if (serialEventListener != null) + serialEventListener.startListening(); } return isOpened; } @@ -181,6 +190,8 @@ public class SerialPort { if (isOpened && closePortNative()) { + if (serialEventListener != null) + serialEventListener.stopListening(); inputStream = null; outputStream = null; } @@ -188,11 +199,13 @@ public class SerialPort } // Serial Port Setup Methods - private final native boolean openPortNative(); - private final native boolean closePortNative(); - private final native boolean configPort(); // Changes/sets serial port parameters as defined by this class - private final native boolean configFlowControl(); // Changes/sets flow control parameters as defined by this class - private final native boolean configTimeouts(); // Changes/sets serial port timeouts as defined by this class + private final native boolean openPortNative(); // Opens serial port + private final native boolean closePortNative(); // Closes serial port + private final native boolean configPort(); // Changes/sets serial port parameters as defined by this class + private final native boolean configFlowControl(); // Changes/sets flow control parameters as defined by this class + private final native boolean configTimeouts(); // Changes/sets serial port timeouts as defined by this class + private final native boolean configEventFlags(); // Changes/sets which serial events to listen for as defined by this class + private final native int waitForEvent(); // Waits for serial event to occur as specified in eventFlags /** * Returns the number of bytes available without blocking if {@link #readBytes} were to be called immediately @@ -235,6 +248,64 @@ public class SerialPort // Default Constructor public SerialPort() {} + /** + * Adds a {@link SerialPortDataListener} to the serial port interface. + *

+ * Calling this function enables event-based serial port callbacks to be used instead of, or in addition to, direct serial port read/write calls or the {@link java.io.InputStream}/{@link java.io.OutputStream} interface. + *

+ * The parameter passed into this method must be an implementation of either the {@link SerialPortDataListener} or the {@link SerialPortPacketListener}. + * The {@link SerialPortPacketListener} interface must be used if you plan to use event-based reading of full data packets over the serial port. + * Otherwise, the simpler {@link SerialPortDataListener} may be used. + *

+ * Only one listener can be registered at a time; however, that listener can be used to detect multiple types of serial port events. + * Refer to {@link SerialPortDataListener} and {@link SerialPortPacketListener} for more information. + * + * @param listener A {@link SerialPortDataListener} or {@link SerialPortPacketListener}implementation to be used for event-based serial port communications. + * @return Whether the listener was successfully registered with the serial port. + * @see SerialPortDataListener + * @see SerialPortPacketListener + */ + public final boolean addDataListener(SerialPortDataListener listener) + { + if (userDataListener != null) + return false; + userDataListener = listener; + serialEventListener = new SerialPortEventListener((userDataListener instanceof SerialPortPacketListener) ? + ((SerialPortPacketListener)userDataListener).getPacketSize() : 0); + + eventFlags = 0; + if ((listener.getListeningEvents() & LISTENING_EVENT_DATA_AVAILABLE) > 0) + eventFlags |= LISTENING_EVENT_DATA_AVAILABLE; + if ((listener.getListeningEvents() & LISTENING_EVENT_DATA_RECEIVED) > 0) + eventFlags |= LISTENING_EVENT_DATA_RECEIVED; + if ((listener.getListeningEvents() & LISTENING_EVENT_DATA_WRITTEN) > 0) + eventFlags |= LISTENING_EVENT_DATA_WRITTEN; + + if (isOpened) + { + configEventFlags(); + serialEventListener.startListening(); + } + return true; + } + + /** + * Removes the associated {@link SerialPortDataListener} from the serial port interface. + */ + public final void removeDataListener() + { + if (serialEventListener != null) + { + serialEventListener.stopListening(); + serialEventListener = null; + } + userDataListener = null; + + eventFlags = 0; + if (isOpened) + configEventFlags(); + } + /** * Returns an {@link java.io.InputStream} object associated with this serial port. *

@@ -288,13 +359,14 @@ public class SerialPort */ public final void setComPortParameters(int newBaudRate, int newDataBits, int newStopBits, int newParity) { + baudRate = newBaudRate; + dataBits = newDataBits; + stopBits = newStopBits; + parity = newParity; + if (isOpened) { try { Thread.sleep(200); } catch (Exception e) {} - baudRate = newBaudRate; - dataBits = newDataBits; - stopBits = newStopBits; - parity = newParity; configPort(); } } @@ -335,12 +407,13 @@ public class SerialPort */ public final void setComPortTimeouts(int newTimeoutMode, int newReadTimeout, int newWriteTimeout) { + timeoutMode = newTimeoutMode; + readTimeout = newReadTimeout; + writeTimeout = newWriteTimeout; + if (isOpened) { try { Thread.sleep(200); } catch (Exception e) {} - timeoutMode = newTimeoutMode; - readTimeout = newReadTimeout; - writeTimeout = newWriteTimeout; configTimeouts(); } } @@ -354,10 +427,11 @@ public class SerialPort */ public final void setBaudRate(int newBaudRate) { + baudRate = newBaudRate; + if (isOpened) { try { Thread.sleep(200); } catch (Exception e) {} - baudRate = newBaudRate; configPort(); } } @@ -371,10 +445,11 @@ public class SerialPort */ public final void setNumDataBits(int newDataBits) { + dataBits = newDataBits; + if (isOpened) { try { Thread.sleep(200); } catch (Exception e) {} - dataBits = newDataBits; configPort(); } } @@ -394,10 +469,11 @@ public class SerialPort */ public final void setNumStopBits(int newStopBits) { + stopBits = newStopBits; + if (isOpened) { try { Thread.sleep(200); } catch (Exception e) {} - stopBits = newStopBits; configPort(); } } @@ -432,10 +508,11 @@ public class SerialPort */ public final void setFlowControl(int newFlowControlSettings) { + flowControl = newFlowControlSettings; + if (isOpened) { try { Thread.sleep(200); } catch (Exception e) {} - flowControl = newFlowControlSettings; configFlowControl(); } } @@ -455,10 +532,11 @@ public class SerialPort */ public final void setParity(int newParity) { + parity = newParity; + if (isOpened) { try { Thread.sleep(200); } catch (Exception e) {} - parity = newParity; configPort(); } } @@ -572,6 +650,84 @@ public class SerialPort */ public final int getFlowControlSettings() { return flowControl; } + // Private EventListener class + private final class SerialPortEventListener + { + private volatile boolean isListening = false; + private final byte[] dataPacket; + private volatile int dataPacketIndex = 0; + + public SerialPortEventListener(int packetSizeToReceive) { dataPacket = new byte[packetSizeToReceive]; } + + public final void startListening() + { + if (isListening) + return; + isListening = true; + + new Thread(new Runnable() { + @Override + public void run() + { + while (isListening && isOpened) + waitForSerialEvent(); + isListening = false; + } + }).start(); + } + + public final void stopListening() + { + if (!isListening) + return; + isListening = false; + } + + public final void waitForSerialEvent() + { + switch (waitForEvent()) + { + case LISTENING_EVENT_DATA_AVAILABLE: + { + if ((eventFlags & LISTENING_EVENT_DATA_RECEIVED) > 0) + { + // Read data from serial port + int numBytesAvailable, bytesRemaining, newBytesIndex; + while ((numBytesAvailable = bytesAvailable()) > 0) + { + byte[] newBytes = new byte[numBytesAvailable]; + newBytesIndex = 0; + bytesRemaining = readBytes(newBytes, newBytes.length); + while (bytesRemaining >= (dataPacket.length - dataPacketIndex)) + { + System.arraycopy(newBytes, newBytesIndex, dataPacket, dataPacketIndex, dataPacket.length - dataPacketIndex); + bytesRemaining -= (dataPacket.length - dataPacketIndex); + newBytesIndex += (dataPacket.length - dataPacketIndex); + dataPacketIndex = 0; + userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_RECEIVED, dataPacket.clone())); + } + if (bytesRemaining > 0) + { + System.arraycopy(newBytes, newBytesIndex, dataPacket, dataPacketIndex, bytesRemaining); + dataPacketIndex += bytesRemaining; + } + } + } + else if ((eventFlags & LISTENING_EVENT_DATA_AVAILABLE) > 0) + userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_AVAILABLE)); + break; + } + case LISTENING_EVENT_DATA_WRITTEN: + { + userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_WRITTEN)); + break; + } + default: + break; + } + } + } + // InputStream interface class private final class SerialPortInputStream extends InputStream { diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPortDataListener.java b/src/main/java/com/fazecast/jSerialComm/SerialPortDataListener.java new file mode 100644 index 0000000..9886a06 --- /dev/null +++ b/src/main/java/com/fazecast/jSerialComm/SerialPortDataListener.java @@ -0,0 +1,13 @@ +package com.fazecast.jSerialComm; + +import java.util.EventListener; + +public interface SerialPortDataListener extends EventListener +{ + // TODO: Documentation - can OR together desired listening events + // Reading vs data available precedence + public abstract int getListeningEvents(); + + // TODO: Documentation + public abstract void serialEvent(SerialPortEvent event); +} diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPortEvent.java b/src/main/java/com/fazecast/jSerialComm/SerialPortEvent.java new file mode 100644 index 0000000..f0af676 --- /dev/null +++ b/src/main/java/com/fazecast/jSerialComm/SerialPortEvent.java @@ -0,0 +1,35 @@ +package com.fazecast.jSerialComm; + +import java.util.EventObject; + +public final class SerialPortEvent extends EventObject +{ + private static final long serialVersionUID = 3060830619653354150L; + private final int eventType; + private final byte[] serialData; + + public SerialPortEvent(Object source, int serialEventType) + { + super(source); + eventType = serialEventType; + serialData = null; + } + + public SerialPortEvent(Object source, int serialEventType, byte[] data) + { + super(source); + eventType = serialEventType; + serialData = data; + } + + public final int getEventType() { return eventType; } + public final byte[] getReceivedData() { return serialData; } + + //TODO: Implementations: DataAvailableListener(void), return how much data is available + + //TODO: Implementations: DataReceivedListener(Set amount of data to read before notifying) + //Should not mix DataReceivedListener with direct reads (read(), readBytes(), etc) or with InputStream usage + //Note: Using DataReceivedListener will negate any COM port read timeout settings since they make no sense in this context + + //TODO: Implementations: DataWrittenListener(Return with number of bytes written) +} diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPortPacketListener.java b/src/main/java/com/fazecast/jSerialComm/SerialPortPacketListener.java new file mode 100644 index 0000000..66e275a --- /dev/null +++ b/src/main/java/com/fazecast/jSerialComm/SerialPortPacketListener.java @@ -0,0 +1,6 @@ +package com.fazecast.jSerialComm; + +public interface SerialPortPacketListener extends SerialPortDataListener +{ + public abstract int getPacketSize(); +} diff --git a/src/main/resources/Windows/x86/jSerialComm.dll b/src/main/resources/Windows/x86/jSerialComm.dll index 6168b7663fb627e1e0e9ae72baaff1371957abf1..df99ee8c7d5a1d4ead2080f4a9e53d981f369e37 100644 GIT binary patch delta 10650 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 blP}?`d9H-uzejT16`@&ZIWWsX7Ha+*-!8f1 delta 10031 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 aa*;IAC?@!yHT=@CudISB)8OtJ`@aA|e9!;@ diff --git a/src/main/resources/Windows/x86/jSerialComm.exp b/src/main/resources/Windows/x86/jSerialComm.exp index 7bb3f17d368dfd54c02fbfb9191cabf86b42b128..de486ddbf64d13425504a9f564a5adf257417bb4 100644 GIT binary patch literal 3286 zcmeHJO-~b16usrEfTAFNe1k{+#5Fj0TVaw4Bq>OVmq^$!MO9KbLPyMx%a(!@7>eMM%p0t_1DT; zH^6z2EuwIpIn2Evyx0z)VLAE2V~5+*Rc4s1VDfY-M5ty8n^Te;bBt=pSW#X#igQ(7cIHi1w8M2QgXc|A z%ZRdL3G)EaH0}e0tr#UPww!R|EpmrehPn(FC@Q>szzMcE(`RUH)5&;8Jo|J3@k!m$c6%VH*GZAUDQJ6(MEm;MzPqJHx zXC!kFk4Tn9B-e;S9r37Si-_kWdy3dE8NKTdJU-#;Cm}+w35ufb{|ZJ~ePEPzQM1*0 zYD{e^P=(hka0w;`q8PJhRLE$YeM=FzYiO3R#kvz4UK)vI7jk#tB}@*0R?}g2T%EN< zr6B6+q9r!D=Ge`dRol|k62q>wN~O^~@H&UgI0Y0fR*KCVCbwh5IH(czPha;9dyAQ| zWoJt_L@be1;_Cg3IQsVu^VH~G{Qrl5TkJcY-vXbe@ z|Dso*Vh$ee@v)njfGR&kf)+nZ<6mh-G4#Hr9oXHanr!~ApdH^1_I8eyIKUgcauuss zsp16;H!1E@DQCRaR*Wj&38G|n# z#`D>zi?_H?F(H?U1fbiq}g_>_-6<)=@%LWA9F zZk`RF^3JF1_>@66SY~o*wnce?SHbtp|8J>)ADx)ev7nun+`66ANUTY6wDvjqin6*4;|{1PcqX z;SaF2vLF&m!P3fm&$LZUPwsv1d!Kvm$;_E~u6?cajwudGy?@O#=tMOcZ*}6*L1Yp_ zl|od7*^d!6lgm4);Iw2ihH?Iq&9R8g^AAWb3+9*t=t2}Li3-C^sbg_#;%h=6BWp$klXgRwDXfeBPXa&1PsE1uYw33~< zgr$V-5LCXXPAgC^yHRL0yEUkfT@myfvkNaCB}G0Lg~O5jSWd4;=F;ot#_o1x&xl9F zebIxO+)Iih=ea&aMgaH3nGv`#l)lLQJs0FiEEEX??WE?!Fi*4xr#5tzOE#o z_uvdYz}|57!n;MiE2W%>GgsrG?4#_qN?WPji7kA@%{&Q?w;)>S!bYO>WFu|lMiHxy zbt^_AHquT9HWH`1xD9pCkBu1AjGqe-k7$+dBvYKa2UqXFa)A`YS8j{dA|ZJ(8x}DO U$W;M({zrU{Z2OD%bAO@t4;K()VgLXD diff --git a/src/main/resources/Windows/x86/jSerialComm.lib b/src/main/resources/Windows/x86/jSerialComm.lib index 8347f7c54cda3b84bc9806fa4df7676d7805a0a6..711b50681faadc65571d9aa15d7f078c358dabe1 100644 GIT binary patch delta 956 zcmZ`%OK1~O6g`l@zWE>&$wsg(jZI>wEfw7KYm8ATSXZ%7H3d=7qDuvL-6ZYZ zb>~75cO@G);-oB{L=z}N-MV<1}(k?{Z@_VNjicx7bvLpV*qM`|^Mn+F2y@ybYV zpMXoGQL8Ohu2*j^)n;a?u9tTX4M~5tvbH|==<)2+yARiCQ!4cbI&w)1uI3)B+{A<T146tkiM~r>m zHyvO#1>{{|kFlK&Uhnq^3gSp02^|^?3?K#-QA8m9=SD_t^T!ZXREKU$m*|sp;U5G1 z=vG5nh$O{6bmUR0Y6cy|4@ElL_dPack3J|W>Cthv|En*PJII-r1^e_?v*gLozgzFM zq$I`<^f3NYPm1lLvql&%7$ZV_*w>(jxz>}&QrdEZ@Q5Xb2PeY8%H{mg>UM#v5l&vJ zaQ`GKSb6HoG0|7sJTI#5SZ>1SUt_*}%HOh!BByG*F`qL}U3-GN5vSMoxgKFS5Gb=i z>{Ng}XRJra(n}|-vgrR+CXLd!s7YTOQ6(r*rjA>nd#)#DbN!&iJZGyx_Q%KonJFQ= fzeK_(C536HSN4#ocq0`mF0i5&DEbrdCT0Brq!IqQ delta 671 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 TdBIqM!2z)xUUfr$M*e>Q*Zdlx diff --git a/src/main/resources/Windows/x86_64/jSerialComm.exp b/src/main/resources/Windows/x86_64/jSerialComm.exp index 722250252ebe9d6bca445c7e2c129db812778c65..376e8adfc2e0f4de51598fdd2dfa94cdfb68d16f 100644 GIT binary patch literal 3191 zcmeHJOHb5L6h1TMttj}ySI8u?7@{_SfCEA0IT6JXfgp<}l+*eMEtf&C8l)Gp#Ri+`%YGsW!CI&swA^KQ~&StrDlQkk?wc|qh|TZGu9 zE~T{Gu+wdrIWCHBh-GHEORs?@3!xGPow=Oo&}NR_BiJ;Q)R7DigF0*e^WOH{zvE74ty7bJ2qo{(q- zBYA=X6^th(TE%!tqURXb7viwi}DD4aZiNQ}^K&-0BCtY{25QwrGn&MpU#_ zTkLY(bs95kj;(7shO_I1LUjeeD;yT4NszT!E|xSc?!@A_u3@b{*QV(dnH5`ii-sv; zqhsobwz;6qFQ+t?GjRQunSZJ-Z7l)ZhD1LZ-%)Mm4(jOu1=joRW)>6BxeK1aZ##3C zf!<-r42||PjVb7$hfE=Dh@K!7L`ZGTj%H9#XD6_}$(Cq#Dzm_9pFK^Xo=P&XzHU>r zaH`zE(k8p2M@}^!TwS-VS^R%kP)(zE?JFD{P=z;s8_;o9z}ZW&90z!VcOGMB3njdP zcmv~&B2TN1DL=H)l3vu9q0|VrQP}q}WAM$#+<*a0;^pyF^ zV-lcZjUkEq@-k1sb~7_N0&jiHD153hD3zX0JvICR8#!*Zc}%f-i@nFZYhk{(FoU$T z!{(_rTNv7RwRvMcwlF_inCsq9DU1TcyTIq=|M$?}z7)N0sG0!8BB0h-B|tr;CN(q delta 791 zcmZXSze^)Q6vy9W+|3U!CQ+j)d`_JNElPFdT zb{480BAbZn728>Z;e$G~8v-;?Ziz7Ad>#6EX)mJa6ym2sF#!+`( zN$-~wqMuG(WPt8mWRN6^ICY#=Y0A3D5S3lTq6^D~hUwl#G8DrL1H=}c(jzpjKKm!W sU4k{jd4%;wiqRomdf`hrWd0pFc}IT!M;?W`GW+l|LMksd8?Q3(5AZ!^1ONa4 diff --git a/src/main/resources/Windows/x86_64/jSerialComm.lib b/src/main/resources/Windows/x86_64/jSerialComm.lib index a3f76186060088740beff5afc7e68055b93d76f0..ec5034b1b0800ca1e341242b5b0e88b8d8362d1e 100644 GIT binary patch delta 992 zcmZ`&OK1~O6g|l#lg><%`K2jBpaHd%*v2F#{YXHiZD=bJk?v!m(ny1qSnSfBE;U>z zy30a0Du`q$#kvvPbrCle3gSvvExOdy_ueGaiJyVPdvou(pL6HV%h7iFQ9_>1DeaM-&JtR{PBu!|02 zET=$~oz+TZ;mXzWwWZ4J96b)DUw@4H!<)-DH%jaExw|)RZP1}V({H%sKSM?!s0eqd zw!BIWUzYTMth$yv)Fsg?S)rc;XSti*bK-1D;nte;!q+c-(v==%+B+IB#V&On*ogyM zgFxE=Y9^3k@3IB#+CYiu}^i#cHPI{)> zJec0-s~&SA@9bPM$+zz42w1t#Q!TPgewJ#Se{Jt%#?8~7aJpbPr7ttS)Z>d`JTY7% zTW{JkVxq@cMhtX`Dy7Z79+?oKex8P{Om}S*dhaErM3xfEA`7KuE9>pYJBpAX425+1 zVYy{^FL^sA%FNJbJ45A=N)K$e*#q;qgu*juo*%l-Ru$JvN&!lJ-)Y8c}Vt zm9*v?^4qWh#DHxAZU?CB0^)cigIAV!m&@M)GKI^z0uPWn{#_C1DfX_S*OjszxMhPw)6k$L^;Xk)JY1$Nh2z~lyZe=udYRsoMmaft7(l3eE zvDdPLO+%-pVA8A`=<8p9q_174px$qJ`Td^fsAI)Rdo)#J!`?j9!L=WUwC_!%13yxn zb()JsmQ0Vr&;Nq!bP|ekR`ibN)96V!O&8^W4cidZ#%i9|6ozNgh_k!KiVU&eLn zi#(;vDY{I_-sf6OstHUWTdlCk7@JnBGpcE=mYd$PsVGg)N)`HEeX5!`NwTcaRkca4 liarC64VUqhZ1aW_ESccf=KfZXU}bfe?&BsslpN~TgFn3>rZ4~i diff --git a/src/test/java/com/fazecast/jSerialComm/SerialPortTest.java b/src/test/java/com/fazecast/jSerialComm/SerialPortTest.java index 5add510..08666e2 100644 --- a/src/test/java/com/fazecast/jSerialComm/SerialPortTest.java +++ b/src/test/java/com/fazecast/jSerialComm/SerialPortTest.java @@ -107,7 +107,25 @@ public class SerialPortTest System.out.println("Read " + numRead + " bytes."); } } catch (Exception e) { e.printStackTrace(); } + System.out.println("\nSwitching over to event-based reading"); + ubxPort.addDataListener(new SerialPortPacketListener() { + @Override + public int getListeningEvents() { return SerialPort.LISTENING_EVENT_DATA_RECEIVED; } + @Override + public void serialEvent(SerialPortEvent event) + { + byte[] newData = event.getReceivedData(); + System.out.println("Received data of size: " + newData.length); + for (int i = 0; i < newData.length; ++i) + System.out.print((char)newData[i]); + System.out.println("\n"); + } + @Override + public int getPacketSize() { return 100; } + }); + try { Thread.sleep(5000); } catch (Exception e) {} System.out.println("\n\nClosing " + ubxPort.getDescriptivePortName() + ": " + ubxPort.closePort()); + ubxPort.removeDataListener(); try { Thread.sleep(1000); } catch (InterruptedException e1) { e1.printStackTrace(); } System.out.println("Reopening " + ubxPort.getDescriptivePortName() + ": " + ubxPort.openPort() + "\n"); ubxPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_BLOCKING, 1000, 0); diff --git a/src/test/resources/Windows/x86/jSerialComm.dll b/src/test/resources/Windows/x86/jSerialComm.dll deleted file mode 100644 index 6168b7663fb627e1e0e9ae72baaff1371957abf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101888 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 Pn!}q8RB?E-!Rq}5Z`tbA diff --git a/src/test/resources/Windows/x86/jSerialComm.lib b/src/test/resources/Windows/x86/jSerialComm.lib deleted file mode 100644 index 8347f7c54cda3b84bc9806fa4df7676d7805a0a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5304 zcmcIo%}*0S6#unF(F);9y-8|9qF$g>ify8%fFGc>lBHa{tV_GVnwBN)0+EXxIrxuw zC)`Z@7d&|I;7Pm@_X_ym|ARx4n5^Yg9HLCZ|%ZWqKx) zP2bDp^Z8bJ+U-tf?q!_U*GT}^faE?fa0Cqg1g@r>I(7(f9a?nj3AI#5j-5Ju0B{`{ zck1XVU{{4&MOBwxEWcFB>Z8Xi3(C@R`K6-1SAMb7PNMon9*>4lv1V%rsjwq2>2O`ZK+(kx>)itzvq;jNon>&8ae zsO#pA)r_$6N}B>n+fQod-h#PhHOyLM^MVdZ1nm6CroG9bZJOKqR!`gAt{}AS4c%hq zVDnM-T9_`+nYq85IY6YjPt18lFFyx?)K%bc3|JfjPN*J_00+asIJKvvfI^i>78lWv z%Shr925C`*lUoC?V;<(q(I%_4 z+EllUGn@8O(bvghEP;*hzsh4V5EI%ZHd)ozb~YwfoG$Q~Ufz2hw=H0Je$uFFmNt>` zej?((x2RMv#uCK#z>GoZyd`DNPUV^d!0C$%aE|BTNoSeCpqin!mK~2 zjJ_}`4YO&kTdCX1om6qD^xXbcc<^AJ$O=G2&u0Kiy zlbvzDS~zmzcI14tK{8YXMo!iK>EFW_Id?rNN6rVYL4?kgE^HaysK9nM_Va~6jspE-Z=ow*rL&f~s#9k)Gm4~OyUO)`F_Y?jZuj!p6R zGauMuj2X>gg1%m|H(`?@eO~h3rVH4LFekp7%`Cjk1+%Mdez#a4lAZ2PYyV;sbiopH=ycr(y diff --git a/src/test/resources/Windows/x86_64/jSerialComm.dll b/src/test/resources/Windows/x86_64/jSerialComm.dll deleted file mode 100644 index 32792c9bfedcc2f537b5adcc459b5091073be859..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121856 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 diff --git a/src/test/resources/Windows/x86_64/jSerialComm.exp b/src/test/resources/Windows/x86_64/jSerialComm.exp deleted file mode 100644 index 722250252ebe9d6bca445c7e2c129db812778c65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2707 zcmeHJ%Wl&^6uqhY;!$XLcF{!^6-oti+LDH}DkW{IiqaCQwkj-)!o;2i7bj!c&Vz1{ zSg?Q{pTUYBKw`~`4`6{rKY;QB<=%0cxX#9@SaN0GIdkMQGq&#;+j!Rp&wu^i`7;PG z27ajAU><9AuzAx5U|@TQEyWEyb9kr*FV)Hu+r&}KC;(sa3`Pz{m#I&4obWLO=UV3p z_ix)6^nn8XFaU!v1jDeu%^j0jc~PmThGoGcR%b7WZ@rtF_ z9(R}O%(Pg^;?Z@wC0tG;6qsk$dl8E2o>^YCL?bV%o+El#t1hK9X%Fj^njN#kMa^@g z>&o1the?z5pb|E(p5>u9oEgjXCZaE};g}xxHE(#2$x`HmCci((O^(w)+C=smvqmPuZSkr@D!(4%vSW^<rO^BJdX*Rcc10OMb^5nvim z9JH|AW+n<#7}M}E#LU3A5OWt4oXDTcSEXSw#LR*dVlwb4#N30QAtnoBSmQ|IefcBL z!FroPTJD3?Qji@0XqP$(pQ)X6vGtkHUCdz@GfvaC!dKz0(hi?_-^F}6#T;QT@_YXO cz3%+!1pi}B88`CN3>h}Eu4B~5l7K<~0{7V1F8}}l diff --git a/src/test/resources/Windows/x86_64/jSerialComm.lib b/src/test/resources/Windows/x86_64/jSerialComm.lib deleted file mode 100644 index a3f76186060088740beff5afc7e68055b93d76f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5164 zcmcIo%}(1u5FU~cXi6ZEwzo<_LTY<~5R#HeEiwcUDG*Qy7o^IV#DFUYqr`y9r8iD} z0A8WILnR)ey&zShhpOtmZ$M}Klh{j|cnw&Z?2l(W-_Fi{9%uB8RIlvML?#mMYcie6 zB&SokY|cHOw1$(Z$+X$sjsU<@fJhi%KmdrI0>sZP31N#ecx}p%4nQ(IV@hlgz>o`U zQASi#hOhAcl_(Zg*VjsAaeiSVUn;DZ*Gl4t4Y{sJYF?|=KopCcD=W8^;FCkk)G04* z7MI2O+43yBla3{^qSeG*=~S*r4c+-n(R}>6R@cRox}wW-A9cBbo|M|5=*QBtO>diYo1>GVkgbYtLRQs@9MxvPDT(j=9~k=HC5k2fNB%S*gj|k;Ng^~XR?3_jc&f@?flxyTQeF$J?7 zUUP#`oxJAj0sh&onM0g@U75sb%j6TMbt|hl4IR1Fu_kiVOXF2lo#ybgzvXxjAfK7ncvapx+8f)jhOmI0&-TD-1&Ga!D^*FC#!~jJC)oLp^2eG8VkV zdX-oy6ql|0u7;Ee3<*-a(IXJOMvw6X0+yGDh&fvN2{$)RD^y3KC$X0<02r|M?HOZ{ zrY}n;O*&`~CHArlo^hJtJmYGFBV% zU5hb04a~UfnaNGH$5lXFJxE5Ls~Yyr%>V)J)11q+M@AeP;6iq*D7Z7WY_>hNdBhgv z$7a+UEGTB&eJ49)Sco4}vyx$O@MoC)w+^zhGxHZQR`hk^Im28v(w$Lth*p>f6;plP i6<2n;eP-n`T75jYT6G-@iTfmW%JzO9OpcO~1@#X*a{UGX