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 > >