1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-21 04:06:46 +00:00

Library for working with serial ports in Java.

WWW: https://github.com/scream3r/java-simple-serial-connector

PR:		213758
Submitted by:	bsdports@kyle-evans.net
This commit is contained in:
Boris Samorodov 2016-10-25 19:37:33 +00:00
parent 010f3fdb76
commit 658f5275a5
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=424647
10 changed files with 207 additions and 0 deletions

View File

@ -70,6 +70,7 @@
SUBDIR += ibp
SUBDIR += java-commapi
SUBDIR += java-commapi-freebsd
SUBDIR += java-simple-serial-connector
SUBDIR += jerm
SUBDIR += jsdr
SUBDIR += kb

View File

@ -0,0 +1,45 @@
# $FreeBSD$
PORTNAME= java-simple-serial-connector
PORTVERSION= 2.8.0
DISTVERSIONPREFIX= v
CATEGORIES= comms java
MAINTAINER= bsdports@kyle-evans.net
COMMENT= Library for working with serial ports from Java
LICENSE= LGPL3
USE_GITHUB= yes
GH_ACCOUNT= scream3r
MAJOR_MINOR= ${PORTVERSION:C/(.*)\.[0-9]*/\\1/}
USE_JAVA= yes
USE_ANT= yes
ALL_TARGET= dist
CXXFLAGS+= -I${JAVA_HOME}/include -I${JAVA_HOME}/include/freebsd
WRKSRC_LIBS= ${WRKSRC}/src/java/libs
PLIST_FILES= ${JAVA_HOME}/jre/lib/ext/jssc-${PORTVERSION}.jar
.include <bsd.port.pre.mk>
.if ${ARCH} == "armv6" || ${ARCH} == "aarch64"
ARCH= arm
.endif
post-extract:
@${CP} ${FILESDIR}/build.xml.in ${WRKSRC}/build.xml
@${REINPLACE_CMD} -e 's|%%PORTVERSION%%|${PORTVERSION}|' ${WRKSRC}/build.xml
pre-build:
${RM} -r ${WRKSRC_LIBS}/*
${MKDIR} ${WRKSRC_LIBS}/freebsd
(cd ${WRKSRC}/src/cpp/_nix_based && ${CXX} ${CXXFLAGS} ${CPPFLAGS} -shared -fPIC -o ${WRKSRC_LIBS}/freebsd/libjSSC-${MAJOR_MINOR}_${ARCH}.so jssc.cpp)
${STRIP_CMD} ${WRKSRC_LIBS}/freebsd/libjSSC-${MAJOR_MINOR}_${ARCH}.so
do-install:
@${MKDIR} ${STAGEDIR}${JAVA_HOME}/jre/lib/ext
${CP} ${WRKSRC}/build/jssc-${PORTVERSION}.jar ${STAGEDIR}${JAVA_HOME}/jre/lib/ext
.include <bsd.port.post.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1477335330
SHA256 (scream3r-java-simple-serial-connector-v2.8.0_GH0.tar.gz) = c3287bfc31ea81929739271b087b833fb7050686af6a90ec953c5b2f41b4d42d
SIZE (scream3r-java-simple-serial-connector-v2.8.0_GH0.tar.gz) = 149937

View File

@ -0,0 +1,25 @@
<project name="JSSC" basedir=".">
<property name="src" location="src/java" />
<property name="build" location="build" />
<property name="libs" location="${src}/libs" />
<property name="libsto" location="${build}/libs" />
<property name="dist" location="dist" />
<target name="init">
<tstamp />
<mkdir dir="${build}" />
</target>
<target name="compile" depends="init" description="Compile JSSC">
<javac srcdir="${src}" destdir="${build}" encoding="UTF-8" />
<copy todir="${libsto}">
<fileset dir="${libs}" />
</copy>
</target>
<target name="dist" depends="compile" description="Build distributable">
<jar destfile="${build}/jssc-%%PORTVERSION%%.jar">
<fileset dir="${build}" />
</jar>
</target>
</project>

View File

@ -0,0 +1,11 @@
--- src/cpp/_nix_based/jssc.cpp.orig 2016-10-24 19:48:41 UTC
+++ src/cpp/_nix_based/jssc.cpp
@@ -545,7 +545,7 @@ JNIEXPORT jbyteArray JNICALL Java_jssc_S
FD_CLR(portHandle, &read_fd_set);
jbyteArray returnArray = env->NewByteArray(byteCount);
env->SetByteArrayRegion(returnArray, 0, byteCount, lpBuffer);
- delete lpBuffer;
+ delete[] lpBuffer;
return returnArray;
}

View File

@ -0,0 +1,11 @@
--- src/cpp/jssc_SerialNativeInterface.h.orig 2016-10-24 19:47:55 UTC
+++ src/cpp/jssc_SerialNativeInterface.h
@@ -43,6 +43,8 @@ extern "C" {
#define jssc_SerialNativeInterface_OS_SOLARIS 2L
#undef jssc_SerialNativeInterface_OS_MAC_OS_X
#define jssc_SerialNativeInterface_OS_MAC_OS_X 3L
+#undef jssc_SerialNativeInterface_OS_FREEBSD
+#define jssc_SerialNativeInterface_OS_FREEBSD 4L
#undef jssc_SerialNativeInterface_ERR_PORT_BUSY
#define jssc_SerialNativeInterface_ERR_PORT_BUSY -1LL
#undef jssc_SerialNativeInterface_ERR_PORT_NOT_FOUND

View File

@ -0,0 +1,62 @@
--- src/java/jssc/SerialNativeInterface.java.orig 2014-01-24 14:34:02 UTC
+++ src/java/jssc/SerialNativeInterface.java
@@ -43,6 +43,7 @@ public class SerialNativeInterface {
public static final int OS_WINDOWS = 1;
public static final int OS_SOLARIS = 2;//since 0.9.0
public static final int OS_MAC_OS_X = 3;//since 0.9.0
+ public static final int OS_FREEBSD = 4;
private static int osType = -1;
@@ -108,36 +109,16 @@ public class SerialNativeInterface {
osName = "mac_os_x";
osType = OS_MAC_OS_X;
}//<- since 0.9.0
+ else if(osName.equals("FreeBSD")){
+ osName = "freebsd";
+ osType = OS_FREEBSD;
+ }
if(architecture.equals("i386") || architecture.equals("i686")){
- architecture = "x86";
+ architecture = "i386";
}
else if(architecture.equals("amd64") || architecture.equals("universal")){//os.arch "universal" since 2.6.0
- architecture = "x86_64";
- }
- else if(architecture.equals("arm")) {//since 2.1.0
- String floatStr = "sf";
- if(javaLibPath.toLowerCase().contains("gnueabihf") || javaLibPath.toLowerCase().contains("armhf")){
- floatStr = "hf";
- }
- else {
- try {
- Process readelfProcess = Runtime.getRuntime().exec("readelf -A /proc/self/exe");
- BufferedReader reader = new BufferedReader(new InputStreamReader(readelfProcess.getInputStream()));
- String buffer = "";
- while((buffer = reader.readLine()) != null && !buffer.isEmpty()){
- if(buffer.toLowerCase().contains("Tag_ABI_VFP_args".toLowerCase())){
- floatStr = "hf";
- break;
- }
- }
- reader.close();
- }
- catch (Exception ex) {
- //Do nothing
- }
- }
- architecture = "arm" + floatStr;
+ architecture = "amd64";
}
libFolderPath = libRootFolder + fileSeparator + ".jssc" + fileSeparator + osName;
@@ -259,7 +240,7 @@ public class SerialNativeInterface {
}
/**
- * Get OS type (OS_LINUX || OS_WINDOWS || OS_SOLARIS)
+ * Get OS type (OS_LINUX || OS_WINDOWS || OS_SOLARIS || OS_FREEBSD)
*
* @since 0.8
*/

View File

@ -0,0 +1,32 @@
--- src/java/jssc/SerialPort.java.orig 2016-10-24 19:44:26 UTC
+++ src/java/jssc/SerialPort.java
@@ -264,7 +264,8 @@ public class SerialPort {
checkPortOpened("setEventsMask()");
if(SerialNativeInterface.getOsType() == SerialNativeInterface.OS_LINUX ||
SerialNativeInterface.getOsType() == SerialNativeInterface.OS_SOLARIS ||
- SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X){//since 0.9.0
+ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X ||
+ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_FREEBSD){//since 0.9.0
linuxMask = mask;
if(mask > 0){
maskAssigned = true;
@@ -298,7 +299,8 @@ public class SerialPort {
checkPortOpened("getEventsMask()");
if(SerialNativeInterface.getOsType() == SerialNativeInterface.OS_LINUX ||
SerialNativeInterface.getOsType() == SerialNativeInterface.OS_SOLARIS ||
- SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X){//since 0.9.0
+ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X ||
+ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_FREEBSD){//since 0.9.0
return linuxMask;
}
return serialInterface.getEventsMask(portHandle);
@@ -1041,7 +1043,8 @@ public class SerialPort {
private EventThread getNewEventThread() {
if(SerialNativeInterface.getOsType() == SerialNativeInterface.OS_LINUX ||
SerialNativeInterface.getOsType() == SerialNativeInterface.OS_SOLARIS ||
- SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X){//since 0.9.0
+ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_MAC_OS_X ||
+ SerialNativeInterface.getOsType() == SerialNativeInterface.OS_FREEBSD){//since 0.9.0
return new LinuxEventThread();
}
return new EventThread();

View File

@ -0,0 +1,14 @@
--- src/java/jssc/SerialPortList.java.orig 2016-10-24 19:46:27 UTC
+++ src/java/jssc/SerialPortList.java
@@ -57,6 +57,11 @@ public class SerialPortList {
PORTNAMES_PATH = "/dev/";
break;
}
+ case SerialNativeInterface.OS_FREEBSD: {
+ PORTNAMES_REGEXP = Pattern.compile("cuaU[0-9]{1,3}");
+ PORTNAMES_PATH = "/dev/";
+ break;
+ }
case SerialNativeInterface.OS_WINDOWS: {
PORTNAMES_REGEXP = Pattern.compile("");
PORTNAMES_PATH = "";

View File

@ -0,0 +1,3 @@
Library for working with serial ports in Java.
WWW: https://github.com/scream3r/java-simple-serial-connector