Good evening,
I am trying parse TM packets with payloads of variable length and started experimenting with algorithm definitions. The xtce-file containing the snippet below does not parse as the sizeInBits-attribute of a BinaryParameterType apparently only suports fixed values.
- Does yamcs supports this? What would be the proper way of doing this?
- I also realized that the derived parameters "ccsds_packet_total_bits" and "payload_bits" are shown in the section telemetry->parameters of the webgui. They seems however never to be updated (this is, of course, if I make the BinaryParameterType 'payload_t' of fixed size and the xtce-file parses)
Many thanks
Tilman
------ snippet from xtce-file
<SequenceContainer name="response">
<SizeInBits>
<SizeInBitsFromParameterRef parameterRef="ccsds_packet_total_bits"/>
</SizeInBits>
<EntryList>
<ParameterRefEntry parameterRef="payload" >
<LocationInContainerInBits>48</LocationInContainerInBits>
</ParameterRefEntry>
</EntryList>
...
</SequenceContainer>
<ParameterSet>
<Parameter name="payload" parameterTypeRef="payload_t" />
<Parameter name="ccsds_packet_total_bits" parameterTypeRef="uint32_t">
<DerivedParameter updateType="ON_CHANGE">
<ParameterProperties dataSource="DERIVED"/>
<InputSet>
<ParameterRef parameterRef="/ERMINAZ/ccsds_packet_length"/>
</InputSet>
<Algorithm text="(ccsds_packet_length + 1 + 6) * 8"/>
</DerivedParameter>
</Parameter>
<Parameter name="payload_bits" parameterTypeRef="uint32_t">
<DerivedParameter updateType="ON_CHANGE">
<ParameterProperties dataSource="DERIVED"/>
<InputSet>
<ParameterRef parameterRef="/ERMINAZ/ccsds_packet_length"/>
</InputSet>
<Algorithm text="(ccsds_packet_length + 1 ) * 8"/>
</DerivedParameter>
</Parameter>
</ParameterSet>
<ParameterTypeSet>
<BinaryParameterType name="payload_t" shortDescription="Bit Field">
<UnitSet />
<BinaryDataEncoding>
<SizeInBits>
<SizeInBitsFromParameterRef parameterRef="payload_bits"/>
</SizeInBits>
</BinaryDataEncoding>
</BinaryParameterType>
</ParameterTypeSet>