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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user