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;