Index: leahi_dialin/utils/abstract_classes.py =================================================================== diff -u -r0593f17d4a3a35989edbc1a576da868b5e971a0b -r41805cd3ccca131f8e592b0777f90ab587d2be3f --- leahi_dialin/utils/abstract_classes.py (.../abstract_classes.py) (revision 0593f17d4a3a35989edbc1a576da868b5e971a0b) +++ leahi_dialin/utils/abstract_classes.py (.../abstract_classes.py) (revision 41805cd3ccca131f8e592b0777f90ab587d2be3f) @@ -157,9 +157,11 @@ if isinstance(decode_details[-1], int): length = decode_details[-1] datatype: DataTypes = decode_details[-2] + key_list_length = len(decode_details) - 2 else: length = 1 datatype: DataTypes = decode_details[-1] + key_list_length = len(decode_details) - 1 end_pos = start_pos + datatype.size() @@ -187,13 +189,14 @@ if datatype in [DataTypes.BOOL, DataTypes.BOOL_U08]: value = True if value == 1 else False # Save the value into the Dictionary - if len(decode_details) == 2: + + if key_list_length == 1: dict_to_update[key_1] = value - elif len(decode_details) == 3: + elif key_list_length == 2: if key_1 not in dict_to_update: dict_to_update[key_1] = {} dict_to_update[key_1][key_2] = value - elif len(decode_details) == 4: + elif key_list_length == 3: if key_1 not in dict_to_update: dict_to_update[key_1] = {} if key_2 not in dict_to_update[key_1]: