xp7777 opened a new issue, #1452:
URL: https://github.com/apache/plc4x/issues/1452

   ### What happened?
   
   Hello Sir,
   
   I hope this email finds you well. I am writing to seek assistance regarding 
an issue I encountered while using PLC4X version 0.12.0. Following the examples 
provided on the official website, I attempted to read the address %I0.2:BOOL. 
However, I encountered an error. Could you please advise on the possible 
reasons for this error?
   
   Here is the code:
   package com.yxp;
   
   import org.apache.plc4x.java.api.PlcConnection;
   import org.apache.plc4x.java.api.PlcDriverManager;
   import org.apache.plc4x.java.api.messages.PlcReadRequest;
   import org.apache.plc4x.java.api.messages.PlcReadResponse;
   import org.slf4j.Logger;
   import org.slf4j.LoggerFactory;
   
   
   import java.util.concurrent.TimeUnit;
   
   public class plc {
   
       private static final Logger logger = LoggerFactory.getLogger(plc.class);
   
   
       private static void read() {
           String connectionString = "s7://192.168.1.181";
   
           try (PlcConnection plcConnection = 
PlcDriverManager.getDefault().getConnectionManager().getConnection(connectionString))
 {
   
               // Check if this connection support reading of data.
               if (!plcConnection.getMetadata().isReadSupported()) {
                   logger.error("This connection doesn't support reading.");
                   return;
               }
   
   
   
               // Create a new read request:
   // - Give the single item requested an alias name
               PlcReadRequest.Builder builder = 
plcConnection.readRequestBuilder();
   
               builder.addTagAddress("value1","%I0.2:BOOL");
   
               PlcReadRequest readRequest = builder.build();
               PlcReadResponse response  = readRequest.execute().get(5000, 
TimeUnit.MILLISECONDS);
               System.out.println( 
response.getTagNames()+"---"+response.getResponseCode(response.getTagNames().toString()));
   
           }catch (Exception e){
               e.printStackTrace();
   
           }
   
       }
   
       public static void main(String[] args) {
           read();
       }
   }
   
   Error message as follows:
   io.netty.handler.codec.DecoderException: 
io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce 
at least one message.
        at 
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98)
        at 
io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at 
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
        at 
io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
        at 
io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at 
io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at 
org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:145)
        at 
org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode(S7HMuxImpl.java:1)
        at 
io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81)
        at 
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)
        at 
io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
        at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:834)
   Caused by: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 
must produce at least one message.
        at 
io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:99)
        at 
io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868)
        at 
io.netty.handler.logging.LoggingHandler.write(LoggingHandler.java:288)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868)
        at 
io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113)
        at 
io.netty.handler.codec.ByteToMessageCodec.write(ByteToMessageCodec.java:108)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868)
        at 
io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113)
        at 
io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868)
        at 
io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113)
        at 
io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956)
        at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982)
        at 
io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950)
        at 
io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000)
        at 
io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025)
        at 
io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306)
        at 
org.apache.plc4x.java.spi.internal.DefaultConversationContext.sendToWire(DefaultConversationContext.java:70)
        at 
org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:107)
        at 
org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle(DefaultSendRequestContext.java:1)
        at 
org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$8(S7ProtocolLogic.java:231)
        at 
java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65)
        at 
org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:183)
        at 
io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81)
        at 
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)
        ... 40 more
   
   org.apache.plc4x.java.api.exceptions.PlcInvalidTagException: [value1] invalid
        at 
org.apache.plc4x.java.spi.messages.DefaultPlcReadResponse.getResponseCode(DefaultPlcReadResponse.java:100)
        at com.yxp.plc.read(plc.java:39)
        at com.yxp.plc.main(plc.java:49)
   
   Looking forward to your guidance and support.
   
   Could you please advise on the possible reasons for this error and provide 
guidance on how to resolve it?
   
   Thank you for your assistance.
   
   Best regards
   
   ### Version
   
   0.12.0
   
   ### Programming Languages
   
   - [ ] plc4j
   - [ ] plc4go
   - [ ] plc4c
   - [ ] plc4net
   
   ### Protocols
   
   - [ ] AB-Ethernet
   - [ ] ADS /AMS
   - [ ] BACnet/IP
   - [ ] CANopen
   - [ ] DeltaV
   - [ ] DF1
   - [ ] EtherNet/IP
   - [ ] Firmata
   - [ ] KNXnet/IP
   - [ ] Modbus
   - [ ] OPC-UA
   - [X] S7


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@plc4x.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to