# Carlos Medrano ctmedra@unizar.es
# License GPL v3
# https://www.gnu.org/licenses/gpl-3.0.html

import u3
import time
import streamReader as sr

def captura(NMAX):
    """
    Devuelve NMAX valores de voltaje en una lista
    """
    try:
        d = None
        stream = None
        d = u3.U3()
        d.configIO(FIOAnalog = 0x0f)
        stream = sr.StreamReader(d)
        stream.start(NumChannels = ??, PChannels = ??, NChannels = ??, ScanFrequency=??)
        print('Iniciado')
        n=0
        valores = [] # ??
        time.sleep(0.1)
        while(n< NMAX):
            dato_dic = stream.get()
            if(dato_dic is not None):
                # Cuál es el tipo de datos de la variable dato_dic ??
                if('AIN0' in dato_dic.keys()):
                    dato = dato_dic['AIN0']
                    # Cuál es el tipo de datos de la variable dato?
                    valores.extend(dato) # Para qué sirve el método extend de las listas?
                    n = n+len(dato) # Qué se obtiene con len(dato)? Para qué sirve esta línea?
        stream.stop(reset = True)
        d.close()
        print('Final')
        return valores[0:NMAX]
    except Exception as exc:
        print('exception', exc)
    finally:
        if(stream is not None):
            stream.stop(reset = True)
        time.sleep(1)
        if(d is not None):
            d.close()
