In [5]:
import struct
import binascii
f = open('cf-nf_data.txt', 'r')
lines = ''.join(f.readlines())
lines = lines.split('AAFF')
def adc_int(hex_value):
int_value = int(hex_value, 16)
if int_value > 0x7FFFFFFF:
int_value -= 0x100000000
return str(int_value)
for line in lines:
if len(line) != 244:
continue
line = [line[i-2:i] for i in range(len(line), 0, -2)]
paged = line[-64:]
critical = line[:58]
debug_seq_cnt = ''.join(critical[0:2])
serial_data = ''.join(critical[2:5])
backplane_type = critical[5]
controller_status = ''.join(critical[6:8])
seu_count = critical[8]
converter_output = critical[9]
converter_input = ''.join(critical[10:12])
dim_log_index = ''.join(critical[12:14])
adc_log_index = ''.join(critical[14:16])
version = ''.join(critical[16:18])
cycle_period = ''.join(critical[18:22])
dim_a_1_ana_3 = ''.join(critical[22:24])
dim_a_1_ana_2 = ''.join(critical[24:26])
dim_a_1_ana_1 = ''.join(critical[26:28])
dim_a_1_ana_0 = ''.join(critical[28:30])
dim_a_trig_unl = ''.join(critical[30:32])
dim_a_trig_lat = ''.join(critical[32:34])
i_b_10_19 = ''.join(critical[34:38])
i_b_0_9 = ''.join(critical[38:42])
i_a_10_19 = ''.join(critical[42:46])
i_a_0_9 = ''.join(critical[46:50])
v_meas_10_19 = ''.join(critical[50:54])
v_meas_0_9 = ''.join(critical[54:58])
print 'V_MEAS_0_9:\t' + adc_int(v_meas_0_9) + ' (int)'
print 'V_MEAS_10_19:\t' + adc_int(v_meas_10_19) + ' (int)'
print 'I_A_0_9:\t' + adc_int(i_a_0_9) + ' (int)'
print 'I_A_10_19:\t' + adc_int(i_a_10_19) + ' (int)'
print 'I_B_0_9:\t' + adc_int(i_b_0_9) + ' (int)'
print 'I_B_10_19:\t' + adc_int(i_b_10_19) + ' (int)'
print 'DIM_A_TRIG_LAT:\t' + bin(int(dim_a_trig_lat, 16))[2:].zfill(16) + ' (bin)'
print 'DIM_A_TRIG_UNL:\t' + bin(int(dim_a_trig_unl, 16))[2:].zfill(16) + ' (bin)'
print 'DIM_A_1_ANA_0:\t' + str(int(dim_a_1_ana_0, 16)) + ' (int)'
print 'DIM_A_1_ANA_1:\t' + str(int(dim_a_1_ana_1, 16)) + ' (int)'
print 'DIM_A_1_ANA_2:\t' + str(int(dim_a_1_ana_2, 16)) + ' (int)'
print 'DIM_A_1_ANA_3:\t' + str(int(dim_a_1_ana_3, 16)) + ' (int)'
print 'CYCLE_PERIOD:\t' + str(int(cycle_period, 16)) + ' (int)'
print 'VERSION:\t' + version + ' (hex)'
print 'ADC_LOG_INDEX:\t' + str(int(adc_log_index, 16)) + ' (int)'
print 'DIM_LOG_INDEX:\t' + str(int(dim_log_index, 16)) + ' (int)'
print 'CONVERTER_IN:\t' + bin(int(converter_input, 16))[2:].zfill(16) + ' (bin)'
print 'CONVERTER_OUT:\t' + bin(int(converter_output, 16))[2:].zfill(8) + ' (bin)'
print 'SEU_COUNT:\t' + str(int(seu_count, 16)) + ' (int)'
print 'FGC_STATUS:\t' + bin(int(controller_status, 16))[2:].zfill(16) + ' (bin)'
print 'BACKPLANE_TYPE:\t' + bin(int(backplane_type, 16))[2:].zfill(8) + ' (bin)'
print 'SERIAL_DATA:\t' + serial_data + ' (hex)'
print 'DEBUG_SEQUENCE:\t' + str(int(debug_seq_cnt, 16)) + ' (int)'
print '--------------------------------------------------------------------------------'
break
In [ ]: