Esempio n. 1
0
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)
Esempio n. 2
0
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