2021-08-22

This commit is contained in:
2021-08-22 20:17:07 +09:00
parent 1a6ee1f972
commit 2832fa0b5f
8 changed files with 307 additions and 1 deletions

View 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")
}

View 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();
}
}

View 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;
}
});
}
}

View 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();
}
}

View 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 {
}

View 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 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();
}
}

View 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();
}
}

View File

@@ -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"
) )