def get_unmapped_parameters(packet, packet_mapping):
"""
Get the UID of parameters that are unused or additionally mapped.
Returns two lists of (uid, positionInPacket)
"""
unresolved = []
additional = []
packet_parameters = packet.get_parameters_as_flattened_list()
position = 0
for parameter, mapping in itertools.zip_longest(packet_parameters,
packet_mapping.parameters):
if parameter is None:
additional.append((mapping.parameter.uid, position))
elif mapping is None:
unresolved.append((parameter.uid, position))
elif parameter.uid != mapping.parameter.uid:
# Found a parameter which is in the structure but not the
# mapping.
unresolved.append((parameter.uid, position))
additional.append((mapping.parameter.uid, position))
position += 1
return unresolved, additional
评论列表
文章目录