From 0f21578fc53a18fa906baf9bda8c345bb9b6e5eabc0d3c17fcb384d94693fe9b Mon Sep 17 00:00:00 2001 From: Minimons Date: Tue, 16 Jun 2026 11:06:53 +0200 Subject: [PATCH] Added sourcecode for LedSign --- build.gradle.kts | 3 +- .../com/r35157/driver/ledsign/LedSign.tjava | 7 ++ .../impl/sigmaasc434/SigmaAsc434.tjava | 85 +++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 src/main/tjava/com/r35157/driver/ledsign/LedSign.tjava create mode 100644 src/main/tjava/com/r35157/driver/ledsign/impl/sigmaasc434/SigmaAsc434.tjava diff --git a/build.gradle.kts b/build.gradle.kts index 7b7d0b7..6737111 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -43,8 +43,9 @@ dependencies { runtimeOnly("org.apache.logging.log4j:log4j-core:2.26.0") runtimeOnly("org.apache.logging.log4j:log4j-slf4j2-impl:2.26.0") - implementation("com.fasterxml.jackson.core:jackson-databind:2.17.2") implementation("org.slf4j:slf4j-api:2.0.18") + implementation("com.fasterxml.jackson.core:jackson-databind:2.17.2") + implementation("com.fazecast:jSerialComm:2.11.4") } java { diff --git a/src/main/tjava/com/r35157/driver/ledsign/LedSign.tjava b/src/main/tjava/com/r35157/driver/ledsign/LedSign.tjava new file mode 100644 index 0000000..a8d1a1f --- /dev/null +++ b/src/main/tjava/com/r35157/driver/ledsign/LedSign.tjava @@ -0,0 +1,7 @@ +package com.r35157.driver.ledsign; + +import org.jetbrains.annotations.NotNull; + +public interface LedSign { + void sendCommand(@NotNull byte[] payload); +} diff --git a/src/main/tjava/com/r35157/driver/ledsign/impl/sigmaasc434/SigmaAsc434.tjava b/src/main/tjava/com/r35157/driver/ledsign/impl/sigmaasc434/SigmaAsc434.tjava new file mode 100644 index 0000000..9e415b9 --- /dev/null +++ b/src/main/tjava/com/r35157/driver/ledsign/impl/sigmaasc434/SigmaAsc434.tjava @@ -0,0 +1,85 @@ +package com.r35157.driver.ledsign.impl.sigmaasc434; + +import com.r35157.driver.ledsign.LedSign; +import org.jetbrains.annotations.NotNull; +import com.fazecast.jSerialComm.*; + +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; + +public class SigmaAsc434 implements LedSign { + @Override + public void sendCommand(@NotNull byte[] bytes) { + } + + static void main() throws Exception { + try { + new SigmaAsc434(); + } catch(Exception e) { + System.out.println(e); + } + } + + public SigmaAsc434() throws Exception { + SerialPort port = SerialPort.getCommPort("/dev/ttyUSB0"); + port.setComPortParameters(BAUD, 8, SerialPort.ONE_STOP_BIT, SerialPort.NO_PARITY); + port.setFlowControl(SerialPort.FLOW_CONTROL_DISABLED); + port.setComPortTimeouts(SerialPort.TIMEOUT_WRITE_BLOCKING, 0, 0); + port.setDTR(); + port.setRTS(); + + if (!port.openPort()) throw new RuntimeException("Kunne ikke åbne porten"); + + try (OutputStream out = port.getOutputStream()) { + long ts = System.currentTimeMillis(); + //// 1) Sync (parser reset) + //for (int i = 0; i < 20; i++) { + // out.write(0xAA); + //} +// + //// 2) Start command + //out.write(0xBB); +// + //// 3) Program select: A + //out.write(0xAF); + //out.write('A'); // 0x41 +// + //// 4) Text: rød på sort + //int RED_ON_BLACK = 0x01; +// + //String text = "A"; + //for (byte b : text.getBytes(StandardCharsets.US_ASCII)) { + // //out.write(RED_ON_BLACK); + // out.write(b); + //} +// + //// 5) End command + //out.write(0xBF); + //out.write(0xB1); + + for (int i = 0; i < 10; i++) { + out.write(0xAA); + } + + out.write(0xBB); + out.write(0xAF); out.write(0x41); + out.write(0x01); out.write(0x54); + out.write(0x01); out.write(0x45); + out.write(0x01); out.write(0x53); + out.write(0x01); out.write(0x54); + out.write(0xBF); out.write(0xB1); + + out.flush(); + System.out.println("@@@ DONE in " + (System.currentTimeMillis() - ts) + "ms @@@"); + } finally { + port.closePort(); + } + } + + //private static final int BAUD = 2400; + //private static final int BAUD = 4800; + //private static final int BAUD = 9600; + //private static final int BAUD = 19200; + private static final int BAUD = 115200; +}