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