def processInData( inCurve, Hex ): Curve = inCurve Curve = Curve.replace('db',',') Curve = Curve.replace('\t','') Curve = Curve.replace('\r','') Curve = Curve.replace('\n','') Curve = Curve.replace(' ','') # разбиваем на отдельные числа CurveSplit = Curve.split(',') # убираем нулевой детерминатор del CurveSplit[-1] del CurveSplit[0] # Данные идут парами и их четное число xData = list() yData = list() for i in range( len(CurveSplit)/2 ): # если хекс формат, то нужно удалить 0x if Hex: xAt = int( tc.hexByte2uint( CurveSplit[ 2*i ] ) ) yAt = int( tc.hexByte2uint( CurveSplit[ 2*i+1 ])*100/MAX_SPEED ) else : xAt = int( int(CurveSplit[ 2*i ]) ) yAt = int( int(CurveSplit[ 2*i+1 ])*100/MAX_SPEED ) # заполняют xData.append( xAt ) yData.append( yAt ) # % # возвращаем результаты return xData, yData
def rptCureve(xDataSrc, yDataSrc): result = '\tdb ' resultList = list('') # итоговая кривая proc2shim = MAX_SPEED/100.0 for i in range( len(xDataSrc) ): value = int(xDataSrc[ i ]) resultList.append( value ) # читаем проценты и переводим в значения шим value = int( proc2shim*yDataSrc[ i ] ) resultList.append( value ) # % # сформировать строку for i in range( len(resultList) ): at = resultList[i] result += tc.byte2strhex(at) # дополнительное форматирование if (i+1)%12 == 0 : result += '\n\tdb ' else : result += ', ' if (i+1)%4 == 0 : result += ' ' # еще пробел # добавляем конец строки result += '0x00\n' return result
def TxProcessorOK12( data ): for at in range( len( data ) ): msg = tc.byte2hex( ord( data[at] ) ) # фильтруем вывод if at == 5: co.printW( msg ) else : co.printN( msg )
def RxProcessorOK12( data ): for at in range( len( data )-4 ): msg = tc.byte2hex( ord( data[at] ) ) # фильтруем вывод if at < 5: if at == 4: pass #co.printW( msg ) #co.printN ( '\n' ) else : pass #co.printN( msg ) else : # форматирование co.printN( msg ) if (at-4)%13 == 0 and (at-4) < 14: co.printN ( '\nRx >> ' )
Udig_zero, capacity = calcCoeffTransf( U, metroChannal ) # Записать в файл шаблон lstForWrite = list('') lstForWrite.append('#define ZERO_VOLTAGE_CORRECT '+Udig_zero+"\t;"+str(U)+" V; bits - "+capacity ) # Порог U_nom = 48.0 U_min = U_nom-U_nom/100*15 U_max = U_nom+U_nom/100*13 print U_min, U_max U_min_d, capacity = calcCoeffTransf( U_min, thresholdChannal_min ) U_max_d, capacity = calcCoeffTransf( U_max, thresholdChannal_max ) print U_min_d, U_max_d lstForWrite.append('\t#define VOLTAGE_THR_MIN '+U_min_d+"\t; -15% V bits - "+capacity) lstForWrite.append('\t#define VOLTAGE_THR_MAX '+U_max_d+"\t; +13% V bits - "+capacity) # Находим коэффициент пересчета U = 48.0 Udig_value, capacity = calcCoeffTransf( U, metroChannal ) lstForWrite.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) lstForWrite.append(';const double TA_VOLTAGE_MUL = '+str(k)+';') # Закрываем запись iow.list2file( sets=sets, lst=lstForWrite )