def main(v_nom, merto_list): result_list = list('') sets = { 'name': 'voltage_header.h', 'howOpen': 'w', 'coding': 'cp1251'} # смещение нуля при обратоной обработке U = 0 Udig_zero, capacity = app_reuse_code.calc_coeff_transform(U, metroChannal) # Записать в файл шаблон result_list = list('') result_list.append('#define kZeroVoltageCorrect '+Udig_zero+" ; "+str(U)+" V; bits - "+capacity) for name in merto_list: code, capacity = app_reuse_code.calc_coeff_transform(merto_list[name], metroChannal) result_list.append( 'constant k'+name+' = '+code+" ; "+str(merto_list[name])+" V / "+capacity+" bits") # Порог U_nom = v_nom U_min = U_nom-U_nom/100.0*15 U_max = U_nom+U_nom/100.0*13 print U_min, U_max U_min_d, capacity = app_reuse_code.calc_coeff_transform(U_min, thresholdChannal_min) U_max_d, capacity = app_reuse_code.calc_coeff_transform(U_max, thresholdChannal_max) print U_min_d, U_max_d result_list.append('#define VOLTAGE_THR_MIN '+U_min_d+" ; -15% V bits - "+capacity) result_list.append('#define VOLTAGE_THR_MAX '+U_max_d+" ; +13% V bits - "+capacity+'\n') # Находим коэффициент пересчета U = U_nom Udig_value, capacity = app_reuse_code.calc_coeff_transform(U, thresholdChannal_min) print Udig_value U = 42.0 Udig_value, capacity = app_reuse_code.calc_coeff_transform(U, metroChannal) #result_list.append('#define TEST_MOCK_VOLTAGE '+Udig_value+"\t;"+str(U)+" V; bits - "+capacity) realCodeVoltage = tc.hex_word_to_uint(Udig_value)-tc.hex_word_to_uint(Udig_zero) k = U/realCodeVoltage wprintValue('K code to V :', k) result_list.append(';const double kTAOneVoltagePSFactor_ = '+str(k)+';') k *= 10 ieee, mchip = f32c.pack_f32_into_i32(k, None) mchip = ', 0x'.join(mchip.split(' ')) mchip = '0x'+mchip[:-4] result_list.append('; mchip: '+mchip+' ; K*10 = '+str(k)) # Закрываем запись iow.list2file(sets=sets, lst=result_list)
def main(list_of_currents, list_metro): metro_channal, threshold_channal = _init_sensors() result_list = list('') # смещение нуля при обратной обработке result_list.append('#ifdef HALL_SENSORS') # Коррекция нуля delta_zero_code, capacity = app_reuse_code.calc_coeff_transform( 0, metro_channal) result_list.append(' constant kZeroHallCorrect = '+delta_zero_code+ " ; Metro: "+str(0)+" A / "+capacity+' bit') # Теперь можно говорить об измеренных значениях for I in list_metro: src_code, capacity = app_reuse_code.calc_coeff_transform( list_metro[I], metro_channal) real_current_code = tc.hex_word_to_uint(src_code)-tc.hex_word_to_uint(delta_zero_code) print 'real_current_code', real_current_code print 'delta_zero_code', delta_zero_code print 'src_code', src_code result_list.append(' constant k'+I+' = 0x'+tc.byte4hex(int(real_current_code))+ " ; Metro: "+str(list_metro[I])+" A / "+capacity+' bit') # Пороги for I in list_of_currents : wprintValue('\nI,A : ', I) Udig, capacity = app_reuse_code.calc_coeff_transform(I, threshold_channal) eprintValue('Voltage code', Udig) result_list.append(' constant kCurrentThreshold = '+Udig+ " ; Threshes: "+str(I)+" A / "+capacity+' bit') # Находим коэффициент пересчета delta_zero_code, capacity = app_reuse_code.calc_coeff_transform(0, metro_channal) I = 10 Udig_value, capacity = app_reuse_code.calc_coeff_transform(I, metro_channal) realCodeCurrent = tc.hex_word_to_uint(Udig_value)-tc.hex_word_to_uint(delta_zero_code) k = I/realCodeCurrent wprintValue('K code to A :', k) result_list.append(';const double kTAOneCurrentFactor_ = '+str(k)+';') k *= 10 # 3.3 -> 33 для упаковки ieee, mchip = f32c.pack_f32_into_i32(k, None) mchip = ', 0x'.join(mchip.split(' ')) mchip = '0x'+mchip[:-4] result_list.append('; mchip: '+mchip+' ; K = '+str(k)) # Закрываем запись result_list.append('#endif ;HALL_SENSOR\n') iow.list2file(sets=sets, lst=result_list) print 'Threshes write to file '+_fname