+1, If there's a way to get the driver's context, something like
"PlcDriver.getContext()", and pass pipe information, interesting.

El sáb, 4 feb 2023 a las 6:18, Christofer Dutz (<christofer.d...@c-ware.de>)
escribió:

> Hi all,
>
> recently I have been working on supporting dynamic tags like “_itemCount”,
> “_curItem” and “_lastItem” in array elements.
>
> In java I used ThreadLocals for this as it felt like a Java-Native way and
> it wouldn’t blow up the signatures of our Parser, Serializer and
> GetLengthInXYZ methods.
>
> Now when looking for something similar in Go, it seems in such cases
> Contexts are used. These are sort of like a HashMap wrapped with little
> util methods. In this HashMap you pass along values that are “in context” …
> if you change the context, a copy of the old context is created and then
> the updated/added values are updated/added to the HashMap.
>
> So, in an array I add the additional information to the existing one by:
>
> arrayCtx := spiContext.CreateArrayContext(ctx, int(_numItems),
> int(_curItem))
>
>
> and then simply pass in the „arrayContext”. And for accessing it I simply
> for this:
>
> spiContext.GetLastItemFromContext(ctx)
>
>
>
> Admittedly I’m not a big fan of crating copies of the full context every
> time, I would prefer to be able to push to sort of a context stack, but I
> guess that’s the way things work in Go.
>
>
>
> When I wanted to add the functionality of Java and Go to PLC4C I was a bit
> stuck, as neither concept really existed.
>
>
>
> However thinking a bit more about it, adding the concept of Contexts to C
> was actually quite simple.
>
>
>
> Now that got me thinking:
>
> Shouldn’t we implement the same pattern for Java? It should be easy to
> implement.
>
>
>
> And while I was thinking, I even thought: Shouldn’t we extend this idea
> and also get the ReadBuffer, WriteBuffer, the Encoding, the ByteOrder and
> anything we’re currently passing along with “WithXYZOption” var-args, into
> these Contexts and simply pass along one Context object?
>
> I think this would clean up the code quite a bit.
>
>
>
> What do you think?
>
>
>
> Chris
>
>
>
>
>
>

-- 
*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: support.aan.automat...@siemens.com
<support.aan.automat...@siemens.com>*

Reply via email to