The channel layout of a DmxMode in a GDTF file is not trivial to calculate, because each DmxChannel can reference a top-level Geometry which could be inherited from by other GeometryReference elements. The DmxChannel then needs to be repeated for every GeometryReference. Each GeometryReference has its own DMX Break and Offset that dictate the DMX Address of the channels that reference its parent.
The calculation needs to be compared to the GDTF Builder (gdtf-share.com). Our implementation should result in the same layout as the GDTF Builder.
Also, the channel count can then be calculated.
All of this should be added to the GdtfWrapper
TODO:
[x] Update XSD from upstream
[x] Regenerate GDTF sources (should be automatic?)
[x] create data structure for channel layout
[x] DMX Break
[x] DMX Offset
[x] Name
[x] or split name into different parts?
[x] what about originalName?
[x] info on controlled attribute?
[x] coarse/fine/ultrafine/... -> should be something like 1/3, 2/3, 3/3, or maybe detail: 1, 2, 3, or byte 1, 2, 3, or byte 1/2, 2/2, or byte 1 of 2, 2 of 2
The channel layout of a
DmxMode
in a GDTF file is not trivial to calculate, because eachDmxChannel
can reference a top-level Geometry which could be inherited from by otherGeometryReference
elements. TheDmxChannel
then needs to be repeated for everyGeometryReference
. EachGeometryReference
has its own DMX Break and Offset that dictate the DMX Address of the channels that reference its parent.The calculation needs to be compared to the GDTF Builder (gdtf-share.com). Our implementation should result in the same layout as the GDTF Builder.
Also, the channel count can then be calculated.
All of this should be added to the
GdtfWrapper
TODO:
Break
in the GeometryReferenceBreak
in GeometryReference from the top