diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9362827..dc11b03 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -10,11 +10,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- - name: Checkout Code
- uses: actions/checkout@v5
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- - name: Set up Java
- uses: actions/setup-java@v5
+ - uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '8'
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 960613d..2d92f0b 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -7,11 +7,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- - name: Checkout Code
- uses: actions/checkout@v5
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- - name: Set up Java
- uses: actions/setup-java@v5
+ - uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
with:
distribution: 'temurin'
java-version: '8'
diff --git a/.github/workflows/github-release.yml b/.github/workflows/github-release.yml
index 816ab46..4eae0f7 100644
--- a/.github/workflows/github-release.yml
+++ b/.github/workflows/github-release.yml
@@ -17,8 +17,7 @@ jobs:
release:
runs-on: ubuntu-latest
steps:
- - name: Checkout
- uses: actions/checkout@v4
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Create GitHub Release
env:
diff --git a/pom.xml b/pom.xml
index 113d78a..32bf489 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
j2mod
j2mod
https://github.com/OpenEMS/j2mod
- 3.4.0-openems.1
+ 3.4.0-openems.2-SNAPSHOT
A Modbus TCP/UDP/Serial Master and Slave implementation
bundle
diff --git a/src/main/java/com/ghgande/j2mod/modbus/io/ModbusSerialTransport.java b/src/main/java/com/ghgande/j2mod/modbus/io/ModbusSerialTransport.java
index 7abd4cf..9ed09b1 100644
--- a/src/main/java/com/ghgande/j2mod/modbus/io/ModbusSerialTransport.java
+++ b/src/main/java/com/ghgande/j2mod/modbus/io/ModbusSerialTransport.java
@@ -56,12 +56,12 @@ public abstract class ModbusSerialTransport extends AbstractModbusTransport {
/**
* The number of nanoseconds there is in a millisecond
*/
- private static final int NS_IN_A_MS = 1_000_000;
+ private static final double NS_IN_A_MS = 1_000_000.0;
/**
* The number of nanoseconds there is in a second
*/
- private static final int NS_IN_A_SEC = 1_000_000_000;
+ private static final double NS_IN_A_SEC = 1_000_000_000.0;
private static final String CANNOT_READ_FROM_SERIAL_PORT = "Cannot read from serial port";
private static final String COMM_PORT_IS_NOT_VALID_OR_NOT_OPEN = "Comm port is not valid or not open";
@@ -121,7 +121,7 @@ private void waitForTransmission(long startTime, double transmissionTimeNanos) {
if (transmissionTimeNanos >= NS_IN_A_MS) {
try {
final long adjustedDelay = (long) (transmissionTimeNanos * LONG_DELAY_FUDGE_FACTOR);
- final long sleepMillis = adjustedDelay / NS_IN_A_MS;
+ final long sleepMillis = (long) (adjustedDelay / NS_IN_A_MS);
final int sleepNanos = (int) (adjustedDelay % NS_IN_A_MS);
Thread.sleep(sleepMillis, sleepNanos);
@@ -637,7 +637,7 @@ void waitBetweenFrames(int transDelayMS, long lastTransactionTimestamp) {
int delay = getInterFrameDelay() / 1000;
// How long since the last message we received
- long gapSinceLastMessage = (System.nanoTime() - lastTransactionTimestamp) / NS_IN_A_MS;
+ long gapSinceLastMessage = (long) ((System.nanoTime() - lastTransactionTimestamp) / NS_IN_A_MS);
if (delay > gapSinceLastMessage) {
long sleepTime = delay - gapSinceLastMessage;