Hi everyone,

I have a problem with reconstructing messages for the S7 driver.

In the code that I attach I need to retrieve the data returned by the
Payload, in order to complete the response of the driver.

I have already tried all the recommendations that can be found on
StackOverflow, but I have not been able to retrieve that data.

Everything remains in the closure.

Thanking you for your support

    context.sendRequest(request)
        .onTimeout(e -> {
            logger.warn("Timeout during Connection establishing, closing
channel...");
            context.getChannel().close();
        })
        .expectResponse(TPKTPacket.class, REQUEST_TIMEOUT)
        .check(p -> p.getPayload() instanceof COTPPacketData)
        .unwrap(p -> ((COTPPacketData) p.getPayload()))
        .check(p -> p.getPayload() instanceof S7MessageUserData)
        .unwrap(p -> ((S7MessageUserData) p.getPayload()))
        .check(p -> p.getPayload() instanceof S7PayloadUserData)
        .handle(messageUserData -> {
            //TODO: How do I get the received data from here?
            //      Sure, I check everything on StackOverflow
            logger.debug("Got reassembled packed");

            S7PayloadUserData payloadUserData = (S7PayloadUserData)
messageUserData.getPayload();
            S7PayloadUserDataItemCpuFunctionReadSzlResponse reassembledItem
= (S7PayloadUserDataItemCpuFunctionReadSzlResponse)
payloadUserData.getItems()[0];


*            //I need to retrieve the data from the lambda
hmMessageUserData.put(sequenceNumber, messageUserData);*

            S7ParameterUserData parameters = (S7ParameterUserData)
messageUserData.getParameter();
            S7ParameterUserDataItemCPUFunctions parameteritem =
(S7ParameterUserDataItemCPUFunctions) parameters.getItems()[0];
            if (parameteritem.getLastDataUnit() == 1)
reassembledMessage(sequenceNumber,plcValues);
        });

-- 
*CEOS Automatización, C.A.*
*GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,*
*PISO 1, OFICINA 2, AV. RAUL LEONI, SECTOR GUAMACHITO,*

*FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI*
*Ing. César García*

*Cel: +58 414-760.98.95*

*Hotline Técnica SIEMENS: 0800 1005080*

*Email: [email protected]
<[email protected]>*

Reply via email to