In fact, when talking about modbus driver the question is rather if there is 
any code that was not changed between 0.6.0 and 0.7.0 : )

But we should have a closer look here.

Julian

Am 07.06.20, 18:55 schrieb "venki hadoop" <hadoopons...@gmail.com>:

    Hi, after updating to 0.7 version am always getting value 0. Did you made
    any code modifications after version update?

    On Tuesday, June 2, 2020, udeho <ud...@student.kit.edu> wrote:

    > Hi,
    >
    > This was a problem with my Maven configuration. I'm sorry, I'm very
    > inexperienced with Maven.
    > Anyway, reading values from the holding register now works fine with
    > drivers of version 0.7.0.
    >
    > Best
    > Tim
    >
    > -----Original Message-----
    > From: Christofer Dutz <christofer.d...@c-ware.de>
    > Sent: Montag, 1. Juni 2020 23:27
    > To: udeho <ud...@student.kit.edu>; dev@plc4x.apache.org
    > Subject: Re: [Modbus] Querying Values from Holding Register
    >
    > Hi,
    >
    > Are you perhaps mixing different versions? The api and driver versions
    > should match.
    >
    > Chris
    >
    > ________________________________
    > Von: udeho <ud...@student.kit.edu>
    > Gesendet: Montag, 1. Juni 2020 14:58
    > An: dev@plc4x.apache.org <dev@plc4x.apache.org>
    > Betreff: RE: [Modbus] Querying Values from Holding Register
    >
    > Hi,
    >
    > I've just tried to do the same as below with the newly released 0.7.0
    > version.
    > Unfortunately, I get the following errors:
    >
    > [main] INFO org.apache.plc4x.java.PlcDriverManager - Instantiating new
    > PLC Driver Manager with class loader jdk.internal.loader.
    > ClassLoaders$AppClassLoader@129a8472
    > [main] INFO org.apache.plc4x.java.PlcDriverManager - Registering
    > available drivers...
    > Exception in thread "main" java.lang.NoClassDefFoundError:
    > org/apache/plc4x/java/spi/connection/GeneratedDriverBase
    >         at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    >         at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
    >         at java.base/java.security.SecureClassLoader.defineClass(Unknown
    > Source)
    >         at 
java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown
    > Source)
    >         at java.base/jdk.internal.loader.BuiltinClassLoader.
    > findClassOnClassPathOrNull(Unknown Source)
    >         at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown
    > Source)
    >         at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown
    > Source)
    >         at 
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown
    > Source)
    >         at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    >         at java.base/java.lang.Class.forName0(Native Method)
    >         at java.base/java.lang.Class.forName(Unknown Source)
    >         at 
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(Unknown
    > Source)
    >         at 
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(Unknown
    > Source)
    >         at 
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(Unknown
    > Source)
    >         at java.base/java.util.ServiceLoader$2.hasNext(Unknown Source)
    >         at java.base/java.util.ServiceLoader$3.hasNext(Unknown Source)
    >         at org.apache.plc4x.java.PlcDriverManager.<init>(
    > PlcDriverManager.java:53)
    >         at org.apache.plc4x.java.PlcDriverManager.<init>(
    > PlcDriverManager.java:44)
    >         at modbus.playground.main(playground.java:108)
    > Caused by: java.lang.ClassNotFoundException: org.apache.plc4x.java.spi.
    > connection.GeneratedDriverBase
    >         at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown
    > Source)
    >         at 
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown
    > Source)
    >         at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    >         ... 19 more
    >
    > I added the new version as a dependency in Maven, but in the pom.xml  is
    > also stated "Missing artifact org.apache.plc4x:plc4j-driver-
    > modbus:jar:0.7.0".
    > Used dependency in maven:
    >         <dependency>
    >                  <groupId>org.apache.plc4x</groupId>
    >                  <artifactId>plc4j-driver-modbus</artifactId>
    >                  <version>0.7.0</version>
    >         </dependency>
    >
    > Best
    > Tim
    >
    > -----Original Message-----
    > From: Christofer Dutz <christofer.d...@c-ware.de>
    > Sent: Mittwoch, 20. Mai 2020 11:28
    > To: dev@plc4x.apache.org
    > Subject: Re: [Modbus] Querying Values from Holding Register
    >
    > Hi Tim,
    >
    > I guess you are using one of the "old generation" drivers (As you say it's
    > working and the address seems to imply that).
    > Perhaps you should either try the version 0.8.0-SNAPSHOT or wait for 2
    > more days till we release the 0.7.0 version.
    >
    > In the 0.7.0 version we have completely deleted all existing drivers and
    > replaced them by new ones.
    > While at it I took the liberty of making the Modbus a little more robust.
    >
    > So it would be great if you could give us feedback if your problem goes
    > away magically when updating to these driver versions.
    >
    > Chris
    >
    >
    >
    > Am 20.05.20, 10:24 schrieb "udeho" <ud...@student.kit.edu>:
    >
    >     Hi all,
    >
    >     I have tried to query values from the holding register of a simulated
    > modbus device and process them as integer using the following code:
    >     // read integer / holding register
    >                         PlcDriverManager driverManager = new
    > PlcDriverManager();
    >                         String conString = "modbus:tcp://localhost";
    >                         PlcConnection plcCon = 
driverManager.getConnection(
    > conString);
    >                         PlcReadRequest.Builder builder =
    > plcCon.readRequestBuilder();
    >                         builder.addItem("value", 
"readholdingregisters:1");
    >                         PlcReadRequest readRequest = builder.build();
    >                         PlcReadResponse resp = 
readRequest.execute().get();
    >
    >     This runs well, but when I try to handle the result as integer (using
    > resp.getInteger("value")) I always get null as result no matter what's in
    > the register.
    >     For Boolean values in the coil this works without any problem (using
    > getBoolean() of course).
    >     Another approach I tried is using the getAllByteArrays("value");
    > command, but I haven't found a way to get the returned collection of byte
    > arrays into integers.
    >
    >     Can you give me an indication of what my problem may be or what I'm
    > doing wrong?
    >
    >     Thank you very much in advance!
    >
    >     Best
    >     Tim
    >
    >

Reply via email to