Index: leahi_dialin/utils/abstract_classes.py =================================================================== diff -u -r78b7d4b47c77f390fdb0c796e4861cc9abb343fd -r87ffed5716c48332d6dc3c5f5a80660614d813c0 --- leahi_dialin/utils/abstract_classes.py (.../abstract_classes.py) (revision 78b7d4b47c77f390fdb0c796e4861cc9abb343fd) +++ leahi_dialin/utils/abstract_classes.py (.../abstract_classes.py) (revision 87ffed5716c48332d6dc3c5f5a80660614d813c0) @@ -135,6 +135,7 @@ # Content of the decode list key_1 = decode_details[0] key_2 = decode_details[1] if len(decode_details) >= 3 else None + key_3 = decode_details[2] if len(decode_details) >= 4 else None datatype: DataTypes = decode_details[-1] end_pos = start_pos + datatype.size() @@ -154,7 +155,15 @@ if len(decode_details) == 2: dict_to_update[key_1] = value elif len(decode_details) == 3: + 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: + if key_1 not in dict_to_update: + dict_to_update[key_1] = {} + if key_2 not in dict_to_update[key_1]: + dict_to_update[key_1][key_2] = {} + dict_to_update[key_1][key_2][key_3] = value start_pos = end_pos if debug: print('Finished cycle\n')