Closed ZLLentz closed 4 years ago
Thanks for the report! Let me know if you need help on the fix.
Vague approach will be to see if I can get POINTER
objects to be their own thing instead of becoming the type they are pointing to. As far as EPICS is concerned all of these are just representations of memory addresses, so they are an int type (of size that depends on the architecture)
Looks like the information is clearly present in the symbol:
<Symbol>
<Name>PRG_AT2L0_SOLID.fbAT2L0_axes</Name>
<BitSize>608</BitSize>
<BaseType PointerTo="1" Namespace="lcls_twincat_motion">DUT_MotionStage</BaseType>
<ArrayInfo>
<LBound>0</LBound>
<Elements>19</Elements>
</ArrayInfo>
<BitOffs>7219456</BitOffs>
</Symbol>
The approach I'm actually going to pursue is to add a property that tells us if a symbol is a pointer or not, mirroring the PointerTo
attribute in the xml. Then, in the st.cmd.template
jinja we would skip over motors that are pointers.
Desired behavior is to skip these kinds of objects. This one specifically is
ARRAY [0..18] OF POINTER TO DUT_MotionStage
. I'm happy to work on this tomorrow, just documenting for now.From the bleeding edge LFE motion PLC: