Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from Agregates import message_aggregates
- #from Agregates import datapartsBitlengths
- #from Agregates import datapartsTypes
- from Agregates import arrays_aggregates
- from . import decode_fragment
- from . import array_decoder
- class Type_switch():
- def switch_type(msg_type, message):
- #### sprawdzenie czy typ 24_A czy typ 24_B
- if msg_type == '24':
- check_24 = int(message[38:40])
- if check_24 == 0:
- msg_type = '24_A'
- if check_24 == 1:
- msg_type = '24_B'
- field_count = len(message_aggregates.datapartsBitlengths[msg_type])
- i = 0
- position = 0
- while i < field_count:
- field_bits = message_aggregates.datapartsBitlengths[msg_type][i]
- field_type = message_aggregates.datapartsTypes[msg_type][i]
- fragment = message[position:(field_bits + position)]
- type_dictionary = {
- 'u': decode_fragment.decode_u_int(fragment),
- 'e': decode_fragment.decode_u_int(fragment),
- 'b': decode_fragment.decode_u_int(fragment),
- 'x': "empty",
- 't': decode_fragment.decode_t(fragment),
- 's': decode_fragment.decode_s_int(fragment, field_bits),
- 'I1': decode_fragment.decode_IX(fragment, field_bits, 1),
- 'I2': decode_fragment.decode_IX(fragment, field_bits, 2),
- 'I3': decode_fragment.decode_IX(fragment, field_bits, 3),
- 'I4': decode_fragment.decode_IX(fragment, field_bits, 4),
- 'U1': decode_fragment.decode_UX(fragment, 1),
- 'U2': decode_fragment.decode_UX(fragment, 2),
- 'd': message[position:(field_bits + position)]
- }
- dataParts = []
- dataParts[i] = type_dictionary[field_type]
- position += field_bits
- i += 1
- aggregates_dictionary = {
- '1': message_aggregates.messageType_1,
- '2': message_aggregates.messageType_2,
- '3': message_aggregates.messageType_3,
- '4': message_aggregates.messageType_4,
- '5': message_aggregates.messageType_5,
- '6_1': message_aggregates.messageType_6_1,
- '6_2': message_aggregates.messageType_6_2,
- '6_3': message_aggregates.messageType_6_3,
- '6_4': message_aggregates.messageType_6_4,
- '6_5': message_aggregates.messageType_6_5,
- '6_6': message_aggregates.messageType_6_6,
- '6_7': message_aggregates.messageType_6_7,
- '6_8': message_aggregates.messageType_6_8,
- '6_9': message_aggregates.messageType_6_9,
- '6_10': message_aggregates.messageType_6_10,
- '6_11': message_aggregates.messageType_6_11,
- '6_12': message_aggregates.messageType_6_12,
- '6_13': message_aggregates.messageType_6_13,
- '6_14': message_aggregates.messageType_6_14,
- '6_15': message_aggregates.messageType_6_15,
- '7': message_aggregates.messageType_7,
- '8_1': message_aggregates.messageType_8_1,
- '8_2': message_aggregates.messageType_8_2,
- '8_3': message_aggregates.messageType_8_3,
- '8_4': message_aggregates.messageType_8_4,
- '8_5': message_aggregates.messageType_8_5,
- '8_6_1': message_aggregates.messageType_8_6_1,
- '8_6_2': message_aggregates.messageType_8_6_2,
- '8_7': message_aggregates.messageType_8_7,
- '8_8': message_aggregates.messageType_8_8,
- '8_9': message_aggregates.messageType_8_9,
- '8_10': message_aggregates.messageType_8_10,
- '8_11': message_aggregates.messageType_8_11,
- '8_12': message_aggregates.messageType_8_12,
- '8_13': message_aggregates.messageType_8_13,
- '8_14': message_aggregates.messageType_8_14,
- '8_15': message_aggregates.messageType_8_15,
- '8_16': message_aggregates.messageType_8_16,
- '9': message_aggregates.messageType_9,
- '10': message_aggregates.messageType_10,
- '11': message_aggregates.messageType_4,
- '12': message_aggregates.messageType_12,
- '13': message_aggregates.messageType_13,
- '14': message_aggregates.messageType_14,
- '15': message_aggregates.messageType_15,
- '16': message_aggregates.messageType_16,
- '17': message_aggregates.messageType_17,
- '18': message_aggregates.messageType_18,
- '19': message_aggregates.messageType_19,
- '20': message_aggregates.messageType_20,
- '21': message_aggregates.messageType_21,
- '22': message_aggregates.messageType_22,
- '23': message_aggregates.messageType_23,
- '24_A': message_aggregates.messageType_24_A,
- '24_B': message_aggregates.messageType_24_B,
- '25': message_aggregates.messageType_25,
- '26': message_aggregates.messageType_26,
- '27': message_aggregates.messageType_27
- }
- if msg_type == '6_2' | '6_7' | '6_8' | '6_9' | '6_11' | '7' | '8_4' | '8_7' | '8_9' | '8_10' | '8_15' | '20':
- Array = []
- Array = array_decoder.switch_first_array(msg_type, message[field_bits + position:])
- msg = aggregates_dictionary[msg_type(dataParts, Array)]
- else:
- msg = aggregates_dictionary[msg_type(dataParts)] # ??????
- return msg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement