[Python-es] Actualizar Código

Rolando Paz flxpaz en gmail.com
Mie Feb 8 22:05:31 EST 2017


Hola de nuevo! :)

Espero puedan ayudarme a entender este pedazo de código:

for b in range(eq_blocks):
    if not opts.flat_eq == '': eq_level = int(opts.flat_eq)
    else: eq_level = config['eq']['eq_polys'][b][0]
    for c in range(eq_chans):
        eq_coeff = b

        #shift 10 bits
        eq_coeff *= 2**10
        eq_coeff += c

        #shift 3 bits
        eq_coeff *= 2**3
        eq_coeff += 1

        #shift 17 bits
        eq_coeff *= 2**17
        eq_coeff += eq_level
        if opts.verbose is True: print 'EQ Block: %i Channel: %i EQ Level:
%i' % (b,c,eq_level)
        s.send("regwrite eq_coeff %i\n"% eq_coeff)
        time.sleep(.1)
        s.send("regread eq_coeff\n")
        #print("regwrite eq_coeff %i\n"% eq_coeff)
        time.sleep(.1)
        #print("regread eq_coeff\n")

El archivo "config" desde donde obtiene los valores este código es este:

[equalization]
#Perform automatic equalization (=1) or set to fixed EQ_poly values (=0)
auto_eq = 0
#Number of equalization blocks, include an eq_poly_x entry for each block
eq_blocks = 4
#Number of equalization channels per equalization block
eq_chans = 64
#Starting point for auto-equalization or values for manual eq programming.
#One line entry per antenna. Item is a list of polynomial coefficients.
#Eg,
#EQ_poly_0 = 10, 30 ,40
#corresponds to 10 + 30x^2 + 40x^4
EQ_poly_0 = 300
EQ_poly_1 = 300
EQ_poly_2 = 300
EQ_poly_3 = 300

Explicación de lo que hace:

Dentro de un diseño digital que estoy tratando de entender, existen cuatro
bloques de ecualización; que lo que hacen es asignar un valor (300) a cada
canal (de los 64) para ecualizarlos y con esto reducir los bits de 36 a 4
(esta ultima parte solo como referencia, pues esta reducción se realizar
digitalmente dentro del bloque que les menciono).

Este codigo funciona perfectamente, sin embargo ahora no debo usar un
archivo "config" externo, por lo que debo agregar, eq_blocks = 4, eq_chans
= 64 y EQ_poly_0 = 300, EQ_poly_1 = 300, EQ_poly_2 = 300, EQ_poly_3 =
300, dentro
del código.

Con eq_blocks y eq_chans no tengo problemas, pues es solo de sustituir el
valor, sin embargo con lo demás no logro entender lo que debo hacer.

Quizas es algo sencillo pero no aún no logro hacerlo :)

Gracias de antemano por las sugerencias.

Rolando
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20170208/04c2fd56/attachment.html>


Más información sobre la lista de distribución Python-es