Advertisement
martaczaska

switch_type

May 21st, 2021
984
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.04 KB | None | 0 0
  1. from Agregates import message_aggregates
  2. #from Agregates import datapartsBitlengths
  3. #from Agregates import datapartsTypes
  4. from Agregates import arrays_aggregates
  5. from . import decode_fragment
  6. from . import array_decoder
  7.  
  8. class Type_switch():
  9.    
  10.     def switch_type(msg_type, message):
  11.  
  12.         #### sprawdzenie czy typ 24_A czy typ 24_B
  13.         if msg_type == '24':
  14.             check_24 = int(message[38:40])
  15.             if check_24 == 0:
  16.                 msg_type = '24_A'
  17.             if check_24 == 1:  
  18.                 msg_type = '24_B'
  19.  
  20.         field_count = len(message_aggregates.datapartsBitlengths[msg_type])
  21.         i = 0
  22.         position = 0
  23.         while i < field_count:
  24.             field_bits = message_aggregates.datapartsBitlengths[msg_type][i]
  25.             field_type = message_aggregates.datapartsTypes[msg_type][i]
  26.             fragment = message[position:(field_bits + position)]
  27.  
  28.             type_dictionary = {
  29.                 'u': decode_fragment.decode_u_int(fragment),
  30.                 'e': decode_fragment.decode_u_int(fragment),
  31.                 'b': decode_fragment.decode_u_int(fragment),
  32.                 'x': "empty",
  33.                 't': decode_fragment.decode_t(fragment),
  34.                 's': decode_fragment.decode_s_int(fragment, field_bits),
  35.                 'I1': decode_fragment.decode_IX(fragment, field_bits, 1),
  36.                 'I2': decode_fragment.decode_IX(fragment, field_bits, 2),
  37.                 'I3': decode_fragment.decode_IX(fragment, field_bits, 3),
  38.                 'I4': decode_fragment.decode_IX(fragment, field_bits, 4),
  39.                 'U1': decode_fragment.decode_UX(fragment, 1),
  40.                 'U2': decode_fragment.decode_UX(fragment, 2),
  41.                 'd': message[position:(field_bits + position)]      
  42.             }
  43.             dataParts = []
  44.             dataParts[i] = type_dictionary[field_type]
  45.             position += field_bits
  46.             i += 1
  47.  
  48.         aggregates_dictionary = {
  49.                     '1': message_aggregates.messageType_1,
  50.                     '2': message_aggregates.messageType_2,
  51.                     '3': message_aggregates.messageType_3,
  52.                     '4': message_aggregates.messageType_4,
  53.                     '5': message_aggregates.messageType_5,
  54.                     '6_1': message_aggregates.messageType_6_1,
  55.                     '6_2': message_aggregates.messageType_6_2,
  56.                     '6_3': message_aggregates.messageType_6_3,
  57.                     '6_4': message_aggregates.messageType_6_4,
  58.                     '6_5': message_aggregates.messageType_6_5,
  59.                     '6_6': message_aggregates.messageType_6_6,
  60.                     '6_7': message_aggregates.messageType_6_7,
  61.                     '6_8': message_aggregates.messageType_6_8,
  62.                     '6_9': message_aggregates.messageType_6_9,
  63.                     '6_10': message_aggregates.messageType_6_10,
  64.                     '6_11': message_aggregates.messageType_6_11,
  65.                     '6_12': message_aggregates.messageType_6_12,
  66.                     '6_13': message_aggregates.messageType_6_13,
  67.                     '6_14': message_aggregates.messageType_6_14,
  68.                     '6_15': message_aggregates.messageType_6_15,
  69.                     '7': message_aggregates.messageType_7,
  70.                     '8_1': message_aggregates.messageType_8_1,
  71.                     '8_2': message_aggregates.messageType_8_2,
  72.                     '8_3': message_aggregates.messageType_8_3,
  73.                     '8_4': message_aggregates.messageType_8_4,
  74.                     '8_5': message_aggregates.messageType_8_5,
  75.                     '8_6_1': message_aggregates.messageType_8_6_1,
  76.                     '8_6_2': message_aggregates.messageType_8_6_2,
  77.                     '8_7': message_aggregates.messageType_8_7,
  78.                     '8_8': message_aggregates.messageType_8_8,
  79.                     '8_9': message_aggregates.messageType_8_9,
  80.                     '8_10': message_aggregates.messageType_8_10,
  81.                     '8_11': message_aggregates.messageType_8_11,
  82.                     '8_12': message_aggregates.messageType_8_12,
  83.                     '8_13': message_aggregates.messageType_8_13,
  84.                     '8_14': message_aggregates.messageType_8_14,
  85.                     '8_15': message_aggregates.messageType_8_15,
  86.                     '8_16': message_aggregates.messageType_8_16,
  87.                     '9': message_aggregates.messageType_9,
  88.                     '10': message_aggregates.messageType_10,
  89.                     '11': message_aggregates.messageType_4,
  90.                     '12': message_aggregates.messageType_12,
  91.                     '13': message_aggregates.messageType_13,
  92.                     '14': message_aggregates.messageType_14,
  93.                     '15': message_aggregates.messageType_15,
  94.                     '16': message_aggregates.messageType_16,
  95.                     '17': message_aggregates.messageType_17,
  96.                     '18': message_aggregates.messageType_18,
  97.                     '19': message_aggregates.messageType_19,
  98.                     '20': message_aggregates.messageType_20,
  99.                     '21': message_aggregates.messageType_21,
  100.                     '22': message_aggregates.messageType_22,
  101.                     '23': message_aggregates.messageType_23,
  102.                     '24_A': message_aggregates.messageType_24_A,
  103.                     '24_B': message_aggregates.messageType_24_B,
  104.                     '25': message_aggregates.messageType_25,
  105.                     '26': message_aggregates.messageType_26,
  106.                     '27': message_aggregates.messageType_27
  107.                     }
  108.        
  109.         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':
  110.             Array = []
  111.             Array = array_decoder.switch_first_array(msg_type, message[field_bits + position:])
  112.             msg = aggregates_dictionary[msg_type(dataParts, Array)]
  113.         else:
  114.             msg = aggregates_dictionary[msg_type(dataParts)]     # ??????
  115.  
  116.         return msg
  117.  
  118.        
  119.        
  120.        
  121.          
  122.    
  123.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement