2021-08-22
This commit is contained in:
14
serial-io/build.gradle.kts
Normal file
14
serial-io/build.gradle.kts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Examples for Java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||||
|
* https://www.elex-project.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("elex-java")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation("com.fazecast:jSerialComm:2.7.0")
|
||||||
|
}
|
||||||
35
serial-io/src/main/java/kr/pe/elex/examples/Blocking.java
Normal file
35
serial-io/src/main/java/kr/pe/elex/examples/Blocking.java
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Examples for Java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||||
|
* https://www.elex-project.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kr.pe.elex.examples;
|
||||||
|
|
||||||
|
import com.elex_project.abraxas.Console;
|
||||||
|
import com.fazecast.jSerialComm.SerialPort;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class Blocking {
|
||||||
|
public static void main(String... args) {
|
||||||
|
SerialPort serialPort = SerialPort.getCommPort("/dev/ttyS0");
|
||||||
|
serialPort.setComPortParameters(9600, 8, 1, SerialPort.NO_PARITY);
|
||||||
|
serialPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_BLOCKING, 1000, 0);
|
||||||
|
serialPort.openPort();
|
||||||
|
|
||||||
|
try {
|
||||||
|
while (true) {
|
||||||
|
|
||||||
|
byte[] buffer = new byte[512];
|
||||||
|
int numRead = serialPort.readBytes(buffer, buffer.length);
|
||||||
|
Console.writeLine(buffer);
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
log.error("Oops!", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
serialPort.closePort();
|
||||||
|
}
|
||||||
|
}
|
||||||
127
serial-io/src/main/java/kr/pe/elex/examples/ListeningEvents.java
Normal file
127
serial-io/src/main/java/kr/pe/elex/examples/ListeningEvents.java
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
/*
|
||||||
|
* Examples for Java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||||
|
* https://www.elex-project.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kr.pe.elex.examples;
|
||||||
|
|
||||||
|
import com.elex_project.abraxas.Console;
|
||||||
|
import com.fazecast.jSerialComm.*;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class ListeningEvents {
|
||||||
|
public static void main(String... args) {
|
||||||
|
SerialPort serialPort = SerialPort.getCommPort("/dev/ttyS0");
|
||||||
|
serialPort.setComPortParameters(9600, 8, 1, SerialPort.NO_PARITY);
|
||||||
|
serialPort.openPort();
|
||||||
|
|
||||||
|
serialPort.addDataListener(new SerialPortDataListener() {
|
||||||
|
@Override
|
||||||
|
public int getListeningEvents() {
|
||||||
|
return SerialPort.LISTENING_EVENT_DATA_AVAILABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialEvent(SerialPortEvent event) {
|
||||||
|
if (event.getEventType() != SerialPort.LISTENING_EVENT_DATA_AVAILABLE)
|
||||||
|
return;
|
||||||
|
byte[] newData = new byte[serialPort.bytesAvailable()];
|
||||||
|
int numRead = serialPort.readBytes(newData, newData.length);
|
||||||
|
Console.writeLine(newData);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
serialPort.addDataListener(new SerialPortDataListener() {
|
||||||
|
@Override
|
||||||
|
public int getListeningEvents() {
|
||||||
|
return SerialPort.LISTENING_EVENT_DATA_WRITTEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialEvent(SerialPortEvent event) {
|
||||||
|
if (event.getEventType() == SerialPort.LISTENING_EVENT_DATA_WRITTEN)
|
||||||
|
Console.writeLine("All bytes were successfully transmitted!");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
serialPort.addDataListener(new SerialPortDataListener() {
|
||||||
|
@Override
|
||||||
|
public int getListeningEvents() {
|
||||||
|
return SerialPort.LISTENING_EVENT_DATA_RECEIVED;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialEvent(SerialPortEvent event) {
|
||||||
|
byte[] newData = event.getReceivedData();
|
||||||
|
Console.writeLine(newData);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
serialPort.addDataListener(new SerialPortPacketListener(){
|
||||||
|
@Override
|
||||||
|
public int getListeningEvents() {
|
||||||
|
return SerialPort.LISTENING_EVENT_DATA_RECEIVED;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialEvent(SerialPortEvent event) {
|
||||||
|
byte[] newData = event.getReceivedData();
|
||||||
|
Console.writeLine(newData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPacketSize() {
|
||||||
|
return 64;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
serialPort.addDataListener(new SerialPortMessageListener(){
|
||||||
|
@Override
|
||||||
|
public int getListeningEvents() {
|
||||||
|
return SerialPort.LISTENING_EVENT_DATA_RECEIVED;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialEvent(SerialPortEvent event) {
|
||||||
|
byte[] newData = event.getReceivedData();
|
||||||
|
Console.writeLine(newData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte[] getMessageDelimiter() {
|
||||||
|
return new byte[]{0x7e};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean delimiterIndicatesEndOfMessage() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
serialPort.addDataListener(new SerialPortMessageListener(){
|
||||||
|
@Override
|
||||||
|
public int getListeningEvents() {
|
||||||
|
return SerialPort.LISTENING_EVENT_DATA_RECEIVED;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialEvent(SerialPortEvent event) {
|
||||||
|
byte[] newData = event.getReceivedData();
|
||||||
|
Console.writeLine(newData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte[] getMessageDelimiter() {
|
||||||
|
return new byte[]{'\n'};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean delimiterIndicatesEndOfMessage() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
38
serial-io/src/main/java/kr/pe/elex/examples/NonBlocking.java
Normal file
38
serial-io/src/main/java/kr/pe/elex/examples/NonBlocking.java
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Examples for Java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||||
|
* https://www.elex-project.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kr.pe.elex.examples;
|
||||||
|
|
||||||
|
import com.elex_project.abraxas.Console;
|
||||||
|
import com.fazecast.jSerialComm.SerialPort;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class NonBlocking {
|
||||||
|
public static void main(String... args) {
|
||||||
|
SerialPort serialPort = SerialPort.getCommPort("/dev/ttyS0");
|
||||||
|
serialPort.setComPortParameters(9600, 8, 1, SerialPort.NO_PARITY);
|
||||||
|
serialPort.setComPortTimeouts(SerialPort.TIMEOUT_NONBLOCKING, 0, 0);
|
||||||
|
serialPort.openPort();
|
||||||
|
|
||||||
|
try {
|
||||||
|
while (true) {
|
||||||
|
while (serialPort.bytesAvailable() == 0) {
|
||||||
|
Thread.sleep(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] buffer = new byte[serialPort.bytesAvailable()];
|
||||||
|
int numRead = serialPort.readBytes(buffer, buffer.length);
|
||||||
|
Console.writeLine(buffer);
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
log.error("Oops!", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
serialPort.closePort();
|
||||||
|
}
|
||||||
|
}
|
||||||
11
serial-io/src/main/java/kr/pe/elex/examples/Sample.java
Normal file
11
serial-io/src/main/java/kr/pe/elex/examples/Sample.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* Examples for Java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||||
|
* https://www.elex-project.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kr.pe.elex.examples;
|
||||||
|
|
||||||
|
public class Sample {
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Examples for Java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||||
|
* https://www.elex-project.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kr.pe.elex.examples;
|
||||||
|
|
||||||
|
import com.elex_project.abraxas.Console;
|
||||||
|
import com.fazecast.jSerialComm.SerialPort;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class SemiBlocking {
|
||||||
|
public static void main(String... args) {
|
||||||
|
SerialPort serialPort = SerialPort.getCommPort("/dev/ttyS0");
|
||||||
|
serialPort.setComPortParameters(9600, 8, 1, SerialPort.NO_PARITY);
|
||||||
|
serialPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 100, 0);
|
||||||
|
serialPort.openPort();
|
||||||
|
|
||||||
|
try {
|
||||||
|
while (true) {
|
||||||
|
|
||||||
|
byte[] buffer = new byte[512];
|
||||||
|
int numRead = serialPort.readBytes(buffer, buffer.length);
|
||||||
|
Console.writeLine(buffer);
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
log.error("Oops!", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
serialPort.closePort();
|
||||||
|
}
|
||||||
|
}
|
||||||
46
serial-io/src/main/java/kr/pe/elex/examples/Streaming.java
Normal file
46
serial-io/src/main/java/kr/pe/elex/examples/Streaming.java
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Examples for Java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||||
|
* https://www.elex-project.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kr.pe.elex.examples;
|
||||||
|
|
||||||
|
import com.elex_project.abraxas.Console;
|
||||||
|
import com.fazecast.jSerialComm.SerialPort;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.BufferedOutputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class Streaming {
|
||||||
|
public static void main(String... args) {
|
||||||
|
SerialPort serialPort = SerialPort.getCommPort("/dev/ttyS0");
|
||||||
|
serialPort.setComPortParameters(9600, 8, 1, SerialPort.NO_PARITY);
|
||||||
|
serialPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 0, 0);
|
||||||
|
serialPort.openPort();
|
||||||
|
|
||||||
|
BufferedInputStream is = new BufferedInputStream(serialPort.getInputStream());
|
||||||
|
BufferedOutputStream os = new BufferedOutputStream(serialPort.getOutputStream());
|
||||||
|
try {
|
||||||
|
while (true) {
|
||||||
|
|
||||||
|
if (is.available()<=0){
|
||||||
|
Thread.sleep(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] buffer = new byte[is.available()];
|
||||||
|
int numRead = is.read(buffer);
|
||||||
|
Console.writeLine(buffer);
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
log.error("Oops!", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
serialPort.closePort();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ include(
|
|||||||
"web-socket-servlet", "web-socket-client",
|
"web-socket-servlet", "web-socket-client",
|
||||||
"thread", "hibernate", "jdbc-sqlite",
|
"thread", "hibernate", "jdbc-sqlite",
|
||||||
"xml", "jackson", "jsoup", "markdown", "network", "httpd",
|
"xml", "jackson", "jsoup", "markdown", "network", "httpd",
|
||||||
"properties",
|
"properties", "serial-io",
|
||||||
"mustache", "thymeleaf", "locale", "quartz", "sysinfo",
|
"mustache", "thymeleaf", "locale", "quartz", "sysinfo",
|
||||||
"imaging"
|
"imaging"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user