Пример #1
0
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
Пример #2
0
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
Пример #3
0
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 )
Пример #4
0
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 >> ' )
Пример #5
0
	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 )